The issue tracker where people and AI agents ship together.

itsaplan.dev · 2026-10-05 · by Long Nguyen ·generic
Self-hosted, open-source issue tracker where people and AI agents work the same board. AGPL-3.0 alternative to Linear, Jira, and Plane, on your own server.

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.

    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

    Agent runtimeMastra

    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.

  • 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

    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.

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

  • Backlog6
  • Todo8
  • In progress5
  • Done18
  • Timeline

    On track

    TargetJul 31, 2026

    Remaining16 days

    Time elapsed64%

    Work done49%

    Active work

    3

  • PLAN-124Publish the public roadmapMV
  • PLAN-128Add initiative health updatesSI
  • PLAN-131Connect roadmap filtersDO
  • 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.

  • 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
  • itsaplan.dev/dashboard

    OverviewNew dashboardAdd widgetDiscardSave changes

    Open

    48

    In progress

    12

    Done / wk

    31

    Cycle time

    2.4d

    96issues

  • Backlog34
  • Todo14
  • In Progress12
  • Done31
  • Canceled5
  • 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.

  • 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
  • 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/mcp

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

    8.0Deploy→

  • RailwayRecommendedOne click. Every secret generated. You bring the domain.→
  • Docker ComposeAny server with Docker behind a TLS reverse proxy.→
  • CoolifyThe same stack on a Coolify instance.→
  • KubernetesA Helm chart for any cluster. Kubernetes 1.24 and Helm 3.10 or newer.→
  • 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.

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

    Threads, files, and notes on the issues.

  • Comments & @mentions
  • Attachments
  • Notes boards
  • Public links
  • Notification inbox
  • Automate05

    Repeat work that runs without you.

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

    Everything the tracker talks to.

  • REST API & webhooks
  • MCP server
  • Pull request links
  • Live refresh
  • Five languages
  • 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

    It's a Plan - Open-source Linear alternative: a tracker with AI agents | Product HuntIt's a Plan - Open-source Linear alternative: a tracker with AI agents | Product Hunt

    Worth mentioning

  • ▲What it replaced
  • ▲What you run it on
  • ▲What is still missing

Changelog

What shipped recently

View all releases

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 terms

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

Star on GitHubSelf-host →

itsaplan.dev · 2 images · 32 links

Comments (0)

No comments yet