The issue tracker where people and AI agents ship together.
Open sourceSee how it compares to Linear→
The issue tracker where people
and AI agents ship together.It's a Plan is the open source alternative to Linear, Jira, and Plane. Project management for any team, on your own server, with AI agents as teammates.
Self-host →Deploy on Railway →
AGPL-3.0 · No per-seat fees · Bring your own model keys
itsaplan.dev/board
AllNew view
Display
Backlog10
PLAN-142
Bulk-edit issues from the board
enhancement
3d
Created Jul 11 · Updated Jul 11
PLAN-139
Saved filters per board view
3d
Created Jul 11 · Updated Jul 11
PLAN-137
Issue templates
3d
Created Jul 11 · Updated Jul 11
PLAN-135
Cycles and sprints
3d
Created Jul 11 · Updated Jul 11
PLAN-131
Import a backlog from CSV
import
2d
Created Jul 10 · Updated Jul 10
Todo2
In Progress6
PLAN-124
Let agents pick up delegated issues
agents
47m
Created Jul 11 · Updated Jul 14
PLAN-122
Collections for saved views
47m
Created Jul 11 · Updated Jul 14
MV
PLAN-120
Live board refresh on rev change
47m
Created Jul 11 · Updated Jul 14
PLAN-119
Inbox digest for mentions
1d
Created Jul 11 · Updated Jul 14
LP
PLAN-117
Notes canvas autosave
notes
2h
Created Jul 12 · Updated Jul 14
PLAN-116
Schedule agent runs by cron
47m
Created Jul 12 · Updated Jul 14
Done13
PLAN-118
Custom fields per issue type
3d
Created Jul 11 · Updated Jul 12
SI
PLAN-115
Per-project role & permission matrix
3d
Created Jul 11 · Updated Jul 12
DO
PLAN-112
Signed webhooks with retries
1d
Created Jul 11 · Updated Jul 12
PLAN-110
Scoped API tokens
3d
Created Jul 11 · Updated Jul 12
Hidden columns
Canceled1
Built on tools you already trust
BunElysiaNext.jsDrizzlePostgreSQLMinIODocker
FIG 0.1
Keep control of your stack
Run it on your own server, database, and model. Your data stays with you. No per-seat fees.
FIG 0.2
Agents that work like teammates
Give each agent a model, skills, and tools. Then assign it issues, just like a person.
FIG 0.3
Automate every action
Drive the tracker from your own scripts and agents over the REST API or MCP.
Work the same board as your agents
Assign an issue to an agent, or mention it in a comment. Either way it gets to work: replies in the thread, opens linked issues, and moves cards on the board you both share. You set the direction and keep control. The agent does the rest.
1.0Collaborate
itsaplan.dev/board
Todo6
PLAN-131
Add backoff on webhook rate-limit
agentsjust now
PLAN-128
Bulk-edit issues from the board
PLAN-119
Issue templates per project
In Progress3
PLAN-124
Let agents pick up delegated issues
agents
PLAN-122
Collections for saved views
MV
PLAN-120
Live board refresh on rev change
Done13
PLAN-118
Custom fields per issue type
SI
PLAN-115
Per-project role & permission matrix
DO
PLAN-112
Signed webhooks with retries
PLAN-124·Delegated to Triage Bot
MV
Mira Vos2h ago
Let’s try this on the importer. @Triage Bot can you take a first pass?
Triage Botagent
Reviewed the importer. I’ll add backoff on webhook retries and open a linked issue for the rate-limit case.
Running · created PLAN-131
@Triage Bot take it and move to In Progress
⌘⏎ to send
Views
See the work the way that fits
Board, table, timeline, or calendar. Filter on any field, shape the layout, and save it as a view your team reuses. Same issues, whatever the work needs.
FiltersBoardTableTimelineCalendar
AllRoadmapSoonNew viewPLAN/Filters
SoonCancelSave
StateisTodo, In ProgressPriorityisUrgent, HighDelegateisTriage Bot
Backlog3
PLAN-142
Bulk-edit issues from the board
board
Due Jul 24
MV
PLAN-139
Saved filters per view
views
Due Jul 28
SI
PLAN-137
Timeline scale controls
views
No due date
DO
Todo2
In Progress2
PLAN-124
Let agents pick up delegated issues
agents
Due Jul 21
PLAN-122
Group issues by swimlane
board
No due date
MV
Done2
PLAN-118
Custom fields per issue type
fields
Due Jul 15
SI
PLAN-115
Role & permission matrix
access
No due date
DO
Hidden columns
Canceled1
Add filter
State
State type
Assignee
Delegate
Priority
Type
Labels
Due date
Start date
Created
Updated
01
Filter on any field
Stack conditions on state, priority, assignee, labels, or dates to narrow the list.
02
Save it as a view
Keep the filters, layout, and columns you set, then reuse them with one click.
03
Shape every layout
Group, order, and pick columns per view. Collapse or hide any column you skip.
2.0 Delegate
Agents you build with skills and tools
Set up an AI agent like a new hire, not a bot. Give it a role, the skills it needs, and the tools for the job. What is left to choose is where it runs.
In the app
Hosted agent
Pick a model, write the instructions, tick what it may do. There is nothing to install and no code to write.
- Any provider you have a key for Add the key once, then pick the model for each agent.
- Skills it loads when it needs them Write one, upload a file, or import a set from GitHub.
- Tools inside and outside the project Tick what it may do with issues, and which outside tools it may call.
- Your machine or your VPS One command starts the runner where the code already is.
- On the coding tools you already use Your CLI, your config, your logins, or a command you write yourself.
- Every chat has a session id Copy it and continue the same chat in your own terminal.
Threads manager
@threads-manager
ModelProvider, model, and system prompt
Credential
OpenAI
Model
gpt-5.4-mini
Instructions
You manage our Threads account. Draft posts in the team voice and open an issue for anything that needs review.
SkillsReusable instructions the agent can load3
Threads manager
@threads-manager·Online
gpt-5.4-mini
What went live on Threads this week?
Three posts. The Friday launch thread leads on replies. I can draft a follow-up.
Ran on your instance · threads\_search
On your machine
External agent
Some work needs your repository checked out and your own tools installed. An external agent gets a runner instead of a model.
Frontend Developer
@frontend-developer·Online
8f2c1d94-…
MKT-42: the importer drops rows past 10k. Take it in the repo.
Reproduced it in \~/work/my-repo. The batch loop stops at the first empty page. Fixing it now.
Running on your machine · claude
\~/work/my-repozsh
$ cat itsaplan-runner.json
{
"url": "https://plan.acme.dev",
"apiKey": "itp_JA…",
"agent": "claude",
"cwd": "~/work/my-repo"
}$ npx -y @itsaplan/runner
running claude, polling every 3000ms
MKT-42: started (delegation)
MKT-42: success
the same chat, in your own terminal
$ claude --resume 8f2c1d94-6b03-47ae-9f21
$claudecodexopencodeantigravitycopilotor your own command, with the task on stdin.
Set recurring work for your agents
Give an agent a recurring task and it runs on its own: hourly, daily, weekly, or a custom cron. Run it now, pause it, or check any result.
3.0Automate
itsaplan.dev/schedules
Schedules
Run recurring agent tasks automatically. Schedule times use UTC.
3 schedules
New schedule
| Task | Agent | Schedule | Next run | Last run | Actions | | -------------------- | ---------- | -------------------------- | ------------------------- | ---------------------------------- | ------- | | Daily task review | Triage bot | Every day at 9:00 AMUTC | Jul 17, 2026, 9:00 AM UTC | SucceededJul 16, 2026, 9:00 AM UTC | | | Weekly roadmap check | Planner | Every Monday at 9:00 AMUTC | Jul 20, 2026, 9:00 AM UTC | SucceededJul 13, 2026, 9:00 AM UTC | | | Release notes draft | Writer | Every Friday at 4:00 PMUTC | Jul 17, 2026, 4:00 PM UTC | No runs yet | |
IAP›New schedule
Choose an agent, describe the task, and set when it should run.
Name
Daily task review
Agent
Analyzer
Task
Review open tasks and update anything that needs attention.
The agent receives this task on every run.
Schedule (UTC)
Every day at 9:00 AM
Every 15 minutes\/15 \ \ \ \*
Every hour0 \ \ \ \
Every weekday at 9:00 AM0 9 \ \ 1-5
Every day at 9:00 AM0 9 \ \ \*
4.0 Plan
Give every major goal one clear view
One place per goal: how far the work has got, who owns it, and whether the target date still holds.
itsaplan.dev/initiatives/public-roadmap
Public roadmapActiveMV Mira Vos 49%
Public roadmap
Give customers a clear view of planned work and recent releases.
Jul 31
Progress
Timeline
On track
TargetJul 31, 2026
Remaining16 days
Time elapsed64%
Work done49%
Active work
3
5.0 Measure
See where the work actually stands
Every number is read from your issues as they stand now. Nothing to export, nothing to refresh by hand.
itsaplan.dev/dashboard
OverviewNew dashboardAdd widgetDiscardSave changes
Open
48
In progress
12
Done / wk
31
Cycle time
2.4d
96issues
CreatedClosed
1,284 events · 148 activeLessMore
6.0 Control
Roles that fit how your team works
Every project sets its own roles. The same person can run one and only read another.
itsaplan.dev/settings/roles
Contributor
PLANrole permissions
CancelSave role
| Resource | Read | Create | Edit | Delete | | --------------- | ---- | ------ | ---- | ------ | | Work items | | | | | | Work items | | | | | | Work item views | | | | | | AI | | | | | | AI agents | | | | | | Integrations | | | | | | Agent skills | | | | | | Agent tools | | | | | | Members | | | | | | Members | | | | | | Invites | | | | |
A REST API and MCP server, out of the box
Everything the UI does, the API does. Point Claude, Cursor, or your own client at /mcp and every endpoint becomes a tool it can call, with the access of the key it uses.
7.0Integrate
itsaplan.dev/settings/mcp
MCP Server
Connect AI agents to this project over the Model Context Protocol. An agent gets the access of the API key it uses.
MCP accessEnabled
Connect a client
Create a personal key on the API keys page, then replace <API\_KEY> in the snippet.
Endpoint
https://api.itsaplan.dev/mcpClaude CodeCursorVS CodeWindsurfClaude DesktopOther
Run this in your terminal.
claude mcp add --transport http plan https://api.itsaplan.dev/mcp \
--header "Authorization: Bearer <API_KEY>"\~/work/my-repoclaude code
$ claude mcp add --transport http plan \
https://api.itsaplan.dev/mcp --header "Bearer itp_JA…"
Added HTTP MCP server plan$ claude
PLAN-132 is in this cycle. Take it, then tell me
what is left.● plan - get_issue_by_number (MCP)
⎿ PLAN-132 · Rate-limit the importer · High
● plan - update_issue (MCP)
⎿ moved to In Progress, assigned to you
● plan - add_comment (MCP)
⎿ comment added to PLAN-132
● plan - list_issues (MCP)
⎿ 12 open · 3 in progress · 2 in review
● Took PLAN-132 and left a note on the batch loop.
Three issues are in progress, the rest wait in
the backlog.
>
One click, or your own server
Railway builds the whole stack from the template and generates every secret. On a server of your own, one compose command starts Postgres, MinIO and the four services.
docker composeyour server
$ git clone https://github.com/croffasia/itsaplan.git
$ cd itsaplan
$ cp .env.example .env # API_URL, APP_URL, secrets
$ docker compose up -d✔ postgres · minio · api · worker · bot · web
web running on APP_URL
Everything else
Everything a tracker needs, nothing it doesn't
Track07
Shape the work and read where it stands.
Collaborate05
Threads, files, and notes on the issues.
Automate05
Repeat work that runs without you.
Connect05
Everything the tracker talks to.
Live on Product Hunt
Say what you actually think
We read every review. The complaints are the useful part: they pick what gets fixed in the next release.
Leave a reviewSee the launch →
Takes a minute · Product Hunt account needed
Worth mentioning
Changelog
What shipped recently
1. v1.3.0Workspaces, Archive projectsOCT 4, 2026/Latest 2. v1.2.1Bug FixesSEP 26, 2026 3. v1.2.0Project keys are unique per team, Burnup widget, Issue activity feed, Team settings for agents and Git, MCP assistants can see…SEP 26, 2026 4. v1.1.0Import from Plane, Docs, Project switcher, Runner: Pi and Oh My PiSEP 23, 2026
Start planning
on your own termsSelf-host it today and have your team tracking work by tonight.
