An open API service indexing awesome lists of open source software.

https://github.com/sysadmindoc/promptcompanion

The AI Prompt Companion — a curated, searchable, offline library of the best AI prompts.
https://github.com/sysadmindoc/promptcompanion

Last synced: 17 days ago
JSON representation

The AI Prompt Companion — a curated, searchable, offline library of the best AI prompts.

Awesome Lists containing this project

README

          


PromptCompanion

PromptCompanion


The AI Prompt Companion — a curated, searchable, offline library of the best AI prompts.


version
license
platform
python
prompts

---


PromptCompanion GUI

---

## What is this?

**PromptCompanion** is a library-first tool for AI prompts. It aggregates, cleans, and
categorizes the best publicly-available prompts from multiple upstream sources into a
single structured dataset, and exposes them through a dark-themed desktop GUI with fast search,
variable substitution, and one-click copy-to-clipboard.

Unlike existing tools (AnythingLLM, LibreChat, MSTY) that bolt a prompt library onto a
full chat application, PromptCompanion is built around the *library* itself. The primary
action is "find the right prompt and copy it." No chat window, no accounts, no cloud.

### Current status — `v0.6.3`

- [x] Prompt record JSON Schema + category/tag taxonomy
- [x] 5 importers for upstream sources (CC0 + MIT only, English)
- [x] Body-hash deduplication + quality scoring (0-100)
- [x] SQLite FTS5 search with **bm25 relevance ranking** (title 10x, tags 5x, author 2x)
- [x] **PyQt6 desktop GUI** — Catppuccin Mocha dark theme
- [x] **Three-pane layout** — category tree | prompt list | preview
- [x] **FTS5 search bar** — full-text search with prefix matching
- [x] **Filter controls** — role, quality threshold, source
- [x] **Variable substitution** — fill `{{placeholders}}` inline, copy filled
- [x] **Personal overlay edits** — edit bundled prompt titles/bodies, notes, and local tags without mutating source data
- [x] **Local version history** — view the latest local edit as an embedded diff
- [x] **Private prompts** — create local-only prompts with optional encrypted overlay storage
- [x] **Favorites** — star any prompt, browse your favorites collection
- [x] **History** — recently copied/pasted prompts tracked automatically
- [x] **System tray** — minimize to tray, stays running in background
- [x] **Global hotkey** — Win+Shift+P summons window from anywhere (Windows)
- [x] **Paste-to-active-window** — copies prompt and pastes into previous window
- [x] **Export profiles** — Plain Text, Markdown, or JSON copy
- [x] **PyInstaller build** — `python build.py` produces a single `PromptCompanion.exe`

## Bundled Sources

| Source | License | Status |
|---|---|---|
| [f/awesome-chatgpt-prompts](https://github.com/f/awesome-chatgpt-prompts) | CC0-1.0 | Bundled |
| [0xeb/TheBigPromptLibrary](https://github.com/0xeb/TheBigPromptLibrary) | MIT | Bundled |
| [dontriskit/awesome-ai-system-prompts](https://github.com/dontriskit/awesome-ai-system-prompts) | MIT | Bundled |
| [abilzerian/LLM-Prompt-Library](https://github.com/abilzerian/LLM-Prompt-Library) | MIT | Bundled |
| [mustvlad/ChatGPT-System-Prompts](https://github.com/mustvlad/ChatGPT-System-Prompts) | MIT | Bundled |

Each record retains its upstream `source`, `author`, and `license` fields for attribution.
Only CC0 and MIT sources are bundled to keep the aggregate dataset permissively licensed.

## Repository Layout

```
PromptCompanion/
├── data/
│ ├── prompts/ # Curated prompts, JSONL, one file per category
│ ├── sources/ # Source registry + attribution (upstream clones gitignored)
│ ├── index/ # Built SQLite FTS5 index (gitignored)
│ ├── schema.json # JSON Schema for a prompt record
│ └── taxonomy.json # Category + tag vocabulary
├── tools/
│ ├── fetch_sources.py # Clone upstream repos into data/sources/upstream/
│ ├── import_awesome.py # Parse f/awesome-chatgpt-prompts CSV
│ ├── import_bigprompt.py# Parse TheBigPromptLibrary markdown tree
│ ├── import_system.py # Parse awesome-ai-system-prompts markdown tree
│ ├── import_llmprompt.py# Parse LLM-Prompt-Library markdown + Jinja2
│ ├── import_chatsys.py # Parse ChatGPT-System-Prompts markdown
│ ├── validate.py # Schema validation + deduplication
│ └── build_index.py # Compile SQLite FTS5 search index
├── promptcompanion.py # Desktop GUI (PyQt6)
├── docs/
│ └── SCHEMA.md # Human-readable schema documentation
├── CHANGELOG.md
├── LICENSE
└── README.md
```

## Quick Start (data pipeline)

```bash
# From the repo root
python tools/fetch_sources.py # Clone upstream prompt repos
python tools/import_awesome.py # Parse CSV → data/prompts/*.jsonl
python tools/import_bigprompt.py # Parse markdown tree
python tools/import_system.py # Parse system-prompt collection
python tools/import_llmprompt.py # Parse LLM-Prompt-Library (md + j2)
python tools/import_chatsys.py # Parse ChatGPT-System-Prompts
python tools/validate.py # Schema check + dedupe report
python tools/build_index.py # Emit data/index/prompts.db (FTS5)
```

Python 3.10+. All scripts auto-install dependencies on first run via `_bootstrap()`.

## Launch the GUI

```bash
python promptcompanion.py
```

Requires `PyQt6`. Auto-installed on first run. Reads from `data/index/prompts.db`.
The app minimizes to the system tray on close. On Windows, press **Win+Shift+P** from
any window to summon PromptCompanion, pick a prompt, and click **Paste to App** to
send it directly into ChatGPT, Claude, or any text field.

## Build Standalone Exe

```bash
python build.py # Produces dist/PromptCompanion.exe (single file, ~30 MB)
```

Bundles the prompt database and logo. User data (favorites, history) stored in `~/.promptcompanion/`.
Local prompt edits are layered from `overlay.jsonl` in the same user data directory, so bundled source prompts remain immutable.
Set `PROMPTCOMPANION_PRIVATE_PASSPHRASE` before launch to encrypt private prompt lines in the overlay file.

## Prompt Record Schema

```json
{
"id": "awesome-linux-terminal",
"title": "Linux Terminal",
"body": "I want you to act as a linux terminal...",
"role": "user",
"category": "roleplay",
"tags": ["shell", "simulation", "developer"],
"variables": [],
"target_models": ["any"],
"language": "en",
"source": "https://github.com/f/awesome-chatgpt-prompts",
"author": "f (Fatih Kadir Akın)",
"license": "CC0-1.0",
"version": 1,
"created": "2026-04-18T00:00:00Z",
"quality": 55,
"updated": "2026-04-18T00:00:00Z"
}
```

Full schema documentation lives in [docs/SCHEMA.md](docs/SCHEMA.md).

## Category Taxonomy

Ten flat top-level buckets + free-form tags:

- **development** — code gen, review, debugging, refactor, SQL, devops, regex
- **writing** — blog, copy, email, editing, summarize
- **research** — literature review, data analysis, fact-check, compare
- **creative** — fiction, worldbuilding, poetry, lyrics, image prompts
- **business** — strategy, meeting notes, reports, pitch, hiring
- **productivity** — planning, learning, teaching, flashcards
- **system** — agent personas, custom-GPT system prompts
- **roleplay** — "act as" prompts
- **translation** — translate, grammar, localize
- **specialized** — medical, legal, finance, academic (each gated with disclaimer)

See [data/taxonomy.json](data/taxonomy.json) for the machine-readable vocabulary.

## Roadmap

| Version | Focus |
|---|---|
| **0.0.x** | Data foundation, schema, importers, validation |
| **0.1.x** | More sources, dedupe heuristics, quality scoring |
| **0.2.x** | PyQt6 desktop GUI, SQLite FTS5 search, variable panel |
| **0.3.x** | System tray, global hotkey, paste-to-window, export profiles |
| **0.6.x** | Personal overlay edits without forking bundled data |
| **1.0.0** | First stable release with full feature set |

See [CHANGELOG.md](CHANGELOG.md) for detailed release history.

## Contributing

This is currently a personal curation project. Issues and PRs welcome for:
- New upstream sources (CC0 or MIT only)
- Schema extensions
- Category taxonomy refinements
- Quality flags / deprecation of low-value prompts

## License

Tooling and curation: **MIT** (see [LICENSE](LICENSE)).
Bundled prompt data: retains upstream licenses (CC0 and MIT only).