English | δΈζ
A lightning-fast desktop app for managing AI client configurations with visual editing, version control, and instant switching between Claude, Codex, Gemini, and more.
Main Interface - Monaco Editor with Prompt Library
Managing multiple AI tool configurations (.claude/CLAUDE.md, .codex/AGENTS.md, .gemini/GEMINI.md) is painful:
- β Switching between AI clients requires manual file editing
- β No version control means no easy rollback
- β Reusing prompts across projects is tedious
- β Keeping track of changes is impossible
System Prompt Vault solves this with:
- π Instant Client Switching: Toggle between Claude, Codex, Gemini in seconds
- π¨ Professional Editor: Monaco Editor (VS Code core) with syntax highlighting, undo/redo
- πΈ Snapshot Management: Auto/manual snapshots with FIFO cleanup and tray recovery
- π·οΈ Smart Tagging: Filter prompts by tags, auto-detect client labels
- π Live File Watching: Real-time detection of config file changes
- π i18n + Themes: English/Chinese UI with light/dark mode
- π― Zero Frameworks: Vanilla JS + Rust + Tauri v2 for maximum performance
- Add custom AI clients with config paths (e.g.,
~/.claude/CLAUDE.md) - Switch active client from dropdown menu
- Auto-tag prompts by client type
- Create, edit, delete prompts with Monaco Editor
- Apply prompts to active client config in one click
- Import/export prompt collections for backup
- Multi-tag filtering with dropdown selector
- Search by name or content
- Recent tags auto-remembered
- Auto Snapshots: Created on app launch (max 10, FIFO cleanup)
- Manual Snapshots: User-triggered with custom labels (max 20)
- Tray Restore: Recover previous configs from system tray menu
- Dark/Light theme with system preference detection
- Responsive layout with Tailwind CSS
- Accessible keyboard navigation (ARIA compliant)
- Rust 1.70+: Install Rust
- Bun 1.0+: Install Bun (or npm)
- OS: macOS / Windows / Linux
# Clone the repository
git clone https://github.com/ppyyr/SystemPromptVault.git
cd SystemPromptVault
# Install dependencies (Bun is 2-10x faster than npm)
bun install
# Run in development mode
bun run tauri:dev# Standard build
bun run tauri:build
# macOS Universal (Intel + Apple Silicon)
bun run tauri:build:universalBuild artifacts:
- macOS:
src-tauri/target/release/bundle/dmg/ - Windows:
src-tauri/target/release/bundle/nsis/ - Linux:
src-tauri/target/release/bundle/deb/
- Open Settings (βοΈ icon in top-right)
- Navigate to Client Management tab
- Click + Add Client
- Fill in:
- ID: Unique identifier (e.g.,
claude) - Name: Display name (e.g.,
Claude Desktop) - Path: Config file path (e.g.,
~/.claude/CLAUDE.md)
- ID: Unique identifier (e.g.,
- Save and switch from main page dropdown
- In Settings β Prompt Management
- Click + New Prompt
- Enter:
- Name: Descriptive title
- Content: Your prompt text
- Tags: Add multiple tags (use dropdown or free input)
- Click Apply to append to active client config
- Auto Snapshot: Created every app launch
- Manual Snapshot: Click snapshot button in main page
- Restore: Right-click system tray β Select snapshot
- Export: Settings β Export Prompts β JSON file
- Import: Settings β Import Prompts β Select JSON file
| Layer | Technology |
|---|---|
| Frontend | Vanilla JavaScript (ES6+), Vite 7, Tailwind CSS 3 |
| Editor | Monaco Editor (VS Code core) |
| Backend | Rust + Tauri v2 |
| Package Manager | Bun (2-10x faster than npm) |
| Storage | JSON file storage with atomic writes |
SystemPromptVault/
βββ dist/ # Frontend source (NOT build output)
β βββ index.html # Main page (config editing)
β βββ settings.html # Settings page (prompts/clients)
β βββ js/
β β βββ main.js # Main page logic
β β βββ settings.js # Settings page logic
β β βββ api.js # Tauri API wrapper
β β βββ i18n.js # Internationalization
β β βββ theme.js # Theme management
β βββ locales/ # i18n resources
βββ build/ # Vite build output
βββ src-tauri/ # Rust backend
β βββ src/
β β βββ commands/ # Tauri commands
β β βββ models/ # Data models
β β βββ storage/ # JSON repositories
β β βββ tray.rs # System tray
β βββ tauri.conf.json
βββ llmdoc/ # Developer documentation
We welcome contributions! Please follow these steps:
- Fork this repository
- Create a feature branch (
git checkout -b feature/YourFeature) - Commit changes (
git commit -m 'Add YourFeature') - Push to branch (
git push origin feature/YourFeature) - Open a Pull Request
- Follow existing code style (use
cargo fmtfor Rust) - Update documentation in
llmdoc/if adding features - Test on your platform before submitting
- Keep commits atomic and descriptive
For detailed architecture and development guides, see llmdoc/.
Q: Can I use this with other AI tools beyond Claude/Codex/Gemini? A: Yes! Add any custom client in Settings β Client Management with a config file path.
Q: Where are my prompts and settings stored? A:
- macOS:
~/Library/Application Support/SystemPromptVault/ - Windows:
C:\Users\<User>\AppData\Roaming\SystemPromptVault\ - Linux:
~/.config/SystemPromptVault/
Q: How do I restore a previous config snapshot? A: Right-click the system tray icon β Select a snapshot from the list.
Q: Does this app send data to external servers? A: No. All data is stored locally on your machine.
Q: Why use Bun instead of npm? A: Bun is 2-10x faster for installs and runs. npm still works if you prefer.
- Full Docs:
llmdoc/(architecture, features, guides) - Architecture:
llmdoc/architecture/systemprompt-vault-architecture.md - Features:
llmdoc/features/(i18n, themes, snapshots, etc.) - Tech Guides:
llmdoc/guides/(Vite, Bun, CI/CD)
Built with:
- Tauri - Cross-platform desktop framework
- Vite - Next-gen frontend tooling
- Bun - Fast JavaScript runtime
- Monaco Editor - VS Code editor core
- Tailwind CSS - Utility-first CSS
Version: 0.1.16 Last Updated: 2025-11 Maintainer: Saul p@sora.im




