1. Conduid
  2. Agents
  3. io.github.chrismcdermut/proletariat-cli
MCP server · Agents

io.github.chrismcdermut/proletariat-cli

Agent orchestration platform - multi-agent spawning, tickets, boards, and workflows

Unclaimed agents
37Low

Scored 6 months ago · breakdown

About io.github.chrismcdermut/proletariat-cli

io.github.chrismcdermut/proletariat-cli is an MCP server in the Agents category: agent orchestration platform - multi-agent spawning, tickets, boards, and workflows.

Install

Claude Code
claude mcp add io-github-chrismcdermut-proletariat-cli -- npx -y @proletariat/cli
npx
npx -y @proletariat/cli

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about io.github.chrismcdermut/proletariat-cli

Powered by Claude · Grounded in docs

I know everything about io.github.chrismcdermut/proletariat-cli. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

██████╗ ██████╗  ██████╗ ██╗     ███████╗████████╗ █████╗ ██████╗ ██╗ █████╗ ████████╗
██╔══██╗██╔══██╗██╔═══██╗██║     ██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██║██╔══██╗╚══██╔══╝
██████╔╝██████╔╝██║   ██║██║     █████╗     ██║   ███████║██████╔╝██║███████║   ██║
██╔═══╝ ██╔══██╗██║   ██║██║     ██╔══╝     ██║   ██╔══██║██╔══██╗██║██╔══██║   ██║
██║     ██║  ██║╚██████╔╝███████╗███████╗   ██║   ██║  ██║██║  ██║██║██║  ██║   ██║
╚═╝     ╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝   ╚═╝   ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═╝   ╚═╝

Seize the means of production - Ship 100x.

npm MCP Registry License

Agent orchestration platform for AI labor. Spin up workers for all work, on demand.

Themed agents, including billionaires - Finally, they work for us.

⚠️ Beta Software — Under active development. Commands and APIs may change between versions, and bugs are actively being squashed.

Let's get you shipping Book a call - I'm happy to help you get prlt running or chat feedback, ideas, multi-agent workflows, and the future of work/labor (and economic labor theory..)


TLDR

prlt is an agent orchestration platform for AI labor. Spin up workers on demand, coordinate multi-agent development from one CLI. Isolated workspaces, secure containers, persistent state.

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 spawns in its own branch, writes code, opens PR. You review and merge.

Why prlt?

  • Isolated - Each agent gets its own git branch. No conflicts.
  • Secure - Docker containers, sandboxed from your host.
  • Durable - Tmux sessions persist. Close window, agent keeps working.
  • Trackable - One database, one CLI, all your agents.
  • Ephemeral - Spawn agents on demand. They work, they PR, they're done.
  • Structured - Tickets provide structured context, not freeform chat.
  • Persistent - Tickets accumulate context over time. Hand off between agents.
  • Agent-native - --json mode lets AI agents drive the CLI programmatically.

Quick Start

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

Spawn agents to implement, groom, or review—not just write code.

Interactive Menus

prlt work guides you through project and ticket selection:

Choose your operation—start a single agent, batch spawn, or watch a column:

Select tickets to spawn, grouped by priority:


Deep Dive

Problem Solution
Agents conflict with each other's changes Isolated - Each agent gets its own git branch and worktree
Agents run unsandboxed on your machine Secure - Docker containers, sandboxed from your host (looking into host sandbox options)
You lose track of who's doing what Trackable - All state in one SQLite database, one CLI
Sessions die when you close a window Durable - Tmux sessions persist, detach/reattach anytime
Context scattered across chat windows Structured - Tickets with requirements, acceptance criteria
Starting agents is heavyweight Ephemeral - Spawn on demand, they work, they PR, they're done
Context lost between agent runs Persistent - Tickets accumulate context, hand off between agents

Installation

Homebrew (recommended)

brew install chrismcdermut/proletariat/prlt

Works on both Apple Silicon (arm64) and Intel (x86_64) Macs. No compiler needed.

Upgrade:

brew update
brew upgrade prlt

npm / pnpm (all platforms)

npm install -g @proletariat/cli
# or
pnpm install -g @proletariat/cli

pnpm 10+ note: pnpm 10 blocks native addon build scripts by default. If prlt fails with a native module error after install, run pnpm approve-builds in the global store and reinstall, or use npm / brew instead.

Verify:

prlt --version

MCP Server

prlt includes a built-in MCP server with 100+ tools. Add it to your AI client:

Claude Code (~/.claude.json):

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

Cursor / Other clients (via npx):

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

Listed on: MCP Registry | npm

Data Model

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
Entity Description
Project Groups tickets and epics, references a workflow
Epic Work container with lifecycle (draft → active → complete)
Ticket Individual work item with requirements and acceptance criteria
Spec Static documentation (can span projects, linked to epics)
Workflow Status flow configuration (can be shared across projects)
Phase Stage in a workflow
Status Ticket state within a phase
Action Reusable prompt/action templates
Agent (Staff) Persistent named agent with dedicated workspace
Agent (Temp) Ephemeral agent spawned for a single ticket
Execution Running agent session on a ticket
Display Terminal (new tab) or Background (detached)

Example Workflow

A workflow defines how tickets move through your process. Projects reference a workflow, and multiple projects can share the same one.

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

Tickets flow through statuses as work progresses. Agents automatically move tickets when they start work, open PRs, or complete tasks.

Workspace Structure

Each agent gets a copy of all repos (repo scoping coming soon). Work happens on isolated branches.

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 Naming Themes

Themes control how agents are named. Staff agents use theme names directly (e.g., bezos, camry). Ephemeral agents add an adjective prefix (e.g., bold-bezos, keen-camry). Currently ephemeral names also include a number suffix (bold-bezos-1), but this will be removed soon.

Built-in Themes:

Theme Description Example Names
billionaires Tech founders & executives (default) musk, gates, bezos
toyotas Toyota vehicle models camry, supra, tacoma
companies Major tech companies stripe, vercel, linear

billionaires — Finally, they work for us.

Theme Commands:

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

Themes are selected during prlt new.

Three Ways to Use Commands

1. Interactive (Humans)

Run without flags—get guided prompts:

$ prlt ticket create

? Title: Add password reset
? Description: Email-based password reset flow
? Priority: P1
? Category: feature

✓ Created TKT-043

View ticket details with prlt ticket:

2. JSON Mode (AI Agents)

Add --json for machine-readable output:

$ 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 agents parse this, make selections, call the next command.

3. Flags (Scripts/CI)

Pass everything directly:

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

Execution Modes

Environment - where the agent runs:

Environment Flag Best For
🐳 Docker (default if devcontainer exists) Safety—fully isolated container
🏃 Host --run-on-host Speed—no container overhead

Display - how you see it:

Display Flag Best For
📺 Terminal --display terminal Watch in new terminal tab
🔇 Background --display background Detached, reattach later

Permissions - agent access level:

Mode Flag Description
🔒 Safe (default) Agent prompts for permissions
🕺 YOLO --skip-permissions No prompts, full access. Use with Docker for safe autonomy.

All sessions run in tmux under the hood—close the window, agent keeps working.

# 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

Parallel Agents

Work on multiple tickets simultaneously.

Interactive (humans):

$ 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 mode (AI agents): (multi-select WIP)

$ 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"}
    ]
  }
}

Flags (scripts/CI):

prlt work spawn TKT-042 TKT-043 --action implement --mode docker

Each agent works in its own branch. No conflicts.

Scaling: The main limit is your machine. 50+ concurrent agents is achievable—depends on CPU, RAM, and whether you're running Docker or host mode.

Monitor running agents with 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

Agent-created PRs ready for review:

Command Reference

Run prlt <command> --help for flags and options.

Use Cases

Parallel Feature Development

# 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

Three agents, three branches, three PRs. You review and merge.

Bug Bash

# 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

Grooming Session

Have an agent refine ticket requirements:

prlt work groom TKT-042

Agent adds acceptance criteria, subtasks, estimates.


Environment Variables

Variable Purpose
GITHUB_TOKEN GitHub operations (PRs, etc.)

Claude Code handles its own authentication via claude login.


Requirements

  • Node.js 20+ (22 LTS recommended)
  • Git
  • Claude Code (claude login to authenticate)
  • SQLite
  • Tmux (session persistence)
  • Docker (optional—for isolated execution)

Troubleshooting Installation

bun install fails on better-sqlite3

Symptom: bun install -g @proletariat/cli fails with isexe or node-gyp errors during the better-sqlite3 native module build.

Cause: Bun's node-gyp compatibility is limited. The which dependency inside node-gyp uses isexe, which is incompatible with Bun's runtime shims.

Fix: Use npm or Homebrew instead:

# 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

If you must use Bun, ensure Node.js 22 (LTS) is also installed and set better-sqlite3 to use its prebuilt binaries:

npm rebuild better-sqlite3

npm EACCES: permission denied

Symptom: npm install -g @proletariat/cli fails with EACCES: permission denied on /opt/homebrew/lib/node_modules or /usr/local/lib/node_modules.

Fix: Configure npm to use a user-writable directory:

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

Or use Homebrew instead (macOS):

brew install chrismcdermut/proletariat/prlt

Native module errors after install

Symptom: prlt runs but crashes with better_sqlite3.node or ABI mismatch errors.

Fix:

# 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

See the full troubleshooting guide for more details.


Support


License

Apache 2.0


npm version Downloads License

Star on GitHub | Install from NPM | Report Issues

Made with ⚒️ by the proletariat.

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About io.github.chrismcdermut/proletariat-cli

How do I install io.github.chrismcdermut/proletariat-cli?

Run claude mcp add io-github-chrismcdermut-proletariat-cli -- npx -y @proletariat/cli, then add the server to your MCP client's configuration.

Is io.github.chrismcdermut/proletariat-cli safe to use with an AI agent?

Its trust score is 37 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is io.github.chrismcdermut/proletariat-cli still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.