AI-native. Free. Lightweight. Open-source.
The fully customizable alternative to Jira, Trello, ClickUp, and Monday.
Getting Started · MCP Server · Claude Code Skill · Architecture · Contributing · Roadmap
Paca is a self-hosted project management platform where AI agents and humans collaborate as equal teammates inside a Scrum team — not as chatbots bolted on the side.
Jira gives you a backlog. ClickUp gives you automations. Monday gives you dashboards. Paca gives your AI agents a seat at the table. They join sprint planning, pick up tasks from the board, write BDD specs, and adapt alongside humans in real time.
Everything about Paca — its workflow, its data model, its UI — is configurable and extendable via plugins.
| Jira / Trello / ClickUp / Monday | Paca | |
|---|---|---|
| AI integration | Chatbot add-ons, peripheral automation | AI agents as first-class Scrum teammates |
| Collaboration model | Human-only by default | Human + AI, side by side on the same board |
| Hosting | Vendor cloud (your data, their servers) | Self-hosted, you own everything |
| Cost | $8–$20+ per seat/month | Free forever |
| Customization | Limited; locked behind enterprise tiers | Fully open: configuration + plugins |
| Weight | Bloated feature sprawl | Lightweight core; extend only what you need |
| Source | Closed / proprietary | 100% open-source (Apache 2.0) |
The central insight behind Paca is that AI agents should participate in the Scrum process, not just generate output in isolation.
In Paca, AI agents:
This is not automation. It is genuine collaboration — rooted in the Cynefin / Stacey framework's recognition that complex domains require teams, not pipelines.

Paca ships as a small, focused core. Everything else is optional.
Configuration-driven: workflows, statuses, field definitions, board layouts, sprint rules, and agent behavior are all driven by project-level configuration files. No code needed to adapt Paca to your team's process.
Plugin system: extend or replace any part of Paca via plugins. Plugins are compiled to WebAssembly (WASM) for the backend (write in Go, Rust, AssemblyScript — anything with a WASM target) and standard module bundles for the frontend. Plugins run in a sandboxed environment with a capability-based permission model; they declare exactly what host functions they need, and nothing more.
plugins/
├── backend/ # WASM modules — add custom routes, logic, data models
└── frontend/ # UI modules — add custom pages, board views, widgets
Browse and install community plugins directly from the Plugin Marketplace inside the Paca UI — no command line required. Go to Settings → Plugins → Marketplace, find a plugin, and click Install.

For local development or custom plugins, you can also install from the filesystem:
./scripts/install-local-plugin.sh ./my-plugin --api-key <your-api-key>
Paca structures team collaboration around four phases that mirror both Scrum and the scientific method:
Plan → Act → Check → Adapt
↑ |
└─────────────────────────────┘
| Phase | What happens |
|---|---|
| Plan | POs, BAs, and AI agents collaboratively refine the backlog. BDD scenarios and SDD designs are written together. |
| Act | Sprint is live. Humans and AI agents pull tasks from the board, execute, and post updates. |
| Check | QA agents run automated verification. Humans review AI output. The board reflects reality. |
| Adapt | Data from the sprint informs the next cycle. The team — human and AI — retrospects together. |


/paca slash command for Claude Code; manage tasks, docs, and sprints in plain English without leaving your editorRuns on any Linux server with Docker. No repository clone required.
curl -fsSL https://github.com/Paca-AI/paca/releases/latest/download/install.sh | bash
The script walks you through configuration interactively and starts the full stack. Open http://your-server-ip when it finishes.

1. Create a directory and download the compose file
mkdir paca && cd paca
curl -fsSL https://github.com/Paca-AI/paca/releases/latest/download/docker-compose.yml -o docker-compose.yml
mkdir -p caddy
curl -fsSL https://github.com/Paca-AI/paca/releases/latest/download/Caddyfile -o caddy/Caddyfile
2. Download the environment template
curl -fsSL https://github.com/Paca-AI/paca/releases/latest/download/.env.production.example -o .env
3. Generate secure passwords and secrets
POSTGRES_PASSWORD=$(openssl rand -hex 32)
ADMIN_PASSWORD=$(openssl rand -hex 16)
JWT_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
Optional: Generate API keys if you'll use the AI agent or external integrations:
AGENT_API_KEY=$(openssl rand -hex 32)
INTERNAL_API_KEY=$(openssl rand -hex 32)
Optional: Generate MinIO credentials or use your own:
STORAGE_ACCESS_KEY_ID=$(openssl rand -hex 16)
STORAGE_SECRET_ACCESS_KEY=$(openssl rand -hex 32)
4. Update .env with your values
Edit the .env file and replace the placeholder values with the ones you generated above. Below are the required fields:
PUBLIC_URL=http://localhost
POSTGRES_PASSWORD=<use the value from step 3>
ADMIN_USERNAME=admin
ADMIN_PASSWORD=<use the value from step 3>
JWT_SECRET=<use the value from step 3>
ENCRYPTION_KEY=<use the value from step 3>
STORAGE_ACCESS_KEY_ID=<use the value from step 3 or your own>
STORAGE_SECRET_ACCESS_KEY=<use the value from step 3 or your own>
5. Start the stack
docker compose --env-file .env up -d
⚠️ Important: Save your generated passwords and secrets securely. You'll need
ADMIN_USERNAMEandADMIN_PASSWORDto log in.
Login: Open http://localhost and use the admin credentials you set above.
Customizing the stack: scale down services you don't need.
```bash
External PostgreSQL (supply DATABASE_URL in .env)
docker compose --env-file .env up -d --scale postgres=0
AWS S3 instead of MinIO (set STORAGE_PROVIDER=s3 in .env)
docker compose --env-file .env up -d --scale minio=0
Without the AI agent (reduces resource usage)
docker compose --env-file .env up -d --scale ai-agent=0 ```
From the directory where your docker-compose.yml and .env live, run the upgrade
script published with each release — it refreshes docker-compose.yml and the
Caddyfile (with backups) and restarts the stack:
curl -fsSL https://github.com/Paca-AI/paca/releases/latest/download/upgrade.sh -o upgrade.sh
bash upgrade.sh
Database migrations run automatically on API startup. See deploy/README.md for pinning a specific version or passing through --scale flags.
# Clone the repository
git clone https://github.com/Paca-AI/paca.git && cd paca
# Start infrastructure dependencies (PostgreSQL + Valkey)
docker compose -f deploy/docker-compose.dev.yml up -d postgres valkey
# Or start the full dev stack in containers
docker compose -f deploy/docker-compose.dev.yml up -d
See docs/guides/local-development.md for running services on the host for active development.
Paca ships an MCP (Model Context Protocol) server that gives any compatible AI agent direct, structured access to your workspace — projects, tasks, sprints, documents, members, and more. No scraping, no custom APIs to wire up.
The server is published as @paca-ai/paca-mcp on npm. You run it with npx; your MCP client handles the rest.
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows: %APPDATA%\Claude\claude_desktop_config.json
Add the paca entry:
{
"mcpServers": {
"paca": {
"command": "npx",
"args": ["-y", "@paca-ai/paca-mcp"],
"env": {
"PACA_API_KEY": "your-api-key-here",
"PACA_API_URL": "http://localhost:8080"
}
}
}
}
Any client that speaks MCP works. Typical configuration:
{
"name": "paca",
"command": "npx",
"args": ["-y", "@paca-ai/paca-mcp"],
"env": {
"PACA_API_KEY": "your-api-key-here",
"PACA_API_URL": "http://your-paca-instance:8080"
}
}
| Variable | Required | Default | Description |
|---|---|---|---|
PACA_API_KEY |
Yes | — | API key from your Paca instance (Settings → API Keys) |
PACA_API_URL |
No | http://localhost:8080 |
URL of your Paca API |
The server exposes tools across these categories:
| Category | Tools |
|---|---|
| Projects | list_projects, get_project, create_project, update_project, delete_project |
| Tasks | list_tasks, get_task, create_task, update_task, delete_task, + more |
| Sprints | list_sprints, create_sprint, update_sprint, complete_sprint, + more |
| Documents | list_documents, get_document, create_document, update_document, delete_document |
| Members & Roles | list_project_members, add_project_member, list_project_roles, + more |
| Task Types & Statuses | list_task_types, create_task_type, list_task_statuses, + more |
| Views & Custom Fields | `list_view |