AI 提示词管理工具 —— 把杂乱无章的 Prompt 文档,变成 五级分类书架 + 极速检索 + 一键复制 + 回收站(可恢复)+ 每日变更包 + 导入安全防护 的本地神器。
双击 PromptSprite.exe 即可使用。数据全部保存在本机 data/ 目录,无任何联网行为。
- 源码:
git clone https://github.com/yihufree/PromptSprite.git - 仅供学习与个人使用(MIT License,见 LICENSE)。
| 特性 | 说明 |
|---|---|
| ① 五级分类书架 | 项目类别 → 根目录 → 一级 → 二级 → 条目;项目类别预置 5 项(日常学习记录/网上资源收集/个人梳理资源/本人创作作品/个人经验总结),根目录可跨项目移动/复制 |
| ② 老库迁移 | 旧版(项目类别/根目录-一级-二级)数据自动升级(v1→v2→v3 结构迁移):迁移向导人工核对映射、未命中弹窗选择、未回答兜底"未明确分类"(自动弹出/菜单重开) |
| ③ 9 字段详情 | ①名称…⑩图像方案;按根目录动态显隐;⑩图像方案可"打开"链接;编辑/悬停浮窗/图片预览 |
| ④ 一键复制 | 复制全部 / 复制中文 / 复制英文 |
| ⑤ 快捷悬停添加 | 悬停滑过分类即锁定,光标自动跳入输入框,连续录入不打断 |
| ⑥ 悬停选中与高亮 | 主界面"鼠标悬浮约 0.2 秒即选中",选中链路高亮;状态栏按悬停层级动态统计 |
| ⑦ 安全回收 | 全局锁定(🔒)+ 删除二次确认并移入"回收站"(可恢复)+ 删除分类条目转"未分类" + 删除根目录仅解除关联 |
| ⑧ 收藏与搜索 | ⭐常用入口;全局搜索匹配全部文本字段(LIKE 通配符转义);V1.8.0 起输入防抖——停止输入约 1.5 秒后才查询,另可点搜索框右侧"🔍"或按回车立即搜索;Ctrl+Shift+P 唤出聚焦搜索 |
| ⑨ 多格式导入导出 | JSON(v2/v3/v4 兼容,v3/v4 含项目归属与删除清单)/ Excel / HTML / MD(进度条);导入按内容自动去重;批量事务导入 |
| ⑩ 自动全量备份 | 每次启动自动全量备份 prompts_YYYY-MM-DD_*.db:按天去重(同日只保留最后一份)+ 默认保留 30 份(可在设置调整);只清理标准命名文件,手动快照永不清理;失败状态栏黄点警告 |
| ⑪ 每日变更包(原"增量备份") | 每次关闭自动生成"当日全部变更(增/删/改/空分类)"同步包:变更包_{电脑代号}_{日期}_add{增改数}_del{删除数}.json(JSON v4,兼容 v2/v3 导入;同日幂等仅一份、保留天数可设);可换机导入合并、可导出 Excel/HTML 浏览 |
| ⑫ 全局热键/托盘 | Ctrl+Shift+P 唤出聚焦搜索;ESC 隐藏;托盘恢复/退出 |
| ⑬ 内置数据 | 打包版内嵌最新完整库(无 data 时自动建库,开箱即用);内置精简模板(含 2555 条示例提示词,主要为"网上资源收集")+ 内置手册;版本升级以"非破坏性合并"导入(分类按名复用、条目按名 upsert),绝不覆盖/清空用户数据 |
| ⑭ 用户设置 | 记住窗口大小、默认视图、详情字段策略、电脑代号、变更包保留天数、自动备份保留份数、变更包携带被删快照(默认关);"ℹ 关于"显示版本信息与技术栈 |
| ⑮ 分类复制/移动 | 根目录/一级/二级可"复制到…/移动到…":下移加前缀(A→A.C)、上移去前缀、重名自动加序号、共享分类自动复制、移动不丢条目 |
| ⑯ 界面优化(V1.8.0 大幅修订) | 工具栏重排:🔒锁定 · 🗂目录隐藏/显示 · 📂无类条目 · ⭐常用 · ✚新建 · ⇩导入 · ⇧导出 · ⚙设置 · 搜索框(🔍);🗂 目录隐藏/目录显示可任选隐藏各分类列(对话框含"全部隐藏/全部显示",底部 🗂 小图标一键全隐/全显);窗口最小宽度动态化(四列全显示 ≈1420,四列全隐藏 ≈1028);✏️ 编辑 / 👁 浏览切换(浏览态只读防误改);详情命令条与底部常驻栏按钮重排、宽度贴合文字;详情字段卡片化分色、②~⑦ 默认折叠 1 行、初始各列灰显"新增"按钮、滚动自动回顶 |
| ⑰ 一键打包 | python build.py 自动生成单文件 EXE(内嵌最新完整库) |
| ⑱ 条目多位置 | 关联到(一处编辑各位置同步)/ 复制到(独立副本)/ 移动到(可勾"整体转移"清空其它关联);详情区"🧭 位置"面包屑(含 项目类别 › 根目录)可逐处解除 |
| ⑲ 就地新增入口 | 条目区醒目绿色"+新增条目";任一分级分类都可持有并显示本级条目,直接在该分类新增 |
| ⑳ 删除分类三级保护 | 有子分类需先处理下级;无子分类删除只解除直挂条目位置;级联整棵删除须手工输入确认短语后再二次确认 |
| ㉑ 回收站/删除历史 | 删除=完整快照入回收站,可恢复(原内容/收藏/多位置一并回挂);支持逐条彻底删除与清空(图片文件在彻底清除时才释放) |
| ㉒ 新增历史 | 详情区底部"🕒 新增历史":按 今日/近3/7/30天/全部 查看最近新增条目,每条可一键复制 中/英/全部 提示词 |
| ㉓ 初始导航与详情面包屑 | 启动仅显示顶层"项目类别",其余列提示+新增按钮灰显;详情顶部浅色"🧭 位置"面包屑展示 项目类别 › 根目录 › 一级 › 二级 完整链 |
| ㉔ 变更包导入向导(V1.7.0) | 含删除清单的 JSON 一律走"导入变更包"向导:先预览(来源电脑/日期、新增/修改/删除计数、落后同步红色提示)→ 二维选择——① 是否合并包内新增/修改;② 删除清单三选一:忽略删除(推荐)/ 正常应用删除(须输入"确认删除")/ ⑤ 逆向恢复(须输入"恢复删除");被删条目同步删除一律先进回收站(可恢复、保留图片),杜绝"导入即误删" |
| ㉕ 导入前快照(V1.7.0) | 变更包导入前自动生成 prompts_preimport_时间戳.db(独立前缀、不参与任何自动清理、可一键回滚;快照失败则中止导入) |
| ㉖ 携带被删快照 + ⑤ 逆向恢复(V1.7.0) | 设置可选"变更包携带被删快照"(默认关,红字提示:体积↑、含已删除内容、可能含当初有意删除的数据);开启后删除清单携带完整快照,可在导入向导选"⑤ 逆向恢复"把删除数据反向加回当前库(无快照的包该按钮置灰,只能靠回收站/历史备份恢复);删除日志同步留存完整快照 payload(老库自动补列) |
| ㉗ 数据比对(V1.7.0) | 导入菜单"数据比对…(与备份 *.db)":选择一个历史备份库(复制到临时文件只读打开)与当前库对比——项目类别/根目录/分类/条目差异概览 + 明细列表,可导出 HTML 差异报告;全程不写主库、锁定态禁用 |
| ㉘ 导入/同步性能(V1.7.0) | 删除重放由逐条全表扫描 O(D×N) 改为"一次性 content_key 索引 + 批量单事务"O(N+D),删除阶段补进度回调;实测 1380 条删除清单导入由"超 4 分钟未完成"降至约 10 秒 |
| ㉙ 条目名称一览浮层(V1.8.0 修补) | 鼠标悬停条目区约 0.5 秒浮出"📋 条目名称一览(共 N 条)"(条目列左侧),一次看全当前分类全部条目名;V1.8.0 修补——浮层不再"鼠标一移开就消失",可把鼠标移进浮层拖滚动条/滚轮浏览,且在条目区滚动时浮层同步滚动 |
本轮只改界面与交互,不改数据格式、不改库结构——直接覆盖升级即可,数据完全兼容。
- 工具栏重排与瘦身:按钮顺序固定为 🔒锁定 → 🗂目录隐藏/目录显示 → 📂无类条目 → ⭐常用 → ✚新建 → ⇩导入 → ⇧导出 → ⚙设置 → 搜索框;搜索框移到最右端(最小 10 个汉字宽、随窗口变宽),各按钮宽度收紧贴合文字;
- "项目列"→"目录隐藏 / 目录显示"(功能升级):由只能收起"项目类别"一列,改为可任选隐藏 项目类别/根目录/一级/二级(连续前缀);对话框右侧新增"快捷选项:全部隐藏 / 全部显示";底部常驻栏新增 🗂 小图标可一键全隐/全显;
- 窗口最小宽度动态化:四列全显示时 ≈1420;隐藏得越多可缩得越窄(四列全隐藏 ≈1028,只剩"条目 + 详情"两栏);
- 搜索输入防抖:解决"刚敲一个字就整库刷新、输入长句卡顿"的问题——停止输入约 1.5 秒后才查询;新增搜索框右侧 🔍 图标点击即搜,回车仍可立即搜索;
- 新增"✏️ 编辑 / 👁 浏览"切换:浏览态详情只读(仍可选中 Ctrl+C),保存/重置/删除/移动/关联/复制等编辑类按钮置灰,杜绝误改;
- 详情区命令条调整:"移动到/关联到/复制到"去掉名称末尾省略号并靠左紧挨"编辑/浏览"(编辑/浏览移至最右),"☆ 收藏"移至最左;保存/重置/复制全部/中文/英文宽度按"完整显示文字"标定,任何窗口宽度下都不裁切;
- 条目列悬停"条目名称一览"修补:浮层不再"鼠标一移开就消失",可把鼠标移进浮层滚动;在条目区滚动滚轮时浮层同步滚动;
- 底部常驻栏重排:靠右停靠(🕒 新增历史 | ♻ 删除历史/回收站 | 🗑 删除当前条目),最左留出 🗂 一键显隐图标;按钮宽度贴合文字;
- 详情区 ②~⑦ 折叠形态统一:整组默认折叠为 1 行标题(不再占空白),点"展开"/"⏵ 显示全部字段"全部展开;
- 按钮更名:"未分类"→"无类条目"、"快速新建"→"新建"(仅名称,功能不变)。
- "增量备份"更名"每日变更包"+计数命名:导出文件改为
变更包_{电脑代号}_{日期}_add_{新增/修改合计}_del_{删除条目数}.json(如变更包_DESKTOP-053MORJ_2026-09-08_add_0_del_1380.json,一眼识别"负增量/纯删除包");当日幂等仅一份,兼容清理旧"增量_"前缀遗留文件;导出到外部前先弹摘要,纯删除包红字警告"⚠ 负增量,谨慎分发"; - JSON v4 变更包格式:导出含
type(full/change)与summary计数元信息;导入兼容 v2 / v3 / v4 老文件; - 变更包导入安全向导(二维选择):先预览来源与增删计数,再二维选择(①是否合并新增/修改 ②删除清单:忽略删除 / 正常应用删除 / ⑤逆向恢复);正常应用删除须输入确认短语"确认删除"、逆向恢复须输入"恢复删除";目标库同步时间落后于包日期时红色提示并建议"忽略删除";
- 同步删除安全化:删除清单重放一律"先入回收站"(完整快照 + 保留图片),物理释放只发生在"彻底删除/清空回收站";分类删除复用安全级联路径;
- 导入前自动快照:
prompts_preimport_时间戳.db(独立前缀、不参与自动清理、失败中止导入),误操作可一键回滚; - 自动全量备份策略升级:按天去重(同日只留最后一份)+默认保留 30 份(可在设置修改)+只清理标准命名
prompts_YYYY-MM-DD_*.db,手动快照(snapshot_*、*_施工前_*等)永不清理; - 新增"数据比对…":与任一备份
*.db只读比对(差异概览 + 明细 + 导出 HTML 报告),用于核对当前库与历史备份的差异; - 携带被删快照(默认关)+⑤ 逆向恢复:删除日志留存完整 payload 快照;开启"携带被删快照"后,变更包删除项带完整快照,可在向导中"逆向恢复",把删除数据反向加回(无快照的包按钮置灰);
- 根因复盘(导入误删事故):旧版把"每日变更包"称为"增量备份",且导入即重放删除、删除不可逆——实测导入某"纯删除(负增量)包"后条目由 3987 降至 2555 且严重卡顿。本版以"导出披露 + 导入预览 + 范围选择 + 自动快照 + 回收站可逆 + 性能修复"六重措施根治(详见 开发工作记录 09 第 4~10 轮)。
- 初始视图:启动仅列出顶层"项目类别",根目录/一级/二级/条目逐级选择再展开(旧版会把全库一级分类一次铺满);各列"新增"按钮初始灰显保留、选定上级自动点亮;
- 回收站 / 删除历史:删除条目改为"移入回收站(可恢复)",详情区底部"♻ 删除历史 / 回收站"统一承担查看删除记录、恢复、彻底删除、清空;
- 新增历史:详情区底部"🕒 新增历史"按时间范围查看最近新增,一键复制提示词;
- 详情位置面包屑:浅色轻标签展示完整路径「项目类别 › 根目录 › 分类」,主位置浅绿、关联位置浅灰蓝;
- 悬浮与滚动体验:悬停选中延迟 0.3s→0.2s,列切换改原地高亮避免整列重建;各可滚动列自动回顶;
- 详情字段卡片化配色(①~⑩ 分色块)、删除按钮移至详情底部、"关于"补充开源仓库地址。
- 条目 关联到 / 复制到 / 移动到:目标分类多选、移动可"整体转移"、同一条目多位置编辑一处全同步;
- 名称输入框统一为详情区/新增表单首个字段 "① 条目名称(风格名称)";顶部命令条统一为按钮:移动 / 关联 / 复制 / 收藏;
- 条目就地新增醒目入口 + 任一分级分类可新增并显示本级条目;
- 详情区多位置提示行(主位置 / 关联位置逐处解除);删除分类三级保护(级联删除需输入确认短语);
- 精简模式标题与"显示全部字段"按钮合并为一行,界面更紧凑;
- 老版本:五级书架与四级分类、老库迁移向导、9 字段详情、自动全量备份、每日增量备份、全局热键/托盘、多格式导入导出、内置手册/内置库、一键打包 EXE 等(各版演进详见 docs/ 文档与开发工作记录)。
- 打包版内嵌打包时的最新完整库(
app/resources/builtin_prompts.db),首次运行若无data/prompts.db自动复制建库(已有数据绝不覆盖);源码开发版首次启动自动导入"内置手册"(归入"视觉风格分类")。 - 内置精简模板以"网上资源收集"示例数据为主体(含 2555 条提示词,其余目录内容以打包时实际库为准),个人/梳理类目录留空,开箱即可上手、也方便直接导入自己的资料。
- 内置内容版本升级时以"非破坏性合并"更新(分类按名复用、条目按名 upsert),不覆盖、不清空任何用户数据。
- 示例数据来源致谢:moosl/awesome-gpt-image-2-prompts、davidwuw0811-boop、ZeroLu/awesome-gpt-image、whataicc/aiprompt 等(条目均已标注 origin 溯源字段)。
┌──────────────────────────────────────────────────────────────────────────────┐
│ 🧩PromptSprite │🔒锁定│🗂目录隐藏│📂无类条目│⭐常用│✚新建│⇩导入│⇧导出│⚙设置│[搜索 🔍] │
├────────┬────────┬────────┬────────┬─────────────────────────────────────────┤
│ 项目类别│ 根目录 │ 一级 │ 二级 │ 条目(卡片/列表) | 详情(可编辑) │
│ 日常学习│ 视频 │ 人物 │ 人像 │ ☆收藏 ➜移动到 ↔关联到 ⧉复制到 ✏️编辑/👁浏览│
│ 网上资源│ 海外AI │ Portrait│ Street │ 电影风格人像 | ①~⑩字段 重置/💾保存 │
│ … │ … │ … │ … │ … | [🗂]… 🕒新增历史 ♻回收站 🗑删除 │
└────────┴────────┴────────┴────────┴─────────────────────────────────────────┘
│ 底部状态栏:按悬停层级动态统计条目/分类数 │
└──────────────────────────────────────────────────────────────────────────────┘
- 从 GitHub Releases 下载
PromptSprite_<日期YYMMDD>_V<版本号>.exe(如PromptSprite_260910_V1.8.0.exe); - 双击运行(首次自动建库并导入内置数据;可放在任意目录,数据保存在 EXE 同目录
data/下); - 详细图文说明见 《软件安装使用说明书 V8》。
# 1. 克隆仓库
git clone https://github.com/yihufree/PromptSprite.git
cd PromptSprite
# 2. 创建虚拟环境并安装依赖(Python 3.12,兼容 3.10+)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
# 3. 启动(以下三种方式等价)
python app/main.py # 直接运行主文件(推荐)
python run.py # 根目录启动器
python -m app.main --smoke # 冒烟测试:5 秒后自动退出运行依赖:customtkinter / Pillow / pyperclip / openpyxl / keyboard / pystray(见 requirements.txt,直接运行主文件缺依赖时会自动安装)。
python build.py # 一键打包(自动装依赖/生成图标/内嵌最新完整库/PyInstaller 单 EXE/校验)产物自动按 PromptSprite_<日期YYMMDD>_V<版本号>.exe 命名(如 dist\PromptSprite_260910_V1.8.0.exe,单文件、无控制台窗口)。详见 《打包发布指南 V8》。
PromptSprite/
├── app/ # 主程序包
│ ├── main.py # 程序入口:启动静默备份→建库→内置库/迁移向导→热键/托盘
│ ├── config.py # 全局常量:版本、目录、备份/变更包策略、meta 键
│ ├── database.py # SQLite 数据层:projects/domains/categories/entries/meta/
│ │ # entry_links/deletion_log(payload)/trash(回收站);迁移、多位置、
│ │ # 删除恢复、删除日志(含完整快照 payload)
│ ├── backup.py # 启动自动全量备份(按天去重/默认 30 份/快照不清理)
│ │ # + 导入前快照 preimport_snapshot()
│ ├── incremental_backup.py # 每日"变更包":变更包_{代号}_{日期}_add_{N}_del_{M}.json(JSON v4、
│ │ # summary、携带被删快照可选、逆向恢复支持、日志清理)
│ ├── hotkey.py # 全局热键 Ctrl+Shift+P + 系统托盘
│ ├── self_test.py / gui_self_test.py # 自测入口(database/backup/变更包/MD + GUI 冒烟)
│ ├── parser/ # md_parser / json_io(v2/v3/v4,含变更包导入与逆向恢复) /
│ │ # excel_io / html_export
│ ├── ui/ # main_window(主界面)/ change_import_dialog(变更包导入向导)/
│ │ # compare_dialog(数据比对)/ history_dialog(回收站+新增历史)/
│ │ # quick_add / copy_move_dialog / move_selector / migrate_dialog /
│ │ # project_chooser / progress_dialog / settings_dialog
│ └── resources/ # builtin_manual.md(内置手册)+ builtin_prompts.db(打包时内嵌)
├── docs/ # 说明书V7 / 打包指南V8 / 手册
├── Icons/PSicon.png # 应用图标源
├── build.py / run.py / requirements.txt
├── data/ # 运行时生成(不入库):prompts.db、backup/(自动全量+导入前快照)、
│ # backup/incremental/(每日变更包)、images/(关联图片)
├── *.json / *.xlsx # 数据资产示例文件(可直接导入)
└── LICENSE / README.md / .gitignore
- 100% 本地:单文件 SQLite 数据库
data/prompts.db;打包态为 EXE 同目录data/,开发态为项目根data/。软件不联网、不上传、不收集任何数据。 - 图片与备份:条目关联图片存
data/images/;自动全量备份与导入前快照存data/backup/;每日变更包存data/backup/incremental/。 - 数据模型:项目类别/根目录/一级/二级/条目五级;分类为全局共享树,删除根目录仅解除关联;
trash表保存被删完整快照(可恢复);旧库启动自动迁移(v1→v2→v3),deletion_log老库自动补payload列(V1.7.0)。 - 隐私提醒:变更包可能包含条目内容与删除清单;"携带被删快照"默认关闭,分发/导入前请先查看摘要确认(纯删除包会有红字警告)。
| 文档 | 说明 |
|---|---|
| 软件安装使用说明书(V8) | 面向普通用户的安装与使用指南(当前版 V1.8.0) |
| 打包发布指南(V8) | 源码打包 EXE 与 GitHub Releases 发布全流程(V1.7.0) |
更完整的历史版本(V5/V6/V7 等)与《项目结构与文档体系说明》见
docs/目录。
- 报告问题(Issue):建议先在 GitHub Issues 搜索是否已有同类问题;提交时请注明版本号("关于"可查)、复现步骤、截图/日志与数据影响范围。
- 发起 PR:Fork 本仓库并创建特性分支;遵循项目约定——修改处添加
修改日期+内容注释;每次问答/开发内容按编号追加到开发工作记录(禁止覆盖/删除已有内容);提交遵循 Conventional Commits 规范;合并前请先跑python -m app.self_test与 GUI 冒烟。 - 讨论与建议:需求/方案类讨论欢迎直接开 Issue 交流;涉及数据安全(删除、导入、备份)的改动会被重点审查。
☕ 如果你开心,欢迎送爱心请作者喝杯咖啡,让我更有动力去创造!
本项目采用 MIT License(见 LICENSE),仅供学习与个人使用。引用本项目或代码请保留版权声明。
- 搜索的 1.5 秒延迟是刻意设计:V1.8.0 起输入过程不实时查询(避免整库刷新卡顿),停止输入约 1.5 秒后才搜索;要"立刻出结果"请点搜索框右侧 🔍 或按回车。
- 窗口最小宽度会随目录显隐变化:四列全显示时约 1420、四列全隐藏时约 1028(该下限由顶部工具栏"完整显示所需宽度"决定,低于它"导入/导出/设置/搜索"会被挤出可视区)。若把窗口从"目录全隐藏"的窄宽度直接恢复显示四列,窗口会被最小宽度自动顶宽。
- 多位置条目的 JSON/Excel 导出往返:同一分类子树导出时,多位置(主挂靠 + 关联)条目会在文件里出现多行,再次导入会变成多份独立副本而非原"关联关系"(B-13 记录;如需保真请用整库 JSON 或保留多位置功能原地使用)。
- 数据比对口径:条目差异按"详情内容键(content_key)"识别;同名不同内容会被视为不同条目,内容一致但位置不同的两条视为同一条(已按分类 id 修复同名分类互相覆盖问题)。
- "修改"的换机同步语义:当前以内容判重合并,"修改"表现为"新增一条 + 原条保留";真正的"更新/编辑同步"需引入稳定条目 ID(后续增强)。