# It's a Plan – issue tracker where people and AI agents ship together

> Source: <https://itsaplan.dev>
> Published: 2026-10-05 22:05:17+00:00

[Open sourceSee how it compares to Linear](https://itsaplan.dev/linear-alternative)

# 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.

AGPL-3.0 · No per-seat fees · Bring your own model keys

Bulk-edit issues from the board

Created Jul 11 · Updated Jul 11

Saved filters per board view

Created Jul 11 · Updated Jul 11

Issue templates

Created Jul 11 · Updated Jul 11

Cycles and sprints

Created Jul 11 · Updated Jul 11

Import a backlog from CSV

Created Jul 10 · Updated Jul 10

Let agents pick up delegated issues

Created Jul 11 · Updated Jul 14

Collections for saved views

Created Jul 11 · Updated Jul 14

MV
Live board refresh on rev change

Created Jul 11 · Updated Jul 14

Inbox digest for mentions

Created Jul 11 · Updated Jul 14

LP
Notes canvas autosave

Created Jul 12 · Updated Jul 14

Schedule agent runs by cron

Created Jul 12 · Updated Jul 14

Custom fields per issue type

Created Jul 11 · Updated Jul 12

SI
Per-project role & permission matrix

Created Jul 11 · Updated Jul 12

DO
Signed webhooks with retries

Created Jul 11 · Updated Jul 12

Scoped API tokens

Created Jul 11 · Updated Jul 12

Built on tools you already trust

### Keep control of your stack

Run it on your own server, database, and model. Your data stays with you. No per-seat fees.

### Agents that work like teammates

Give each agent a model, skills, and tools. Then assign it issues, just like a person.

### 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
Add backoff on webhook rate-limit

Bulk-edit issues from the board

Issue templates per project

Let agents pick up delegated issues

Collections for saved views

Live board refresh on rev change

Custom fields per issue type

Per-project role & permission matrix

Signed webhooks with retries

Let’s try this on the importer. @Triage Bot can you take a first pass?

Reviewed the importer. I’ll add backoff on webhook retries and open a linked issue for the rate-limit case.

@Triage Bot take it and move to In Progress

## 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.

Filter on any field

Stack conditions on state, priority, assignee, labels, or dates to narrow the list.

Save it as a view

Keep the filters, layout, and columns you set, then reuse them with one click.

Shape every layout

Group, order, and pick columns per view. Collapse or hide any column you skip.

## 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.

### 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.

Threads manager

@threads-manager

[Agent runtimeMastra](https://mastra.ai)

Threads manager

@threads-manager·Online

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

### External agent

Some work needs your repository checked out and your own tools installed. An external agent gets a runner instead of a model.

- 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.

Frontend Developer

@frontend-developer·Online

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

``` bash
$ 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
$
```

## 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
### 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 AM UTC | Jul 17, 2026, 9:00 AM UTC | Succeeded Jul 16, 2026, 9:00 AM UTC |  | 
| Weekly roadmap check | Planner | Every Monday at 9:00 AM UTC | Jul 20, 2026, 9:00 AM UTC | Succeeded Jul 13, 2026, 9:00 AM UTC |  | 
| Release notes draft | Writer | Every Friday at 4:00 PM UTC | Jul 17, 2026, 4:00 PM UTC | No runs yet |  | 

Choose an agent, describe the task, and set when it should run.

Name

Agent

Task

The agent receives this task on every run.

Schedule (UTC)

## 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.

- Issues grouped under one goal
- Progress you never update by hand Completion follows the issues underneath, so the initiative is current the moment a task moves.
- An owner, a start, a target date

### Public roadmap

Give customers a clear view of planned work and recent releases.

Progress

- Backlog6
- Todo8
- In progress5
- Done18

Timeline

On track
- Target
- Jul 31, 2026
- Remaining
- 16 days

Active work

3
- PLAN-124Publish the public roadmapMV
- PLAN-128Add initiative health updatesSI
- PLAN-131Connect roadmap filtersDO

## 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.

- Widgets you place yourself
- Throughput, cycle time, breakdowns Split issues by state, assignee, label, or type, and read created against closed week by week.
- Agent runs, next to the rest

48

12

31

2.4d

### Issues by state

by state
- Backlog34
- Todo14
- In Progress12
- Done31
- Canceled5

### Throughput

last 12 weeks
### Activity

by day
## Roles that fit how your team works

Every project sets its own roles. The same person can run one and only read another.

- Admin, contributor, reviewer, or your own
- A full permission matrix Every resource against read, create, edit, and delete. A role gets the cells you tick and nothing else.
- Owners bypass every check

Contributor

PLANrole permissions

| 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
### 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

Create a personal key on the API keys page, then replace <API_KEY> in the snippet.

Endpoint

```
https://api.itsaplan.dev/mcp
```

Run this in your terminal.

```
claude mcp add --transport http plan https://api.itsaplan.dev/mcp \
  --header "Authorization: Bearer <API_KEY>"
bash
$ 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.

[8.0Deploy](https://github.com/croffasia/itsaplan/blob/main/docs/self-hosting.md)

## Everything a tracker needs, nothing it doesn't

Shape the work and read where it stands.

- Configurable workflow
- Views & filters
- Cycles
- Subtasks & links
- Bulk edit
- Initiatives
- Configurable dashboards

Threads, files, and notes on the issues.

- Comments & @mentions
- Attachments
- Notes boards
- Public links
- Notification inbox

Repeat work that runs without you.

- Quick actions
- Auto-archive
- Agent schedules
- Agent tools & skills
- GitHub skill import

Everything the tracker talks to.

- REST API & webhooks
- MCP server
- Pull request links
- Live refresh
- Five languages

## Say what you actually think

We read every review. The complaints are the useful part: they pick what gets fixed in the next release.

Takes a minute · Product Hunt account needed

## Start planning

on your own terms

Self-host it today and have your team tracking work by tonight.
