h-mbl/itsaplan

Open-source, self-hosted alternative to Linear. Project management and issue tracking where teams and AI agents work side by side to plan and ship products.

★ 0Forks 0TypeScriptGitHub ↗Compare

Project website ↗

README

It's a Plan — open-source project management and issue tracking where people and AI agents ship together

Open-source project management and issue tracking, with AI agents built in

Self-hosted, open-source project management and issue tracking, and an alternative to Linear, Plane, and Jira. The difference: AI agents work here like any teammate. Hand them issues, or run the whole thing over the REST API, webhooks, and MCP.

If It's a Plan looks useful to you, star the repo ⭐ — it helps other people find it.

Website · Discussions · Contributing · Security

License: AGPL v3 CI Stars Last commit

Work items board with issues across Backlog, Todo, In Progress, Done, and Canceled

About

Most trackers bolt AI on as a chatbot. Here an agent is a real member of the team. It has a role, permissions, and an assignee slot, and it works the same board your people do.

It's a self-hosted, open alternative to Linear, Plane, and Jira. You run it on your own server and database.

  • Own your stack. Your server, your database. No per-seat fees, no lock-in.
  • Agents as teammates. Give an agent a model, a prompt, skills, and tools. Assign it issues like you would a person.
  • One board for both. People and agents share the same board, threads, and cards.
  • Automate anything. Drive it all through the REST API, MCP, and signed webhooks.

Heads-up: this is under active development. Expect breaking changes before the first stable release.

Features

Tracking

  • Configure issues per project: custom fields, labels, states, and issue types
  • Kanban, table, timeline, and calendar views, with configurable display fields and two-level grouping
  • Save any view as a reusable template
  • Configurable dashboards for project analytics: throughput, breakdown, pulse
  • Custom quick actions that run on an issue
  • Freeform notes boards: sticky notes on a canvas, with colors, checklists, and connections
  • Share a view or an issue by public link, read-only and without sign-in
  • Initiatives that group and track work across projects
  • Auto-archive, a notification inbox, role-based access control, and more

AI agents

  • Agents as project members with their own permissions and assigned issues
  • Internal agents run on the instance: configure the model, system prompt, tools, and reusable skills — built on the Mastra agent framework
  • External agents run wherever you want: drive the run queue through the API with your own implementation, or install @itsaplan/runner and let it hand every task to Claude Code, Codex, Gemini CLI, GitHub Copilot CLI, opencode, or any command that reads stdin — on your own machine, under your own account
  • Mention an agent in a comment to trigger a run
  • Scheduled agent runs
  • Built-in chat with per-agent conversation history

Platform

  • REST API with an OpenAPI reference and API keys
  • MCP server, so an external assistant can read and change issues through the same API
  • Outgoing webhooks: subscribe to events, signed payloads, and retries with a delivery log
  • Email and password, passkey, and Google sign-in
  • Notifications by email (SMTP or Resend) and Telegram, with per-member preferences
  • Instance administration: storage limits, mail transport, and instance-wide settings

Getting started

Deploy on Railway — recommended

Deploy on Railway

The whole stack in one click, no server to run. You supply two hostnames and Railway generates every secret. A domain of your own is required — see the guide for why, and for the steps after the deploy.

Run it on your own server

Requirements: Docker and a domain behind a TLS-terminating reverse proxy.

git clone https://github.com/croffasia/itsaplan.git
cd itsaplan
cp .env.example .env      # set API_URL, APP_URL, and the secrets
docker compose up -d --build

One command brings up the whole stack: Postgres, MinIO, api, worker, bot, and web. The first account registered becomes the instance admin.

Built with

Layer Technology
Runtime Bun + Turborepo
Backend Elysia
Frontend Next.js App Router, SSR
UI shadcn/ui + Tailwind v4
Auth better-auth
Database Drizzle + PostgreSQL
Storage S3-compatible object store (MinIO)
AI agents Mastra
apps/api        Elysia HTTP API, mounts better-auth at /api/auth/*
apps/web        Next.js app, server-side rendered
apps/worker     webhooks, notifications, agent runs
apps/bot        Telegram bot
packages/db     Drizzle client, schema, migrations
packages/auth   better-auth server instance
packages/crypto AES-256-GCM encryption for secrets at rest
packages/mailer SMTP and Resend transport

The web app never imports the packages directly, it talks to the API over HTTP.

More from us

Vibe Code Kit — a Claude Code plugin with 20+ expert skills that turn AI slop into senior-level code. It teaches your AI agent professional development and design practices, so you ship production-ready code on the first try. Works with Claude Code, Codex, Gemini CLI, and Cursor.

It's a Plan is built with it — the code you are reading is the proof.

Contributing

Issues and pull requests are welcome — bug fixes, features, docs, all of it. Start with CONTRIBUTING.md. It covers the setup, the conventions, and how a change gets merged. Be kind; we follow a Code of Conduct.

Not ready to contribute code? Star the repo and share it — it is the simplest way to help the project grow.

Security

Found a vulnerability? Report it privately through GitHub Security Advisories, not a public issue, so we can fix it first. Details in SECURITY.md.

License

Copyright © 2026 VIBE DEV SPACE LLC.

AGPL-3.0, except packages/runner, which is Apache-2.0.

Contributors

croffasiagithub-actions[bot]dependabot[bot]ahmedosamafth-mblyefu24324cmer

Issues