PromptVault
LLM提示的版本控制。Web仪表板+CLI+MCP服务器。
提示是代码——它们会进化、中断,需要回滚。但大多数团队在Notion文档或没有历史记录的分散文本文件中管理它们。PromptVault给出的提示与开发人员已经知道的版本控制工作流相同:init、commit、diff、branch、merge、push、pull。
](https://github.com/aryamanpathak2022/promptvault/stargazers)  
演示
为什么选择PromptVault?
| 问题 | PromptVault解决方案 |
|---|---|
| 在Notion文档或Slack中丢失的提示 | 具有完整历史的单一真实来源 |
| 无法比较提示版本 | 类似Git diff 视觉并排 |
| 无法回滚到工作提示 | 即时 reset 到任何以前的版本 |
| 即时改进是不可见的 | 提交消息记录了“为什么” |
| 团队无法在提示上协作 | 分支、合并和共享类似代码 |
| 编辑器集成是手动的 | Claude和Cursor的原生MCP工具 |
“我们在谷歌文档中对提示进行了版本控制——这简直是一场噩梦。PromptVault为我们的提示工程带来了理智。” — *人工智能工程团队*
快速开始
一个命令安装(CLI)
# Install globally via npm
npm install -g promptvault
# Initialize your vault
pv init --author "Your Name" --email you@example.com
# Start tracking prompts
echo "You are a helpful coding assistant." > assistant.prompt
pv add assistant.prompt
pv commit -m "Add coding assistant prompt"
# View history
pv log在本地运行(Web仪表板)
- Web仪表板 带有版本历史记录和差异查看器
- CLI工具 用于终端工作流(22个类似Git的命令)
- MCP服务器 用于克劳德代码/游标集成
- 公共提示共享 社区探索页面
- 出口、进口 用于备份和迁移(JSON、YAML、Markdown)
- 模板引擎 随着
{{variable}}替换 - 快速脱绒 用于质量检查
- 分支与合并 具有三向合并和冲突检测功能
- API密钥验证 用于程序化访问
快速开始
一个命令安装(CLI)
# Install globally via npm
npm install -g promptvault
# Initialize your vault
pv init --author "Your Name" --email you@example.com
# Start tracking prompts
echo "You are a helpful coding assistant." > assistant.prompt
pv add assistant.prompt
pv commit -m "Add coding assistant prompt"
# View history
pv log在本地运行(Web仪表板)
git clone https://github.com/aryamanpathak2022/promptvault.git
cd promptvault
npm install
# Configure environment
cp .env.example .env.local
# Edit .env.local — see "Environment Variables" below
# Set up database
npx prisma db push
# Start dev server
npm run dev打开 http://localhost:3000 并登录GitHub。
CLI安装(源代码)
# Build the CLI
npm run build:cli
# Link globally
npm link
# Initialize a vault
pv init --author "Your Name" --email you@example.com
# Create and track a prompt
echo "You are a helpful coding assistant." > assistant.prompt
pv add assistant.prompt
pv commit -m "Add coding assistant prompt"
# View history and diffs
pv log
pv diff HEAD~1 HEAD
# Branch and merge
pv branch experiment
pv checkout experiment
# ... edit prompts ...
pv add assistant.prompt
pv commit -m "Try a more concise style"
pv checkout main
pv merge experimentMCP服务器设置
首先构建CLI(npm run build:cli),然后添加到编辑器配置中:
克劳德代码 (~/.claude.json 或项目 .mcp.json):
{
"mcpServers": {
"promptvault": {
"command": "node",
"args": ["/path/to/promptvault/dist/cli/mcp/server.js"]
}
}
}光标 (.cursor/mcp.json):
{
"mcpServers": {
"promptvault": {
"command": "node",
"args": ["/path/to/promptvault/dist/cli/mcp/server.js"]
}
}
}MCP服务器从本地读取 .pv/ vault位于您的工作目录中。跑 pv init 第一。
CLI命令参考
核心版本控制
| 命令 | 描述 |
|---|---|
pv init | 初始化新的提示库 |
pv add | 提交阶段提示文件 |
pv commit -m "msg" | 提交分阶段更改 |
pv log | 显示提交历史记录 |
pv status | 显示保管库状态(暂存、已修改、未跟踪) |
pv diff [ref1] [ref2] | 显示版本之间的差异 |
pv checkout | 切换分支或恢复提交 |
pv branch [name] | 列出或创建分支 |
| `pv merge | |
| ` | 将分支合并到当前分支 |
pv tag [name] | 列出或创建标签 |
pv reset [ref] | 将分支重置为以前的提交 |
及时管理
| 命令 | 描述 |
|---|---|
pv list | 列出所有跟踪的带有令牌计数的提示 |
pv show | 显示提示内容 |
pv search | 按名称或内容搜索提示 |
pv export | 将提示导出为JSON、YAML或Markdown |
pv import | 从文件导入提示 |
pv template | 使用创建、渲染或列出模板 {{variable}} 替代品 |
pv config [key] [value] | 获取或设置vault配置 |
pv lint [name] | 检查常见问题的提示 |
协作
| 命令 | 描述 |
|---|---|
pv remote | 管理远程保管库连接 |
pv push [remote] | 将提交推送到远程保管库 |
pv pull [remote] | 从远程保管库中提取提交 |
pv clone | 克隆远程保管库 |
MCP工具参考
| 工具 | 说明 |
|---|---|
list_prompts | 列出vault中跟踪的所有提示 |
get_prompt | 按名称获取提示内容 |
save_prompt | 保存提示(创建文件、阶段和提交) |
get_history | 获取提交历史记录 |
search_prompts | 按名称或内容搜索提示 |
compare_versions | 比较两个提交,看看发生了什么变化 |
get_status | 获取当前保管库状态 |
lint_prompt | 检查常见问题的提示 |
render_template | 渲染带有变量替换的提示模板 |
提示也作为MCP资源通过以下方式公开 promptvault://prompts/.
API 参考
所有端点都支持会话身份验证(浏览器)或API密钥身份验证(X-API-Key 头球
| 方法 | 端点 | 描述 |
|---|---|---|
GET | /api/prompts | 列出用户提示(支持 ?search= 和 ?tag=) |
POST | /api/prompts | 创建新提示 |
GET | /api/prompts/:id | 获取最新版本的单个提示 |
PUT | /api/prompts/:id | 更新提示元数据 |
DELETE | /api/prompts/:id | 删除提示和所有版本 |
GET | /api/prompts/:id/versions | 列出所有版本 |
POST | /api/prompts/:id/versions | 创建新版本 |
GET | /api/keys | 列出API密钥(已屏蔽) |
POST | /api/keys | 生成新的API密钥 |
DELETE | /api/keys | 吊销API密钥 |
从位于的仪表板生成API密钥 /dashboard/settings:
curl -H "X-API-Key: pv_your-key-here" https://your-instance.com/api/prompts自我寄宿
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
DATABASE_URL | 是 | PostgreSQL连接字符串 |
NEXTAUTH_SECRET | 是 | JWT签名的随机字符串(openssl rand -hex 32) |
NEXTAUTH_URL | 是 | 您的应用程序的URL(例如。, https://promptvault.example.com) |
GITHUB_ID | 是 | GitHub OAuth应用程序客户端ID |
GITHUB_SECRET | 是 | GitHub OAuth应用程序客户端机密 |
部署到Vercel
部署到铁路
- 将您的仓库连接到 铁路
- 添加PostgreSQL插件(自动提供
DATABASE_URL) - 设置剩余环境变量
- 部署
手册
npm install
npx prisma db push
npm run build
npm start建筑
promptvault/
├── app/ # Next.js App Router (web dashboard + API)
│ ├── api/ # REST API endpoints
│ ├── dashboard/ # Authenticated dashboard pages
│ ├── explore/ # Public prompt discovery
│ └── p/[id]/ # Public prompt viewer
├── cli/ # CLI tool + MCP server
│ ├── commands/ # 22 Git-like commands
│ ├── mcp/ # MCP server (stdio transport)
│ └── storage.ts # Local vault engine (.pv/ directory)
├── components/ # React components
├── lib/ # Shared utilities (auth, prisma, formatting)
├── prisma/ # Database schema
└── tests/ # Vitest test suite (56 tests)这 网络应用 通过Prisma在PostgreSQL中存储数据。这 命令行界面 管理本地 .pv/ 目录具有自己的提交图、分支和合并逻辑——不需要服务器。这 MCP服务器 将CLI存储引擎封装在模型上下文协议之上,以实现编辑器集成。CLI可以通过以下方式与web API同步 pv remote / pv push / pv pull.
技术栈
- 框架: Next.js 16(应用路由器、React 19、Turbopack)
- 语言: TypeScript(严格模式)
- 造型: 顺风CSS 4
- 数据库: PostgreSQL通过Prisma 7(Neon无服务器适配器)
- 认证: NextAuth.js v5(GitHub OAuth,JWT策略)
- CLI: 指挥官js,粉笔
- MCP: @模型上下文协议/sdk(stdio传输)
- 测试: 维测试
- CI/CD: GitHub 操作
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feat/my-feature) - 进行更改并添加测试
- 运行测试套件(
npm test) - 用描述性消息提交
- 打开拉取请求
