prlt
Provides secure, sandboxed containers for running agent workspaces isolated from the host system.
Allows agents to create branches, commit code, and open pull requests on GitHub repositories.
Enables installation and upgrades of the prlt CLI via Homebrew on macOS.
Allows installation and usage of the prlt CLI via npm across all platforms.
All state is stored in a local SQLite database for tracking tickets, executions, and agent status.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@prltcreate a ticket for adding OAuth and spawn an agent to implement it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
██████╗ ██████╗ ██████╗ ██╗ ███████╗████████╗ █████╗ ██████╗ ██╗ █████╗ ████████╗
██╔══██╗██╔══██╗██╔═══██╗██║ ██╔════╝╚══██╔══╝██╔══██╗██╔══██╗██║██╔══██╗╚══██╔══╝
██████╔╝██████╔╝██║ ██║██║ █████╗ ██║ ███████║██████╔╝██║███████║ ██║
██╔═══╝ ██╔══██╗██║ ██║██║ ██╔══╝ ██║ ██╔══██║██╔══██╗██║██╔══██║ ██║
██║ ██║ ██║╚██████╔╝███████╗███████╗ ██║ ██║ ██║██║ ██║██║██║ ██║ ██║
╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ╚═╝Seize the means of production - Ship 100x.
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, actionAgent 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 -
--jsonmode 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 → DonesequenceDiagram
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 & approveSpawn 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/prltWorks on both Apple Silicon (arm64) and Intel (x86_64) Macs. No compiler needed.
Upgrade:
brew update
brew upgrade prltnpm / pnpm (all platforms)
npm install -g @proletariat/cli
# or
pnpm install -g @proletariat/clipnpm 10+ note: pnpm 10 blocks native addon build scripts by default. If
prltfails with a native module error after install, runpnpm approve-buildsin the global store and reinstall, or usenpm/brewinstead.
Verify:
prlt --versionMCP 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 permissionsEntity | 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
└── DoneTickets 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 |
| Tech founders & executives (default) |
|
| Toyota vehicle models |
|
| Major tech companies |
|
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 themeThemes 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-043View 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 featureExecution Modes
Environment - where the agent runs:
Environment | Flag | Best For |
🐳 Docker | (default if devcontainer exists) | Safety—fully isolated container |
🏃 Host |
| Speed—no container overhead |
Display - how you see it:
Display | Flag | Best For |
📺 Terminal |
| Watch in new terminal tab |
🔇 Background |
| Detached, reattach later |
Permissions - agent access level:
Mode | Flag | Description |
🔒 Safe | (default) | Agent prompts for permissions |
🕺 YOLO |
| 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-permissionsParallel 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 dockerEach 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 --> PR3Agent-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 watchThree 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-012Grooming Session
Have an agent refine ticket requirements:
prlt work groom TKT-042Agent adds acceptance criteria, subtasks, estimates.
Environment Variables
Variable | Purpose |
| GitHub operations (PRs, etc.) |
Claude Code handles its own authentication via claude login.
Related MCP server: BMAD-MCP
Requirements
Node.js 20+ (22 LTS recommended)
Git
Claude Code (
claude loginto 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/cliIf you must use Bun, ensure Node.js 22 (LTS) is also installed and set better-sqlite3 to use its prebuilt binaries:
npm rebuild better-sqlite3npm 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/cliOr use Homebrew instead (macOS):
brew install chrismcdermut/proletariat/prltNative 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 --forceSee the full troubleshooting guide for more details.
Support
Discord: discord.gg/tmZyjNNSvw
GitHub Issues: Report bugs or request features
Setup Help: Book a call - I'll help you get things running
License
Apache 2.0
Star on GitHub | Install from NPM | Report Issues
Made with ⚒️ by the proletariat.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -licenseBquality-maintenanceEnables AI-driven orchestration of GitHub development workflows including automated issue analysis, code generation, code review, and PR creation through multiple specialized agents. Integrates with GitHub Actions to automate the complete development process from issue to pull request.7
- AlicenseBqualityDmaintenanceOrchestrates complete agile development workflows from product requirements to QA testing through role-based stages (PO → Architect → SM → Dev → Review → QA). Manages workflow state, generates role-specific prompts, and saves artifacts while integrating with multiple AI engines for comprehensive project delivery.13519MIT
- AlicenseAqualityAmaintenanceOrchestrates multiple AI coding agents declaratively to automate software development workflows for engineering teams.212879Apache 2.0
- Alicense-qualityDmaintenanceEnables AI agents to manage projects, epics, and tasks with atomic locking, real-time dashboard, and multi-agent coordination.MIT
Related MCP Connectors
Create and manage AI agents that collaborate and solve problems through natural language interacti…
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Git-backed platform for skills, tools, and context for AI agents
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrismcdermut/proletariat'
If you have feedback or need assistance with the MCP directory API, please join our Discord server