| Question / 问题 | Answer / 答案 |
|---|---|
| What is PromptPanel? / 它是什么? | A native, local-first macOS prompt manager and snippet launcher. 它是 macOS 原生、本地优先的 Prompt 管理器 / 片段启动器。 |
| Who is it for? / 适合谁? | AI power users, developers, prompt engineers, technical writers, PMs, consultants, and anyone reusing multiline prompts across apps. 适合高频复用 ChatGPT、Claude、Cursor、Copilot、终端命令和模板的人。 |
| How does it work? / 怎么用? | Press a global hotkey, search the local library, press Enter, then PromptPanel writes to the clipboard and attempts automatic paste. 全局快捷键唤出面板,搜索,回车,先写剪贴板,再尝试自动粘贴。 |
| What is required? / 需要什么? | macOS 14+, Xcode 15+ for source builds, and Accessibility permission only when you want automatic paste. 需要 macOS 14+;源码构建需要 Xcode 15+;自动粘贴需要辅助功能权限。 |
| What language is the UI? / 界面什么语言? | Simplified Chinese only today (CFBundleDevelopmentRegion = zh-Hans, no localization resources). Stored prompt content can be in any language. 应用界面目前仅简体中文;你存的 Prompt 内容本身不限语言。 |
| What are the limits? / 边界是什么? | No cloud sync, no teams, no Windows/Linux build, no browser-extension-only mode, Simplified-Chinese-only UI, and no notarized binary release asset yet. 无云同步、无团队协作、无 Windows/Linux 版、界面仅简体中文,也暂无已公证二进制发布包。 |
PromptPanel solves the most common high-frequency AI interaction pains for macOS users:
- Retyping the same role or system prompt into every new ChatGPT, Claude, Gemini, or Perplexity chat.
- Searching a Notes app or scratchpad for a reusable prompt mid-conversation.
- Pasting Cursor or Copilot project context blocks before every coding session.
- Auto-paste tools that silently fail when focus changes.
- Wanting a prompt library but not trusting NDA-bound or proprietary prompts to a cloud service.
It collapses the answer into one loop: press a global hotkey, type a few characters, press Enter. The selected entry is written to the clipboard, then pasted into the active text field when Accessibility permission is granted.
Any focused text field on macOS. Common targets:
- Web: ChatGPT, Claude, Gemini, Perplexity, Poe, any chat UI in any browser.
- Coding: Cursor, VS Code, Xcode, JetBrains IDEs, Aider, GitHub Desktop, Sublime Text.
- Terminal: Terminal.app, iTerm2, Warp, Ghostty.
- Collaboration: Slack, Notion, Linear, GitHub, GitLab.
- Native macOS text fields anywhere.
Yes. PromptPanel is licensed under MIT. There is no account, paid tier, usage cap, or cloud service required for the core app.
Simplified Chinese only. The bundle declares CFBundleDevelopmentRegion = zh-Hans and all UI strings are hard-coded in Swift — there are no .lproj localization resources and no in-app language switch. Documentation is bilingual and ships in eight languages, and README.md includes a Chinese→English UI label map. The prompt content you store is unaffected: entries can be in any language.
应用界面目前只有简体中文,暂无多语言资源和语言切换入口。文档是双语的,README.md 里有中英界面对照表。词条内容本身不限语言。
Adding an English or multi-language UI is not currently on the roadmap. If you want it, open an issue so the demand is visible.
Type in the search field; there is no submit step.
| Input | Behavior |
|---|---|
review |
SQLite FTS5 prefix match over entry title and content |
code rev |
Each whitespace-separated token is a prefix term, ANDed together |
#sql |
Filters to entries tagged sql; the #tag token is removed from the text query |
#sql migrate |
Tag filter sql and text match migrate |
| (empty) | Browses the current project plus the universal project |
Only the first #tag token is treated as a tag filter and it matches exactly and case-sensitively (#SQL will not match a sql tag). Results are capped at 100 rows, and text matching is prefix-based — a term taken from the middle of a word (or of an unspaced CJK run) will not match.
Open 设置 → 偏好 → 快捷键 → 呼出面板 (Settings → Preferences → Hotkey → Toggle panel) and record a new combination. The default is ⌥2. There is exactly one hotkey for the panel, and pressing it again while the panel is open dismisses it.
If a newly recorded shortcut does nothing, another running app or a macOS system shortcut is claiming it first — pick a different combination. Installs carried over from a pre-1.0 build are migrated to the current default exactly once, and only when the shortcut was still on its old built-in default; a shortcut you chose yourself is never overwritten.
Work through this order:
- Confirm Accessibility permission is granted in
设置 → 权限and inSystem Settings → Privacy & Security → Accessibility. After rebuilding the.app, macOS may treat it as a new binary and drop the grant — remove and re-add the entry. - Check the clipboard. If
⌘Vmanually pastes the right content, the clipboard guarantee held and only the synthetic keystroke was blocked. - Read
设置 → 维护 → 最近执行记录(recent execution log). Each failed execution records a reason. - Some apps refuse synthetic events on purpose (password fields, certain secure inputs, some remote-desktop and VM windows). That is a target-app policy, not a recoverable PromptPanel error.
- If it reproduces in a common app, please file an issue with the app name, version, and the execution-log reason so it can be added to
docs/兼容性回归记录.md.
Not yet. Entry content is pasted verbatim. Variable templates ({{name}}-style) are listed in the roadmap as in-scope only if they can be added without slowing the main link. Today, keep placeholders in the text and edit after pasting.
Export first if you may want the library back (设置 → 维护 → 导出 JSON). Then quit from the menu bar, delete the .app, and remove the two directories PromptPanel owns:
rm -rf ~/Library/Application\ Support/PromptPanel # promptpanel.db, Backups/, Recovery/
rm -rf ~/Library/Logs/PromptPanel # runtime logsAlso remove PromptPanel from System Settings → Privacy & Security → Accessibility, and from login items if launch-at-login was enabled. PromptPanel writes nothing outside these locations and the standard UserDefaults domain.
PromptPanel stores its primary SQLite database at:
~/Library/Application Support/PromptPanel/promptpanel.db
Runtime logs are written under:
~/Library/Logs/PromptPanel
Both locations can be isolated for QA with the environment variables documented in docs/配置说明.md.
Open 设置 → 维护 → 维护操作 (Settings → Maintenance). Use 导出 JSON / 导入 JSON (Export/Import JSON) for lossless PromptPanel-to-PromptPanel migration, or 导出 MD / 导入 MD (Export/Import MD) when you want a reviewable Markdown file. Every import creates a local database backup before writing projects or entries, and the writes run in a single transaction that rolls back completely on failure.
No. Core prompt storage, search, execution, and logging are local. The current release also makes zero outbound calls — Sparkle is bundled but the appcast feed and signing key are not configured in this build, so no update probe happens at all.
The current release ships with the auto-update path intentionally disabled (no signed appcast is hosted yet). To upgrade:
- Quit PromptPanel from the menu bar.
- Build the latest source with
./scripts/build-app.sh; current GitHub Releases do not attach notarized binary assets yet. - Replace
/Applications/PromptPanel.appwith the newly built bundle, or rundist/PromptPanel.appdirectly for local QA. - Reopen PromptPanel and confirm the version in
设置 → 维护 → 运行概况(Settings → Maintenance → Runtime overview).
Your data lives in ~/Library/Application Support/PromptPanel and is preserved across upgrades. The launch maintenance routine writes a backup automatically; you can also click 立即备份 (Back up now) in 设置 → 维护 before swapping the app.
Yes. PromptPanel is designed for reusable prompts, snippets, templates, and project context blocks that you paste into ChatGPT, Claude, Cursor, Copilot, VS Code, Terminal, browsers, and ordinary macOS text fields. See docs/使用示例.md for concrete examples.
It overlaps with those tools but is narrower: PromptPanel is a keyboard-first searchable panel for AI prompts and snippets. It is not a general text expansion engine, app launcher, or workflow automation platform.
Accessibility permission lets PromptPanel synthesize Command-V after it restores focus to the target app. Without it, PromptPanel still writes the selected entry to the clipboard and asks the user to paste manually.
The clipboard write happens first and is treated as the durable fallback. If paste cannot be dispatched or the target app does not regain focus, PromptPanel records the failure reason in the execution log and leaves the content on the clipboard.
No. Cloud sync, team collaboration, and complex workflow orchestration are permanent non-goals in docs/项目快贴-PRD.md. PromptPanel is intentionally single-user and local-first.
No HTTP, cloud, GraphQL, plugin, or remote execution API exists today. The documented "API" surface is the local feature contract, Swift service boundaries, SQLite schema, script interfaces, and environment variables in docs/API与功能说明.md.
Use SwiftPM for fast development builds:
swift buildFor an app bundle:
./scripts/build-app.sh
open dist/PromptPanel.appOn machines with only Command Line Tools, xctest may be unavailable. In that case swift test can prove compilation but cannot be counted as full XCTest execution. The release gate exposes this explicitly; use ./scripts/release-readiness.sh --allow-build-only-tests only when accepting that downgrade.
Update frontend-draft/ first because it is the visual source of truth. Then align the SwiftUI/AppKit implementation and include the corresponding validation in the PR.
The public roadmap and contribution scope are in docs/路线图与贡献指南.md. JSON/Markdown import/export is now built into Settings → Maintenance; repeat last entry, search/tag improvements, and compatibility samples remain in scope. Cloud sync, teams, and workflow orchestration are not.
The current shipping version is 1.1.2. Sources/PromptPanel/Resources/Info.plist, codemeta.json, and docs/search-metadata.schema.jsonld are the authoritative version surfaces. Release notes live in CHANGELOG.md.
macOS 14 (Sonoma) and later, on both Apple Silicon (M1/M2/M3/M4) and Intel Macs. The release is built as a universal binary.
No. PromptPanel is deliberately macOS-only because the main link (global hotkey timing, focus restoration, synthetic Command-V) is built on macOS system APIs. A cross-platform port is not on the roadmap.
PromptPanel is narrower and AI-shaped:
- TextExpander: powerful general expander but commercial and increasingly cloud-oriented.
- Espanso: open-source typed-trigger expander, no search panel, not AI-shaped.
- Raycast Snippets: good panel UX but tied to a Raycast account and Powerpack tier for some features.
- Alfred Snippets: needs Powerpack, designed for short text expansions rather than multiline prompts.
PromptPanel focuses on one thing: search-and-paste reusable prompts and snippets through a single panel, local-only, with clipboard guarantee.