Skip to main content
Glama
██████╗ ██████╗  ██████╗ ██╗     ███████╗████████╗ █████╗ ██████╗ ██╗ █████╗ ████████╗
██╔══██╗██╔══██╗██╔═══██╗██║     ██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██║██╔══██╗╚══██╔══╝
██████╔╝██████╔╝██║   ██║██║     █████╗     ██║   ███████║██████╔╝██║███████║   ██║
██╔═══╝ ██╔══██╗██║   ██║██║     ██╔══╝     ██║   ██╔══██║██╔══██╗██║██╔══██║   ██║
██║     ██║  ██║╚██████╔╝███████╗███████╗   ██║   ██║  ██║██║  ██║██║██║  ██║   ██║
╚═╝     ╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═╝   ╚═╝

掌握生产资料——实现100倍交付。

npm MCP Registry License

面向AI劳动力的代理编排平台。 按需为所有工作启动工作者。

主题化代理,包括亿万富翁——终于,他们为我们工作了。

⚠️ Beta软件 — 正在积极开发中。命令和API在不同版本间可能发生变化,bug正在被积极修复。

让我们助你交付 预约通话 — 我很乐意帮助你运行prlt,或讨论反馈、想法、多代理工作流以及工作/劳动的未来(以及经济劳动理论..)


概览

prlt 是一个面向AI劳动力的代理编排平台。按需启动工作者,通过一个CLI协调多代理开发。隔离的工作空间、安全的容器、持久的状态。

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

代理在自己的分支中生成,编写代码,打开PR。你审查并合并。

为什么选择prlt?

  • 隔离 - 每个代理拥有自己的git分支。无冲突。

  • 安全 - Docker容器,与主机沙箱隔离。

  • 持久 - Tmux会话持久化。关闭窗口,代理继续工作。

  • 可追踪 - 一个数据库,一个CLI,所有代理。

  • 临时 - 按需生成代理。它们工作,它们PR,然后完成。

  • 结构化 - 工单提供结构化上下文,而非自由格式聊天。

  • 持久化 - 工单随时间积累上下文。在代理之间交接。

  • 代理原生 - --json模式让AI代理以编程方式驱动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

生成代理来实现、梳理或审查——不仅仅是编写代码。

交互式菜单

prlt work 引导你完成项目和工单选择:

选择你的操作——启动单个代理、批量生成或观察列:

选择要生成的工单,按优先级分组:


深入探讨

问题

解决方案

代理之间的更改相互冲突

隔离 - 每个代理拥有自己的git分支和工作树

代理在未沙箱化的机器上运行

安全 - Docker容器,与主机沙箱隔离(正在研究主机沙箱选项)

你无法追踪谁在做什么

可追踪 - 所有状态在一个SQLite数据库中,一个CLI

关闭窗口时会话终止

持久 - Tmux会话持久化,随时分离/重新连接

上下文分散在聊天窗口中

结构化 - 带有需求、验收标准的工单

启动代理过于重量级

临时 - 按需生成,它们工作,它们PR,然后完成

代理运行之间上下文丢失

持久化 - 工单积累上下文,在代理之间交接

安装

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包含一个内置的MCP服务器,拥有100多个工具。将其添加到你的AI客户端:

Claude Code(~/.claude.json):

{
  "mcpServers": {
    "prlt": { "command": "prlt", "args": ["mcp-server"] }
  }
}

Cursor / 其他客户端(通过npx):

{
  "mcpServers": {
    "prlt": { "command": "npx", "args": ["-y", "@proletariat/cli", "mcp-server"] }
  }
}

已列入:MCP Registry | npm

数据模型

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 (Temp)

为单个工单生成的临时代理

Execution

在工单上运行的代理会话

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

工单随着工作进展在状态间流动。代理在开始工作、打开PR或完成任务时自动移动工单。

工作空间结构

每个代理获得所有仓库的副本(仓库范围限定即将推出)。工作在隔离的分支上进行。

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/

代理命名主题

主题控制代理的命名方式。员工代理直接使用主题名称(例如bezos、camry)。临时代理添加一个形容词前缀(例如bold-bezos、keen-camry)。目前临时名称还包含一个数字后缀(bold-bezos-1),但很快将被移除。

内置主题:

主题

描述

示例名称

billionaires

科技创始人及高管(默认)

musk, gates, bezos

toyotas

丰田车型

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代理)

添加--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代理解析此内容,做出选择,调用下一个命令。

3. 标志(脚本/CI)

直接传递所有内容:

prlt ticket create \
  --title "Add OAuth" \
  --description "Google and GitHub OAuth" \
  --priority P1 \
  --category feature

执行模式

环境 - 代理运行的位置:

环境

标志

最佳用途

🐳 Docker

(默认如果存在devcontainer)

安全——完全隔离的容器

🏃 主机

--run-on-host

速度——无容器开销

显示 - 你如何看到它:

显示

标志

最佳用途

📺 终端

--display terminal

在新终端标签页中观看

🔇 后台

--display background

分离,稍后重新连接

权限 - 代理访问级别:

模式

标志

描述

🔒 安全

(默认)

代理提示权限

🕺 YOLO

--skip-permissions

无提示,完全访问。与Docker一起使用以实现安全的自主性。

所有会话在底层使用tmux运行——关闭窗口,代理继续工作。

# 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

并行代理

同时处理多个工单。

交互式(人类):

$ 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代理): (多选进行中)

$ 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

每个代理在自己的分支中工作。无冲突。

扩展: 主要限制是你的机器。50个以上并发代理是可以实现的——取决于CPU、RAM以及你是否运行Docker或主机模式。

使用prlt execution监控正在运行的代理:

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

代理创建的PR准备审查:

命令参考

运行 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

三个代理,三个分支,三个 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

梳理会议

让代理完善工单需求:

prlt work groom TKT-042

代理添加验收标准、子任务、估算。


环境变量

变量

用途

GITHUB_TOKEN

GitHub 操作(PR 等)

Claude Code 通过 claude login 自行处理认证。


Related MCP server: Bernstein - Multi-agent orchestration

要求

  • Node.js 20+(推荐 22 LTS)

  • Git

  • Claude Code(运行 claude login 进行认证)

  • SQLite

  • Tmux(会话持久化)

  • Docker(可选——用于隔离执行)


安装故障排除

bun install 在 better-sqlite3 上失败

症状:bun install -g @proletariat/cli 在 better-sqlite3 原生模块构建过程中因 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

有关更多详细信息,请参阅完整故障排除指南。


支持


许可证

Apache 2.0


npm version Downloads License

在 GitHub 上星标 | 从 NPM 安装 | 报告问题

由无产阶级用 ⚒️ 打造。

Maintenance

ActivityInactive
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers