关于 proletariat-cli
prlt 是一个面向多 Agent 开发的编排平台,通过一个命令行统一管理工单、看板和工作流。每个 Agent 在独立的 git 分支和工作区中运行,适合希望并行推进任务的开发者。该项目处于测试阶段,命令和接口可能变化。
主要功能
- 01按需启动 Agent 处理工单
- 02每个 Agent 使用独立 git 分支与工作区
- 03基于 tmux 的会话持久化
- 04基于 SQLite 的统一状态管理
- 05--json 模式供 AI Agent 调用命令行
- 06支持 Docker 与主机两种运行环境
适用场景
- 01并行为多个工单生成代码并提交 PR
- 02由 Agent 执行评审或整理工单等非编码任务
- 03在关闭终端后让 Agent 继续在后台工作
MCP 相关
prlt 内置 MCP 服务,提供 100 余个工具,供 MCP 客户端调用以管理工单与 Agent 执行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
██████╗ ██████╗ ██████╗ ██╗ ███████╗████████╗ █████╗ ██████╗ ██╗ █████╗ ████████╗
██╔══██╗██╔══██╗██╔═══██╗██║ ██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██║██╔══██╗╚══██╔══╝
██████╔╝██████╔╝██║ ██║██║ █████╗ ██║ ███████║██████╔╝██║███████║ ██║
██╔═══╝ ██╔══██╗██║ ██║██║ ██╔══╝ ██║ ██╔══██║██╔══██╗██║██╔══██║ ██║
██║ ██║ ██║╚██████╔╝███████╗███████╗ ██║ ██║ ██║██║ ██║██║██║ ██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ╚═╝
夺取生产资料——交付速度提升 100 倍。
面向 AI 劳动力的 Agent 编排平台。 按需启动工作 Agent,处理各种任务。
主题化 Agent,包括亿万富翁——终于,他们为我们工作了。
⚠️ Beta 软件——正在积极开发中。不同版本之间的命令和 API 可能会发生变化,我们也在积极修复漏洞。
开始交付吧 预约通话——我很乐意帮你运行 prlt,或交流反馈、想法、多 Agent 工作流,以及工作的未来/劳动力(还有经济学中的劳动力理论……)
TLDR
prlt 是一个面向 AI 劳动力的 Agent 编排平台。按需启动工作 Agent,通过一个 CLI 协调多 Agent 开发。提供隔离的工作区、安全的容器和持久状态。
brew install chrismcdermut/proletariat/prlt # macOS (Homebrew)
# or
npm install -g @proletariat/cli # any platform (npm)
prlt new
prlt ticket create --title "Add OAuth" --category feature
prlt work spawn # Interactive: select tickets, environment, action
Agent 会在自己的分支中启动、编写代码并创建 PR。你负责审查并合并。
为什么选择 prlt?
- 隔离——每个 Agent 都有自己的 git 分支,不会产生冲突。
- 安全——使用 Docker 容器,与宿主机隔离。
- 持久——Tmux 会话会持续运行。关闭窗口后,Agent 仍会继续工作。
- 可追踪——一个数据库、一个 CLI,管理你的所有 Agent。
- 临时——按需启动 Agent。它们完成工作、创建 PR,然后结束。
- 结构化——工单提供结构化上下文,而非自由聊天。
- 可持续——工单会随着时间累积上下文,方便在 Agent 之间交接。
- 原生支持 Agent——
--json模式让 AI Agent 以编程方式驱动 CLI。
快速入门
brew install chrismcdermut/proletariat/prlt # Install (Homebrew, recommended)
# or
npm install -g @proletariat/cli # Install (npm, all platforms)
prlt new # Create HQ, add repos, choose theme
prlt ticket create --title "Add OAuth" --category feature
prlt work spawn # Interactive: select tickets, environment, action
# Agent creates PR → You review → Merge → Done
工作流示意图(点击展开)
sequenceDiagram
participant You
participant prlt
participant Agent
participant GitHub
You->>prlt: prlt ticket create
You->>prlt: prlt work spawn
prlt->>prlt: Create branch
prlt->>prlt: Create workspace
prlt->>Agent: Spawn agent
Agent->>Agent: Read ticket
Agent->>Agent: Write code
Agent->>GitHub: Commit
Agent->>GitHub: Open PR
Agent->>prlt: Update status
prlt->>You: PR ready
You->>GitHub: Review & approve
启动 Agent 来实现、整理或审查任务,而不只是编写代码。
交互式菜单
prlt work 会引导你选择项目和工单:
选择操作——启动单个 Agent、批量启动,或监控某一列:
选择要启动的工单,列表按优先级分组:
深入探究
| 问题 | 解决方案 |
|---|---|
| Agent 之间的更改相互冲突 | 隔离 - 每个 Agent 都有自己的 git 分支和工作树 |
| Agent 在你的机器上不受沙箱限制地运行 | 安全 - 使用 Docker 容器,与主机隔离(正在研究主机沙箱方案) |
| 你无法掌握谁在做什么 | 可追踪 - 所有状态都存储在一个 SQLite 数据库中,通过一个 CLI 管理 |
| 关闭窗口后会话就会终止 | 持久 - Tmux 会话会持续存在,可随时分离或重新连接 |
| 上下文分散在多个聊天窗口中 | 结构化 - 使用包含需求和验收标准的工单 |
| 启动 Agent 的开销很大 | 临时 - 按需启动,完成工作、提交 PR,然后结束 |
| Agent 运行之间会丢失上下文 | 持久 - 工单会累积上下文,可在不同 Agent 之间交接 |
安装
Homebrew(推荐)
brew install chrismcdermut/proletariat/prlt
支持 Apple Silicon(arm64)和 Intel(x86_64)Mac,无需编译器。
升级:
brew update
brew upgrade prlt
npm / pnpm(所有平台)
npm install -g @proletariat/cli
# or
pnpm install -g @proletariat/cli
pnpm 10+ 注意: pnpm 10 默认会阻止原生插件构建脚本。如果安装后
prlt因原生模块错误而失败,请在全局存储中运行pnpm approve-builds并重新安装,或改用npm/brew。
验证:
prlt --version
MCP 服务
prlt 内置了包含 100+ 个工具的 MCP 服务。将其添加到你的 AI 客户端:
Claude Code(~/.claude.json):
{
"mcpServers": {
"prlt": { "command": "prlt", "args": ["mcp-server"] }
}
}
Cursor / 其他客户端(通过 npx):
{
"mcpServers": {
"prlt": { "command": "npx", "args": ["-y", "@proletariat/cli", "mcp-server"] }
}
}
数据模型
Workspace (HQ)
├── Projects
│ ├── Epics → Tickets
│ └── (references a Workflow)
├── Workflows → Phases → Statuses (can be shared across projects)
├── Specs (can span projects)
├── Actions (reusable templates)
├── Agents
│ ├── Staff (persistent, named)
│ └── Temp (ephemeral, per-ticket)
└── Executions (running sessions)
├── Docker
│ ├── Tmux session
│ ├── Terminal or Background display
│ └── Safe or YOLO permissions
└── Host
├── Tmux session
├── Terminal or Background display
└── Safe or YOLO permissions
| 实体 | 描述 |
|---|---|
| Project | 用于组织工单和史诗,并引用一个工作流 |
| Epic | 具有生命周期(草稿 → 进行中 → 完成)的工作容器 |
| Ticket | 包含需求和验收标准的独立工作项 |
| Spec | 静态文档(可跨项目使用,并与史诗关联) |
| Workflow | 状态流转配置(可在多个项目之间共享) |
| Phase | 工作流中的阶段 |
| Status | 工单在某个阶段内的状态 |
| Action | 可重复使用的提示词/操作模板 |
| Agent (Staff) | 具有专属工作区的持久化命名 Agent |
| Agent (Temp) | 为单个工单启动的临时 Agent |
| Execution | 在工单上运行的 Agent 会话 |
| Display | 终端(新标签页)或后台(分离运行) |
工作流示例
工作流定义工单如何在你的流程中流转。项目会引用一个工作流,多个项目可以共享同一个工作流。
Kanban Workflow
├── Backlog # New tickets land here
├── In Progress # Agent working (prlt work spawn)
├── Review # PR ready (prlt work ready)
└── Done # Merged (prlt work complete)
Scrum Workflow
├── Backlog
├── Sprint
│ ├── To Do
│ ├── In Progress
│ └── In Review
└── Done
随着工作推进,工单会在不同状态之间流转。Agent 会在开始工作、创建 PR 或完成任务时自动移动工单。
工作区结构
每个 Agent 都会获得所有仓库的副本(即将支持仓库范围限定)。工作在隔离的分支上进行。
my-project/
├── .proletariat/
│ └── workspace.db # Tickets, executions, state
├── repos/
│ ├── frontend/ # Your repos
│ ├── backend/
│ └── infra/
└── agents/
├── staff/
│ └── alice/ # Named agent with persistent workspace
│ ├── frontend/
│ ├── backend/
│ └── infra/
└── temp/
├── agent-abc123/ # Ephemeral: Working on TKT-042 (OAuth)
│ ├── frontend/ # All repos on branch: feat/TKT-042-oauth
│ ├── backend/
│ └── infra/
└── agent-def456/ # Ephemeral: Working on TKT-043 (API)
├── frontend/ # All repos on branch: feat/TKT-043-api
├── backend/
└── infra/
Agent 命名主题
主题控制 Agent 的命名方式。常驻 Agent 直接使用主题名称(例如,bezos、camry)。临时 Agent 会在名称前添加形容词(例如,bold-bezos、keen-camry)。目前,临时名称还会添加数字后缀(bold-bezos-1),但很快就会移除。
内置主题:
| 主题 | 描述 | 名称示例 |
|---|---|---|
billionaires | 科技创始人与高管(默认) | musk、gates、bezos |
toyotas | Toyota 车型 | camry、supra、tacoma |
companies | 大型科技公司 | stripe、vercel、linear |
billionaires ——他们终于为我们工作了。
主题命令:
prlt agent themes list # List available themes
prlt agent themes set billionaires # Set active theme
prlt agent themes create mytheme # Create custom theme
prlt agent themes add-names mytheme # Add names to custom theme
在 prlt new 期间选择主题。
使用命令的三种方式
1. 交互式(人工)
不带标志运行,即可获取引导式提示:
$ prlt ticket create
? Title: Add password reset
? Description: Email-based password reset flow
? Priority: P1
? Category: feature
✓ Created TKT-043
使用 prlt ticket 查看工单详情:
2. JSON 模式(AI Agent)
添加 --json 以获取机器可读的输出:
$ prlt work start --json
{
"prompt": {
"type": "list",
"message": "Select ticket to work on:",
"choices": [
{
"name": "[P1] TKT-042 - Add user authentication",
"value": "TKT-042",
"command": "prlt work start TKT-042 --json"
}
]
}
}
AI Agent 会解析这些内容、做出选择并调用下一条命令。
3. 标志(脚本/CI)
直接传入所有内容:
prlt ticket create \
--title "Add OAuth" \
--description "Google and GitHub OAuth" \
--priority P1 \
--category feature
执行模式
环境——Agent 的运行位置:
| 环境 | 标志 | 适用场景 |
|---|---|---|
| 🐳 Docker | (存在 devcontainer 时为默认值) | 安全性——完全隔离的容器 |
| 🏃 主机 | --run-on-host | 速度——无容器开销 |
显示方式——查看运行情况的方式:
| 显示方式 | 标志 | 适用场景 |
|---|---|---|
| 📺 终端 | --display terminal | 在新的终端标签页中查看 |
| 🔇 后台 | --display background | 分离运行,之后可重新连接 |
权限——Agent 的访问级别:
| 模式 | 标志 | 描述 |
|---|---|---|
| 🔒 安全 | (默认) | Agent 会请求权限 |
| 🕺 YOLO | --skip-permissions | 不询问,拥有完整访问权限。与 Docker 搭配使用,实现安全的自主运行。 |
所有会话底层都在 tmux 中运行——关闭窗口后,Agent 仍会继续工作。
# Default: Docker + terminal (if devcontainer exists)
prlt work start TKT-042
# Docker + background
prlt work start TKT-042 --display background
# Host + background (fast, no container)
prlt work start TKT-042 --run-on-host --display background
# Docker + YOLO (full autonomy, safely sandboxed)
prlt work start TKT-042 --skip-permissions
并行 Agent
同时处理多个工单。
交互式(人工):
$ prlt work spawn
? Spawn mode: Select specific tickets
? Select tickets:
◉ [P1] TKT-042 - Add user authentication
◉ [P1] TKT-043 - Add API rate limiting
◯ [P2] TKT-044 - Add email notifications
? Action: implement
? Environment: docker
Spawning 2 tickets...
JSON 模式(AI Agent): (多选功能开发中)
$ prlt work spawn --json --many
{
"prompt": {
"type": "checkbox",
"message": "Select tickets to spawn:",
"choices": [
{"name": "[P1] TKT-042 - Add user authentication", "value": "TKT-042"},
{"name": "[P1] TKT-043 - Add API rate limiting", "value": "TKT-043"}
]
}
}
标志(脚本/CI):
prlt work spawn TKT-042 TKT-043 --action implement --mode docker
每个 Agent 都在自己的分支上工作,不会发生冲突。
扩展能力: 主要限制因素是你的机器。可以同时运行 50 个以上的 Agent,具体取决于 CPU、RAM,以及使用 Docker 模式还是主机模式。
使用 prlt execution 监控正在运行的 Agent:
flowchart LR
subgraph You
spawn[prlt work spawn]
end
subgraph Agents
A1[Agent 1<br/>TKT-042 OAuth]
A2[Agent 2<br/>TKT-043 Rate Limit]
A3[Agent 3<br/>TKT-044 Notifications]
end
subgraph GitHub
PR1[PR #101<br/>feat/TKT-042-oauth]
PR2[PR #102<br/>feat/TKT-043-rate-limit]
PR3[PR #103<br/>feat/TKT-044-notifications]
end
spawn --> A1
spawn --> A2
spawn --> A3
A1 --> PR1
A2 --> PR2
A3 --> PR3
Agent 创建的 PR 已准备好供审核:
命令参考
完整命令参考(点击展开)
| 命名空间 | 命令 | 描述 |
|---|---|---|
| 工单 | prlt ticket create | 创建新工单 |
prlt ticket list | 列出所有工单 | |
prlt ticket view | 查看工单详情 | |
prlt ticket edit | 编辑工单 | |
prlt ticket move | 更改状态 | |
prlt ticket delete | 删除工单 | |
prlt ticket complete | 将工单标记为已完成 | |
prlt ticket bulk | 批量操作工单 | |
prlt ticket link block | 关联阻塞工单 | |
prlt ticket link relates | 关联相关工单 | |
| 工作 | prlt work start | 为工单启动 Agent |
prlt work spawn | 批量启动工单 | |
prlt work complete | 将工作标记为已完成 | |
prlt work ready | 标记为待审核 | |
prlt work revise | 请求修改 | |
prlt work watch | 查看工作进度 | |
| 执行 | prlt execution list | 列出运行中的 Agent |
prlt execution logs | 查看 Agent 输出 | |
prlt execution stop | 停止 Agent | |
| Agent | prlt agent list | 列出所有 Agent |
prlt agent status | 检查 Agent 状态 | |
prlt agent shell | 进入 Agent 工作区的 Shell | |
prlt agent visit | 跳转到工作区 | |
prlt agent login | 在容器中验证 Claude 身份 | |
prlt agent rebuild | 重建 Agent 工作区 | |
prlt agent restart | 重启 Agent | |
prlt agent staff add | 添加指定的 Agent | |
prlt agent staff list | 列出常驻 Agent | |
prlt agent temp list | 列出临时 Agent | |
prlt agent temp cleanup | 移除临时 Agent | |
| Agent 主题 | prlt agent themes list | 列出可用主题 |
prlt agent themes set | 设置当前主题 | |
prlt agent themes create | 创建自定义主题 | |
prlt agent themes add-names | 向主题添加名称 | |
| 看板 | prlt board | 查看看板 |
prlt board watch | 实时更新 | |
| 项目 | prlt project create | 创建项目 |
prlt project list | 列出项目 | |
prlt project view | 查看项目详情 | |
prlt project archive | 归档项目 | |
prlt project unarchive | 取消归档项目 | |
prlt project delete | 删除项目 | |
| 操作 | prlt action create | 创建操作模板 |
prlt action list | 列出操作 | |
prlt action show | 显示操作详情 | |
prlt action run | 运行操作 | |
prlt action update | 更新操作 | |
prlt action delete | 删除操作 | |
| 分支 | prlt branch create | 创建分支 |
prlt branch list | 列出分支 | |
prlt branch validate | 验证分支名称 | |
| PR | prlt pr create | 创建拉取请求 |
prlt pr status | 检查 PR 状态 | |
prlt pr link | 将 PR 关联到工单 | |
| gh | prlt gh login | 登录 GitHub |
prlt gh status | 检查身份验证状态 | |
prlt gh token | 获取 GitHub 令牌 | |
| 仓库 | prlt repo add | 添加仓库 |
prlt repo list | 列出仓库 | |
prlt repo view | 查看仓库详情 | |
prlt repo remove | 移除仓库 | |
| Docker | prlt docker list | 列出容器 |
prlt docker status | 检查 Docker 状态 | |
prlt docker start | 启动容器 | |
prlt docker stop | 停止容器 | |
prlt docker restart | 重启容器 | |
prlt docker logs | 查看容器日志 | |
prlt docker shell | 进入容器 Shell | |
prlt docker sync | 同步容器文件 | |
prlt docker clean | 移除已停止的容器 | |
prlt docker prune | 移除未使用的资源 | |
| 会话 | prlt session list | 列出活动的 tmux 会话 |
prlt session attach | 连接到 tmux 会话 | |
| 工作区 | prlt init | 初始化机器配置 |
prlt new | 创建新的 HQ 工作区 | |
prlt workspace list | 列出工作区 | |
prlt workspace add | 添加工作区 | |
prlt workspace use | 切换工作区 | |
| 实用工具 | prlt whoami | 显示当前上下文 |
prlt claude | 快速启动临时 Claude 会话 | |
prlt commit | 创建符合规范的提交 | |
prlt autocomplete setup | 设置 Shell 自动补全 |
运行 prlt <command> --help 查看标志和选项。
使用场景
并行开发功能
# Create tickets for each feature
prlt ticket create --title "Add OAuth" --category feature
prlt ticket create --title "Add API rate limiting" --category feature
prlt ticket create --title "Add email notifications" --category feature
# Spawn all three in parallel (Docker for isolation)
prlt work spawn TKT-001 TKT-002 TKT-003 --mode docker
# Watch the board as they work
prlt board watch
三个 Agent、三个分支、三个 PR。由你审核并合并。
集中排查 Bug
# Spawn all bugs at once
prlt work spawn --all --column Backlog --category bug
# Or pick specific ones
prlt work spawn TKT-010 TKT-011 TKT-012
需求梳理会议
让 Agent 完善工单需求:
prlt work groom TKT-042
Agent 会添加验收标准、子任务和估算。
环境变量
| 变量 | 用途 |
|---|---|
GITHUB_TOKEN | GitHub 操作(PR 等) |
Claude Code 通过 claude login 处理自身的身份验证。
要求
- Node.js 20+(推荐使用 22 LTS)
- Git
- Claude Code(使用
claude login进行身份验证) - SQLite
- Tmux(会话持久化)
- Docker(可选——用于隔离执行)
安装故障排除
bun install 在 better-sqlite3 上失败
症状:在构建 better-sqlite3 原生模块时,bun install -g @proletariat/cli 因 isexe 或 node-gyp 错误而失败。
原因:Bun 对 node-gyp 的兼容性有限。node-gyp 内部的 which 依赖项使用了 isexe,而它与 Bun 的运行时垫片不兼容。
解决方法:改用 npm 或 Homebrew:
# Option 1: Homebrew (macOS, recommended)
brew install chrismcdermut/proletariat/prlt
# Option 2: npm (all platforms)
npm install -g @proletariat/cli
# Option 3: pnpm
pnpm install -g @proletariat/cli
如果必须使用 Bun,请确保也安装了 Node.js 22(LTS),并将 better-sqlite3 设置为使用其预构建二进制文件:
npm rebuild better-sqlite3
npm EACCES: permission denied
症状:npm install -g @proletariat/cli 在 /opt/homebrew/lib/node_modules 或 /usr/local/lib/node_modules 上因 EACCES: permission denied 而失败。
解决方法:将 npm 配置为使用用户可写目录:
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH="$HOME/.npm-global/bin:$PATH"
# Add the export line to your ~/.zshrc or ~/.bashrc
npm install -g @proletariat/cli
或者改用 Homebrew(macOS):
brew install chrismcdermut/proletariat/prlt
安装后出现原生模块错误
症状:prlt 可以运行,但会因 better_sqlite3.node 或 ABI 不匹配错误而崩溃。
解决方法:
# Rebuild for the current Node version
npm rebuild better-sqlite3
# Verify it works
node -e "require('better-sqlite3')"
# If still failing, reinstall
npm install -g @proletariat/cli --force
更多详情,请参阅完整故障排除指南。
支持
- Discord:discord.gg/tmZyjNNSvw
- GitHub Issues:报告错误或请求功能
- 设置帮助:预约通话 - 我会帮你运行起来
许可证
Apache 2.0
在 GitHub 上点星 | 从 NPM 安装 | 报告问题
由无产阶级使用 ⚒️ 制作。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。