The AI Prompt Companion — a curated, searchable, offline library of the best AI prompts.
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.
- Prompt record JSON Schema + category/tag taxonomy
- 7 importers for upstream sources (CC0 + MIT only, English)
- Body-hash deduplication + quality scoring (0-100)
- SQLite FTS5 search with bm25 relevance ranking (title 10x, tags 5x, author 2x)
- PyQt6 desktop GUI — Catppuccin Mocha dark theme
- Three-pane layout — category tree | prompt list | preview
- FTS5 search bar — full-text search with prefix matching
- Filter controls — role, quality threshold, source
- Variable substitution — fill
{{placeholders}}inline, copy filled - Live preview stats — filled previews show character and estimated token counts
- Personal overlay edits — edit bundled prompt titles/bodies, notes, and local tags without mutating source data
- Local version history — view the latest local edit as an embedded diff
- Private prompts — create local-only prompts with optional encrypted overlay storage
- Markdown import folder — drop
.mdprompt files into the user import folder and sync on launch - Prompt chains — build ordered multi-prompt pipelines with shared variable passthrough
- Snippet includes — expand
{{include:category/title-slug}}snippets from other prompts - Variable presets — save Safe defaults and Aggressive variable profiles per prompt
- Favorites — star any prompt, browse your favorites collection
- History — recently copied/pasted prompts tracked automatically
- System tray — minimize to tray, stays running in background
- Global hotkey — Win+Shift+P summons window from anywhere (Windows)
- Paste-to-active-window — copies prompt and pastes into previous window
- Export profiles — Plain Text, Markdown, Front Matter, or JSON copy
- PyInstaller build —
python build.pyproduces a singlePromptCompanion.exe
| Source | License | Status |
|---|---|---|
| f/awesome-chatgpt-prompts | CC0-1.0 | Bundled |
| 0xeb/TheBigPromptLibrary | MIT | Bundled |
| dontriskit/awesome-ai-system-prompts | MIT | Bundled |
| abilzerian/LLM-Prompt-Library | MIT | Bundled |
| mustvlad/ChatGPT-System-Prompts | MIT | Bundled |
| codingthefuturewithai/software-dev-prompt-library | MIT | Bundled |
| pacholoamit/chatgpt-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.
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
│ ├── import_devprompts.py # Parse software-dev-prompt-library markdown tree
│ ├── import_chatgptlib.py # Parse chatgpt-prompts TypeScript templates
│ ├── 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
# 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/import_devprompts.py # Parse software-dev-prompt-library
python tools/import_chatgptlib.py # Parse chatgpt-prompts TypeScript templates
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().
python promptcompanion.pyRequires 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.
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 and per-prompt variable presets 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.
Place user .md prompts in ~/.promptcompanion/imports/ for the standalone app, or data/user/imports/ when running from source.
{
"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.
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 for the machine-readable vocabulary.
| 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 |
| 0.7.x | Prompt composition and reusable chain workflows |
| 0.8.x | Library growth, tagging, quality, and deprecation signals |
| 1.0.0 | First stable release with full feature set |
See CHANGELOG.md for detailed release history.
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
Tooling and curation: MIT (see LICENSE). Bundled prompt data: retains upstream licenses (CC0 and MIT only).

