Metadata-Version: 2.4
Name: jps-llm-prompt-app
Version: 0.1.0
Summary: Lightweight app for selecting prompts to submit to LLMs
Author-email: Jaideep Sundaram <jai.python3@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/jai-python3/jps-llm-prompt-app
Project-URL: Repository, https://github.com/jai-python3/jps-llm-prompt-app
Project-URL: Issues, https://github.com/jai-python3/jps-llm-prompt-app/issues
Keywords: cookiecutter,bootstrap,project-generator,automation
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer>=0.12.3
Requires-Dist: click==8.3.1
Requires-Dist: markdown-it-py==4.0.0
Requires-Dist: mdurl==0.1.2
Requires-Dist: prompt_toolkit==3.0.52
Requires-Dist: Pygments==2.19.2
Requires-Dist: pyperclip==1.11.0
Requires-Dist: PyYAML==6.0.3
Requires-Dist: rich==14.2.0
Requires-Dist: shellingham==1.5.4
Requires-Dist: typer==0.20.0
Requires-Dist: typing_extensions==4.15.0
Requires-Dist: wcwidth==0.2.14
Provides-Extra: dev
Requires-Dist: flake8>=7.0.0; extra == "dev"
Requires-Dist: black>=24.0.0; extra == "dev"
Requires-Dist: build>=1.2.1; extra == "dev"
Requires-Dist: twine>=5.0.0; extra == "dev"
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
Requires-Dist: isort>=5.13.0; extra == "dev"
Requires-Dist: codecov>=2.1.13; extra == "dev"
Requires-Dist: autoflake>=2.3.1; extra == "dev"
Requires-Dist: pre-commit>=3.8.0; extra == "dev"
Requires-Dist: bandit>=1.7.9; extra == "dev"
Requires-Dist: vulture>=2.11; extra == "dev"
Requires-Dist: flynt>=1.0.1; extra == "dev"
Requires-Dist: pydocstyle>=6.3.0; extra == "dev"
Requires-Dist: darglint>=1.8.1; extra == "dev"
Requires-Dist: mypy>=1.12.1; extra == "dev"
Requires-Dist: bump-my-version>=1.0.1; extra == "dev"
Requires-Dist: git-changelog>=2.7.0; extra == "dev"
Dynamic: license-file

# jps-llm-prompt-app

![Build](https://github.com/jai-python3/jps-llm-prompt-app/actions/workflows/test.yml/badge.svg)
![Publish to PyPI](https://github.com/jai-python3/jps-llm-prompt-app/actions/workflows/publish-to-pypi.yml/badge.svg)
[![codecov](https://codecov.io/gh/jai-python3/jps-llm-prompt-app/branch/main/graph/badge.svg)](https://codecov.io/gh/jai-python3/jps-llm-prompt-app)

A lightweight command-line application for interactively browsing, filtering, and selecting prompts for Large Language Models (LLMs).  
Built using **Prompt Toolkit** for a responsive, modern CLI experience with incremental search and auto-completion.

---

## 🚀 Overview

`jps-llm-prompt-app` streamlines prompt selection for developers who frequently interact with LLMs (e.g., ChatGPT, Claude, Gemini, local models).

Key goals:

- Maintain a curated catalog of reusable prompts (e.g., coding requests, refactoring templates, testing prompts).
- Search prompts interactively by keyword as you type.
- Narrow the menu dynamically using fuzzy/incremental search.
- Select a prompt and either:
  - print it to stdout,
  - copy to clipboard (optional feature),
  - or pass it directly to another tool.

Ideal for engineers who reuse structured prompts or maintain prompt libraries.

---

## ✨ Features

### ✅ Interactive Prompt Navigator
- Incremental search while typing  
- Auto-completion based on available prompts  
- Keyboard-driven navigation (arrows, tab completion, enter to select)

### ✅ Flexible Prompt Catalog
- Load prompts from:
  - built-in prompt sets  
  - user-defined YAML/JSON files  
  - additional plugin directories (future enhancement)

### ✅ CLI Tools
- `jps-llm-prompt-app` → interactive interface  
- Options for outputting or piping selected prompts  
- Rich text preview before selection

### 🔧 Extensible Architecture
- Clean separation of:
  - prompt data source manager  
  - search engine  
  - UI components (Prompt Toolkit-based)  
- Easily integrate with wrappers for API clients or shell workflows

---

## 📘 Example Usage

### Start the interactive prompt selector:

```bash
jps-llm-prompt-app
```

### Search Behavior
As you type:

- Prompts are dynamically filtered
- Matching text is highlighted
- You may select using ↑/↓ and press Enter

## 📦 Installation

Install locally for development:

```bash
make install
```

Or via pip (after PyPI publish):

```bash
pip install jps-llm-prompt-app
```

## 🧪 Development

```bash
make fix && make format && make lint
make test
```

To run the app directly during development:

```bash
python -m jps_llm_prompt_app
```

## 📜 License
MIT License © Jaideep Sundaram
