paperclip-cli
โญ 1 stars | ๐ฑ 1 forks
๐ Quick Links
๐ Project Details
- Primary Language: Python
- Languages Used: Python
- License: None
- Created: March 27, 2026
- Last Updated: March 27, 2026
๐ About
paperclip-cli
A full-featured Python CLI for Paperclip โ the open-source AI agent orchestration platform.
Manage your AI companies, agents, goals, issues, board approvals, and plugins entirely from the terminal.
๐ Full Documentation
Detailed per-command docs with option tables, example outputs, and API gotchas:
https://aaron777collins.github.io/paperclip-cli/
Or browse locally in the docs/ folder:
company ยท agent ยท goal ยท issue ยท project ยท routine ยท approval ยท plugin ยท heartbeat ยท secret
Command Coverage at a Glance
| Resource | list |
create |
get |
update |
delete |
Extra |
|---|---|---|---|---|---|---|
| company | โ | โ | โ | โ | โ | โ |
| agent | โ | โ | โ | โ | โ | wakeup |
| goal | โ | โ | โ | โ | โ | โ |
| issue | โ | โ | โ | โ | โ | โ |
| project | โ | โ | โ | โ | โ | โ |
| routine | โ | โ | โ | โ | archiveยน |
trigger-add, triggers, runs, run |
| approval | โ | โ | โ | โ | โ | approve, reject |
| plugin | โ | โ | โ | โ | โ | examples, install |
| heartbeat | โ | โ | โ | โ | โ | โ |
| secret | โ | โ | โ | โ | โ | โ |
ยน The Paperclip API has no hard-delete for routines.
routine archivesets status=archivedto stop all future runs. To fully remove, delete the parent project.
Every command supports --json for machine-readable output and -h/--help for usage info.
Table of Contents
- Installation
- Quick Start
- Configuration
- Commands Reference
- status
- company
- agent
- goal
- issue
- project
- routine
- approval
- plugin
- heartbeat
- secret
- JSON Output
- Environment Variables
- Tips & Patterns
Installation
From source (recommended while in development):
Via pip (when published):
Quick Start
# 1. Point the CLI at your Paperclip server (one-time setup)
paperclip-cli configure --url http://localhost:3100
# 2. Verify it can reach the server
paperclip-cli status
# 3. Create your first company
paperclip-cli company create --name "AcmeCorp" --description "My first AI company"
# 4. Grab the company ID
paperclip-cli company list
# 5. Hire a CEO (auto-approved, can create other agents)
paperclip-cli agent create --company <company-id> --name "CEO" --role ceo --title "Chief Executive Officer"
# 6. Hire a general agent
paperclip-cli agent create --company <company-id> --name "Engineer" --role general --title "Backend Engineer"
# 7. Approve the hire from the board queue
paperclip-cli approval list --company <company-id>
paperclip-cli approval approve <approval-id>
# 8. Create a goal and track work
paperclip-cli goal create --company <company-id> --title "Launch v1.0"
paperclip-cli issue create --company <company-id> --title "Build auth system"
Configuration
Configure the CLI once with your server URL (and optionally an auth token):
paperclip-cli configure --url http://localhost:3100
# With auth token (for authenticated/private mode servers):
paperclip-cli configure --url https://paperclip.example.com --token my-secret-token
Config is saved to ~/.config/paperclip-cli/config.json.
You can also use environment variables (override the saved config):
Or pass flags directly on any command:
Commands Reference
All commands support -h / --help. Running a command group with no subcommand also shows help:
status
Check that the Paperclip server is reachable and healthy.
Example output:
company
Manage your AI companies. Each company is an isolated org with its own agents, goals, issues, and budget.
company list
List all companies on the server.
company create
Create a new company.
paperclip-cli company create --name "AcmeCorp"
paperclip-cli company create --name "AcmeCorp" --description "AI-powered operations platform"
paperclip-cli company create --name "AcmeCorp" --description "..." --mission "Automate business ops"
| Option | Required | Description |
|---|---|---|
--name |
โ | Company name |
--description |
No | Short description |
--mission |
No | Mission statement |
--json |
No | Output raw JSON |
company get
Get full details for one company.
paperclip-cli company get <company-id>
paperclip-cli company get 6ef9c662-776f-43e0-8e7e-55f36c309edb --json
company update
Update a company's name, description, or mission.
paperclip-cli company update <company-id> --name "New Name"
paperclip-cli company update <company-id> --description "Updated description" --mission "New mission"
| Option | Description |
|---|---|
--name |
New company name |
--description |
New description |
--mission |
New mission statement |
company delete
Permanently delete a company and all its data.
paperclip-cli company delete <company-id> --yes
# Without --yes, you'll be prompted to confirm
paperclip-cli company delete <company-id>
โ ๏ธ This is irreversible. All agents, goals, and issues will be deleted.
agent
Manage agents (the AI workers) inside a company.
Roles:
- ceo โ Auto-approved. Has canCreateAgents: true. Sits at the top of the org chart.
- general โ Regular agent. Requires board approval before becoming active.
agent list
List all agents in a company.
paperclip-cli agent list --company <company-id>
paperclip-cli agent list --company <company-id> --json
Shows: ID, name, role, status (idle / pending_approval / active / paused).
agent create
Hire a new agent. CEOs are auto-approved; general agents go to the board approval queue.
# Hire a CEO
paperclip-cli agent create --company <company-id> --name "CEO" --role ceo --title "Chief Executive Officer"
# Hire a general agent
paperclip-cli agent create --company <company-id> --name "Engineer" --role general --title "Senior Backend Engineer"
| Option | Required | Default | Description |
|---|---|---|---|
--company |
โ | โ | Company ID |
--name |
โ | โ | Agent name |
--role |
No | general |
general or ceo |
--title |
No | โ | Job title (display only) |
agent get
Get full details for one agent.
Shows all fields: status, role, permissions, budget, adapter config, last heartbeat.
agent update
Update an agent's name, title, role, budget, or adapter config.
paperclip-cli agent update <agent-id> --title "Lead Engineer"
paperclip-cli agent update <agent-id> --name "CTO" --role ceo
paperclip-cli agent update <agent-id> --budget 5000 # $50.00/month in cents
| Option | Description |
|---|---|
--name |
New name |
--title |
New job title |
--role |
New role (general or ceo) |
--reports-to |
Agent ID this agent reports to |
--budget |
Monthly budget cap in cents (e.g. 5000 = $50/month) |
--adapter-type |
Adapter type (default: process) |
agent delete
Remove an agent from a company.
agent wakeup
Send a wake-up signal to an idle agent so it checks its inbox and processes pending tasks.
Note: Only works when the agent's status is
idle. Active or paused agents will return an error.
goal
Goals are high-level objectives for a company. Issues/tasks are attached to goals.
goal list
List all goals for a company.
paperclip-cli goal list --company <company-id>
paperclip-cli goal list --company <company-id> --json
goal create
Create a new goal.
paperclip-cli goal create --company <company-id> --title "Reach $10k MRR"
paperclip-cli goal create --company <company-id> --title "Reach $10k MRR" --description "By end of Q2 2026"
| Option | Required | Description |
|---|---|---|
--company |
โ | Company ID |
--title |
โ | Goal title |
--description |
No | Longer description |
goal update
Update a goal's title, description, or status.
paperclip-cli goal update <goal-id> --title "Reach $20k MRR"
paperclip-cli goal update <goal-id> --status completed
goal delete
Delete a goal.
issue
Issues are tasks/tickets that agents work on. They can be attached to a goal.
issue list
List all issues for a company.
paperclip-cli issue list --company <company-id>
paperclip-cli issue list --company <company-id> --status backlog
paperclip-cli issue list --company <company-id> --status in_progress --json
| Option | Description |
|---|---|
--company |
โ Company ID |
--status |
Filter by status: backlog, todo, in_progress, done, cancelled |
issue create
Create a new issue/task, optionally linked to a goal.
paperclip-cli issue create --company <company-id> --title "Implement login flow"
paperclip-cli issue create --company <company-id> --title "Fix signup bug" --description "Users can't sign up with Gmail" --goal <goal-id>
| Option | Required | Description |
|---|---|---|
--company |
โ | Company ID |
--title |
โ | Issue title |
--description |
No | Detailed description |
--goal |
No | Goal ID to attach this issue to |
issue update
Update an issue's title, description, status, or assignee.
paperclip-cli issue update <issue-id> --status done
paperclip-cli issue update <issue-id> --title "Fix signup bug (Gmail)" --status done
# in_progress requires an assignee:
paperclip-cli issue update <issue-id> --status in_progress --assignee <agent-id>
| Option | Description |
|---|---|
--title |
New title |
--description |
New description |
--status |
New status: backlog, todo, in_progress, done, cancelled |
--assignee |
Agent ID to assign the issue to (โ ๏ธ required when setting in_progress) |
Note: Setting
--status in_progressrequires--assignee <agent-id>โ the API enforces that in-progress issues must have an assignee.
issue delete
Delete an issue.
approval
The board approval queue. When a general agent is hired (or other governed actions occur), they appear here as pending approvals. You must approve them before the agent becomes active.
approval list
List all pending (and past) approvals for a company.
paperclip-cli approval list --company <company-id>
paperclip-cli approval list --company <company-id> --json
Shows: ID, type (e.g. hire_agent), status (pending / approved / rejected), requested by.
approval approve
Approve a pending action (e.g. hire an agent).
Once approved, the agent's status changes from pending_approval to idle and they become active.
approval reject
Reject a pending action.
plugin
Manage Paperclip plugins that extend agent capabilities.
plugin list
List currently installed plugins.
plugin examples
Browse available example plugins from the Paperclip registry.
plugin install
Install a plugin by name or URL.
JSON Output
Every read command supports --json for clean machine-readable output โ great for scripting, piping to jq, or agent automation:
# Get a company ID by name
paperclip-cli company list --json | jq -r '.[] | select(.name=="AcmeCorp") | .id'
# List all pending approvals across all companies
paperclip-cli company list --json | jq -r '.[].id' | while read id; do
echo "=== $id ==="
paperclip-cli approval list --company $id --json | jq '.[] | select(.status=="pending")'
done
# Check all agent statuses
paperclip-cli agent list --company <id> --json | jq '.[] | {name, status, role}'
Environment Variables
| Variable | Description |
|---|---|
PAPERCLIP_URL |
Server URL (overrides saved config) |
PAPERCLIP_TOKEN |
Auth token (overrides saved config) |
Tips & Patterns
Get IDs quickly
Use --json + jq to grab IDs without copying from tables:
# Company ID
COMPANY=$(paperclip-cli company list --json | jq -r '.[] | select(.name=="AcmeCorp") | .id')
# Agent ID
AGENT=$(paperclip-cli agent list --company "$COMPANY" --json | jq -r '.[] | select(.name=="CEO") | .id')
Approve all pending hires at once
COMPANY=<company-id>
paperclip-cli approval list --company $COMPANY --json \
| jq -r '.[] | select(.status=="pending") | .id' \
| while read id; do paperclip-cli approval approve $id; done
Bootstrap a new company end-to-end
# Create company
CO=$(paperclip-cli company create --name "NewCo" --description "New AI company" --json | jq -r '.id')
# Hire CEO (auto-approved)
paperclip-cli agent create --company $CO --name "CEO" --role ceo --title "Chief Executive Officer"
# Hire some agents
paperclip-cli agent create --company $CO --name "Engineer" --role general --title "Backend Engineer"
paperclip-cli agent create --company $CO --name "Designer" --role general --title "Product Designer"
# Approve all pending hires
paperclip-cli approval list --company $CO --json \
| jq -r '.[] | select(.status=="pending") | .id' \
| while read id; do paperclip-cli approval approve $id; done
# Set a goal
paperclip-cli goal create --company $CO --title "Ship MVP" --description "First working product"
echo "Done! Company $CO is running."
License
MIT