Project management
that lives in your repo
git-native project management for humans and AI agents โ zero config, append-only audit log, token-efficient TOON output, 9 extension capabilities, fully extensible.
Up and running in 30 seconds
Four commands. That's all it takes to install pm-cli and start tracking your first task.
Six statuses, deterministic transitions
Every item follows the same lifecycle. Agents and humans share a predictable state machine with full audit trail.
start-task claims + moves to in_progress ยท pause-task releases + returns to open ยท close-task closes + releases claim
Everything you need, nothing you don't
Designed for the way modern teams โ and their AI agents โ actually work. 11 item types, 10 command families, 9 extension capabilities.
Git-native storage
Items live in .agents/pm/ right inside your repository. Review, diff, and merge project items just like code. No external database.
Agent-optimized TOON output
TOON format emits only changed fields โ sparse, token-efficient output that keeps LLM context windows lean while staying fully machine-readable.
TOON formatAppend-only JSONL history
Every mutation is recorded in a JSONL audit log with RFC6902 patches, content hashes, and full provenance from creation to close.
RFC6902 patches9 extension capabilities
commands, renderers, hooks, schema, importers, search, parser, preflight, services. Ship your own with the extension lifecycle manager.
extensibleZero-config start
One command โ pm init โ sets up everything with smart defaults. Start tracking work in under ten seconds.
Hybrid search
Keyword search always available. Add semantic or hybrid search with OpenAI-compatible or Ollama providers plus Qdrant or LanceDB vector stores.
semantic searchLinked tests & verification
Bind test commands to work items with assertion metadata. Run with pm test --run, track results in history, background test runs, sandbox-safe testing.
Time-aware planning
Built-in Events, Reminders, Milestones, and Meetings keep schedule metadata next to your work. Filter and inspect them through the current list, search, context, and item-detail commands.
events / remindersClaim / Release lifecycle
Claim items to prevent double-work. Use start-task, pause-task, and close-task aliases for safe state transitions.
Rich metadata model
Rich metadata for sprint, release, estimate, risk, confidence, acceptance criteria, definition of ready, blocked-by, severity, and more.
metadata-richBulk operations
Update many items at once with pm update-many.
Dry-run plans and rollback checkpoints keep broad changes reviewable.
Machine contracts
Machine-readable contracts via pm contracts --json. Custom item types via config and extensions.
11 built-in item types
Plus custom types via config and extensions. Each type has its own option policies โ required fields, disabled fields, and smart defaults.
Custom types via pm config or extensions โ define your own schemas, fields, and workflows.
95 commands, 10 logical families
From bootstrap to lifecycle, every command is designed for both humans and agents. Browse the full reference โ
Bootstrap
config, extension, health, init, install, package, packages, schema, upgrade
Triage
aggregate, context, ctx, get, list, list-all, list-blocked, list-canceled, list-closed, list-draft, list-in-progress, list-open, search
Lifecycle
append, claim, close, close-task, create, delete, pause-task, release, restore, start-task, update, update-many
Planning
plan
Logs
comments, learnings, notes
Links
deps, docs, files
Verification
gc, test, test-all, validate
History
activity, history, stats
Machines
contracts
Other
close-many, copy, event, extension activate, extension adopt, extension adopt-all, extension catalog, extension deactivate, extension doctor, extension explore, extension init, extension install, extension manage, extension reload, extension uninstall, focus, history-compact, history-redact, history-repair, meet, package activate, package adopt, package adopt-all, package catalog, package deactivate, package doctor, package explore, package init, package install, package manage, package reload, package uninstall, packages activate, packages adopt, packages adopt-all, packages catalog, packages deactivate, packages doctor, packages explore, packages init, packages install, packages manage, packages reload, packages uninstall, remind, telemetry
See pm-cli in action
Click any tab to see a real workflow. Output animates line by line โ just like your terminal.
What is TOON?
The Token-Optimized Object Notation emits only changed fields โ a sparse, machine-readable format designed to keep LLM context windows lean.
Sparse, token-efficient output
Traditional JSON APIs return the full object on every read. TOON returns only the fields that changed โ dramatically reducing token usage when agents are working in tight loops.
Built for agents
- Progressive context โ lean agent snapshots without broad list scans
- Machine contracts โ JSON Schema for every command
- Append-only history โ RFC6902 patches for state replay
- Claim/Release โ prevent double-work across agents
- Background tests + sandbox mode
type: Feature
title: Add SSO
status: open
priority: 2
created: 2026-05-04T10:30:00Z
createdBy: agent
status: in_progress โ only changed field
updated: 2026-05-04T11:15:00Z
"op": "update",
"id": "pm-fea-7x9k2m",
"patch": [
{"op":"replace","path":"/status","value":"in_progress"}
],
"ts": "2026-05-04T11:15:00Z"
}
Built for every workflow
Whether you're a solo dev, a team lead, an AI agent, or an open-source maintainer โ pm-cli adapts to how you work.
Solo developer
Personal project tracking
Track todos, features, and bugs alongside your code. No overhead, no sync issues โ everything lives in git.
AI coding agent
Autonomous task execution
Agents use TOON output and JSON contracts for deterministic, token-efficient project management in tight loops.
Team sprint
Collaborative planning
Use the software-sprint preset for sprint-based workflows with claim/release, linked files, and structured reviews.
Open-source maintainer
Issue triage & releases
Import GitHub issues, triage with search and aggregation, track milestones, and manage releases โ all from the CLI.
What's new in v2026.6.17
Generated from the current pm CLI changelog. v2026.6.17 (2026-06-17) includes 10 tracked changes across Added, Other.
Added
- GH-216: default lifecycle transition suggestions (pm-y1z0)
- GH-217: scheduling type creation shortcuts (pm-76r5)
- Sentry PM-CLI-1R: 'cannot add command init as already have command init' โ top-level init double-registration throws raw Commander error (pm-zyez)
- GH-258: strict unknown-key rejection across all structured CSV/markdown link & metadata parsers (validation parity with test --add) (pm-0v9k)
+5 more in the changelog
v2026.6.17 ยท 2026-06-17Other
- Document schema/fields.json runtime custom field authoring in CONFIGURATION.md (pm-izx5)
Not another project management tool
pm-cli is fundamentally different from SaaS tools. Your data is yours, your workflow is in git, and agents are first-class citizens.
| pm-cli | Jira | Linear | Notion | |
|---|---|---|---|---|
| Lives in git repo | โ | โ | โ | โ |
| Agent-optimized output (TOON) | โ | โ | โ | โ |
| Offline-first | โ | โ | โ | โ |
| Append-only audit log (RFC6902) | โ | Partial | Partial | โ |
| Zero config | โ | โ | โ | โ |
| Free & open source | โ | โ | โ | โ |
| CI/CD integration | โ | API | API | API |
| Extensible plugins (9 cap types) | โ | Marketplace | โ | โ |
| Linked test execution | โ | โ | โ | โ |
| Calendar & scheduling | โ | โ | Partial | โ |
| Semantic / hybrid search | โ | โ | โ | โ |
| Machine-readable contracts | โ | โ | โ | โ |
| Bulk operations with rollback | โ | โ | โ | โ |
| Token-efficient output format | โ | โ | โ | โ |
Pre-configured PM workspaces
Drop a preset into any initialized project for the right settings, templates, and governance rules.
Bug Triage
strictA pm-cli workspace preset for incident response and bug triage teams. Maximum governance enforcement โ every item must be owned, fully described, and validated before closing. Designed for teams where
bash presets/bug-triage/setup.sh
Indie Developer
minimalA pm-cli workspace preset for solo indie developers and freelancers. Minimal process, minimal overhead. Capture tasks and ideas quickly without filling out forms.
bash presets/indie-dev/setup.sh
Open Source
defaultA pm-cli workspace preset for open source project maintainers. Prioritizes low friction for community contributions โ no ownership enforcement, community-friendly templates, and core metadata so maint
bash presets/open-source/setup.sh
Software Sprint
defaultA pm-cli workspace preset for software engineering teams running two-week sprints. Designed for teams that want structured governance, sprint tracking, and clear item hierarchies without heavyweight p
bash presets/software-sprint/setup.sh
Startup Roadmap
defaultA pm-cli workspace preset for startups building a product roadmap with visibility to investors and stakeholders. Full metadata captures business value, outcomes, and strategic context alongside the en
bash presets/startup-roadmap/setup.sh
Real-world workflow walkthroughs
Step-by-step guides for common team setups โ copy the workflow scripts and adapt them.
Agent Ci Workflow
Autonomous agent workflow with CI integration
Ai Sprint Planner
Score backlog items and auto-assign a sprint with TypeScript
Bug Triage
From incident intake to hotfix delivery
Code Health Reporter
Aggregate pm health, validate, and duplicate-scan signals into one health score
Gh Issues Importer
Extension example: import GitHub Issues into pm
Github Sync Workflow
Keep GitHub Issues and pm items in sync, both directions
Open Source Project
Issue triage with milestone-based releases
Release Manager
Calculate release readiness and generate a Go/No-Go decision
Solo Dev Workflow
Personal SaaS from planning to daily dev loops
Sprint Velocity Tracker
Measure velocity across sprints and project next-sprint capacity
Team Sprint
3-person team running two-week sprints
Team Standup Reporter
Generate Yesterday / Today / Blockers reports from pm activity
Ts Sdk Starter
TypeScript extension covering 8 SDK capabilities
Ready-to-install pm packages
26 official and community packages: the web app, graph sync, importers, renderers, integrations, scaffolds, and preconfigured workspace presets.
pm-beads
official
Beads JSONL importer extension for pm-cli
pm-brief
official
Token-budgeted agent briefs and next-work plans for pm workspaces
pm-calendar
official
Show agenda, day, week, and month views for deadlines, reminders, and scheduled events.
pm-changelog
official
Generate CHANGELOG.md and release notes from completed pm items for local releases, GitHub Actions, runners, and scripts. Can run as a standalone CLI/API package or as `pm changelog generate`.
Up and running in seconds
Install globally, initialize any repo, start tracking. That's it. Works with any language, any stack, any team size.