Self-hosted · AI-native · AGPL · Never open-core

The issue tracker
with no upsell.

Radd is an issue tracker and wiki you run yourself. SSO and LDAP, custom fields, workflows, automations, SLAs, time tracking, dashboards and an MCP server for your AI agents: the features other trackers gate behind a tier are the point here, not the upsell. Free, forever, for everyone.

One container + PostgresAGPL-3.0, SDKs Apache-2.0~2,500 tests on every releaseJira importer with rollbackBuilt with AI agents, in the open
The board view of the RADD project on the live instance, dark theme

Every screenshot on this page is the live instance at project.radd-hq.com, where Radd tracks its own development: real issues, real timesheets, nothing staged.

The pledge

No catch. Really.

Most “open source” trackers are a funnel: the community edition is the demo, and the moment your team needs single sign-on, a real workflow or a second admin, you meet the pricing page. Radd exists to break that cycle.

Every feature, every install

There is one edition. SSO, LDAP group sync, field-level permissions, SLAs, automations, the MCP server: all of it is in the same container you download today, with no license key and no seat count.

Never open-core

The license is AGPL-3.0, and that is a promise about the future too: if Radd is ever monetised it will be hosting or support. Never a feature behind a tier. It is written in the README so you can hold us to it.

Your server, your data

One container plus Postgres, on your hardware or your cloud. Encrypted scheduled backups with a no-app restore path, a Helm chart, SBOMs and vulnerability reports with each release. Leave whenever you like; it is your database.

Contributions welcome

Bug reports, pull requests, plugins, docs. Your contribution stays yours and stays AGPL: there is no contributor agreement handing anyone the right to relicense it, which is what makes “never open-core” a promise nobody can quietly undo. The same checks run on your fork, and every change is tracked in public on the live instance.

“Never open-core. Monetization, if ever, is hosting/support — never features.”

The first lines of the project README, github.com/radd-hq/radd
A tour

What it looks like to use

Pick a surface. Each one is a screenshot of the live instance at the current release.

What’s in the box

The whole tracker, and the parts around it

A tracker, a service desk, a wiki, and the integrations that make them one system. All of it ships in every install.

Tracking

  • Projects with key-addressed issues (/issues/SKY-1004)
  • Epics, subtasks, and a separate issue-type axis
  • Custom fields everywhere, scoped per project or global
  • Workflows with transition guards; labels; dependencies
  • Saved views: board, list, planning, roadmap, queue
  • SLQ query language with autocomplete and NL→query
  • Cycles, releases that sweep finished work, bulk edit
  • Intake forms, time logging, timesheets, dashboards, reports

Service desk

  • Requesters by email: mail in, replies out
  • Public tokened forms
  • SLAs with business hours and priority policies
  • Canned responses with variables
  • CSAT surveys and knowledge-base deflection

Wiki

  • Spaces, page trees, version history and restore
  • Page ↔ issue links
  • Real-time collaborative editing
  • Public spaces on the same access model

Sign-in

  • Local accounts (argon2id) with TOTP MFA
  • Google, GitHub and any OIDC provider, with per-domain provisioning rules
  • LDAP / Active Directory direct bind with nested groups
  • Service accounts with scoped API keys

Access control

  • Full-CRUD RBAC; roles grantable per project or globally
  • Field-level read/write grants
  • Per-team internal comments
  • Public projects and per-issue visibility
  • UI disables what you cannot do instead of erroring after

AI, optional

  • OpenAI-compatible, Anthropic, or fully local (built-in CPU embeddings)
  • Semantic + full-text search fusion, duplicate detection
  • Summarize, natural-language queries, editor actions with reviewable diffs
  • Off by default; every feature degrades gracefully

Agents are first-class

  • Embedded MCP server: file, transition, comment, log time, release, sweep
  • Same RBAC as humans; the tool catalog adapts to what the caller may do
  • Scoped keys so an agent can never exceed its account

Integrations

  • GitHub, Forgejo/Gitea, GitLab: commits, PRs and CI on the issue
  • Releases that close the loop
  • Alertmanager, Google Chat, email in and out
  • Signed webhooks, REST API with OpenAPI docs, Python SDK

Jira importer

  • Connect to Jira Server/DC, download once, map everything explicitly
  • Unused noise hidden and ignored by default
  • Dry run, silent import, full rollback
  • IDs survive 1:1

Operations

  • One container plus Postgres; Helm chart
  • Encrypted scheduled backups with verification and a no-app restore path
  • Monitoring page; SBOMs and vulnerability reports per release
  • Multi-host attachment storage: filesystem or S3, routed
Try it here

SLQ: a query language you can actually read

Every board, list and dashboard in Radd is a query. This is a small, browser-side subset of the real grammar over twelve sample issues: edit the query and watch the rows change. On a real instance you get autocomplete, custom fields, me, relations like epic.category, and “Ask” to write it from a sentence.

KeyTitleTypeStateAssigneePriorityPts

Fields here: key, title, type, state, category, assignee, priority, label, points, epic. Operators: = != > < >= <= IN NOT IN IS EMPTY AND OR NOT ( ) and ORDER BY. The real thing has more of everything, plus a second dialect rooted at the worklog for the timesheet.

Workflows

How a team actually runs on it

This is the loop the Radd project itself runs every day. Nothing below needs a paid tier, a plugin marketplace, or a second product.

File it before you build it

An issue with what is wrong, what changes and “done when”. Subtasks are the checklist. Similar issues surface as you type, so duplicates die at the door.

Commit with the key

[SKY-412] board columns scroll instead of clipping. The GitHub, Forgejo or GitLab connector links the commit, the PR and its CI state on the issue’s Version control tab. No copy-pasting URLs.

Log the time, or don’t

Time tracking is per project and optional. When it is on, worklogs carry a category, the timesheet rolls them up, and Summarize includes them in the digest.

Move it to Waiting for release

A state in the done category, so throughput counts the day the work was finished, not the day it shipped.

Publish a version, and the release sweeps

A published GitHub release, or one click on the Releases page, moves every waiting item to Done with the version recorded. Release notes are generated from the issues.

An AI agent as a team member
Radd embeds an MCP server. Point Claude Code, Cursor, or any MCP client at POST /api/v1/mcp with a scoped key and the agent can file, transition, comment, log categorised time, create a release and sweep it: the whole loop, under the same RBAC as a person, with a tool catalog that only shows what the key may do.
{ "mcpServers": { "radd": {
    "url": "https://tracker.example.com/api/v1/mcp",
    "headers": { "Authorization": "Bearer $RADD_API_TOKEN" } } } }
A service desk without a second product
Requesters write to an address; the mail becomes an issue with the reporter attached; replies go back out from the issue. Public tokened forms for intake, SLAs with business hours and priority-based policies, canned responses with variables, CSAT on close, and knowledge-base deflection from the wiki. A queue view is just another saved view.
Leaving Jira
Connect to Jira Server or Data Center, run a JQL query, and the result set is downloaded once. Map fields, statuses, users, sprints and link types in nine editable tables where everything unused is hidden and ignored by default (337 fields became 14 decisions on the reference import). Dry-run, import silently so nobody is notified, keep the Jira IDs 1:1, and roll the whole run back if you change your mind.
Company sign-in on day one
Local accounts with TOTP, or any of: Google, GitHub, a generic OIDC provider with per-domain signup rules, and LDAP / Active Directory direct bind with nested groups and read-only directory teams. A Google login joins the existing AD account instead of forking a duplicate. All of it is in the free install, because there is only one install.
Public projects and open-source work
Flip a project to public and anyone can read it; flip on contributions and anyone signed in can file. Per-issue visibility (public, internal, restricted) rides one row guard that lists, counts, search and notifications all share, so a private issue is private everywhere. The RADD project on the live instance is exactly this.
Extending it
Three tiers by distance from the process: MCP/REST with a scoped key; the Apache-2.0 Python SDK for out-of-process connectors over the event stream; and in-process plugins on the kernel registries (entities, permissions, MCP tools, SLQ fields) with a federated React remote, hot-mounted at runtime. examples/acme-notes/ is the walkthrough.
Compare

What’s free here, and what it costs elsewhere

Each column is taken from that vendor’s own public pricing page on 13 September 2026. Plans change; the footnotes link to the source so you can check the current state yourself. Where a vendor’s pricing page does not mention a capability, the cell says so rather than guessing.

CapabilityRaddJira CloudLinearPlaneOpenProjectYouTrack
Price to self-host$0, forever1No self-hosted edition346
Users on the free tierUnlimited123Unlimited6
Issues, projects, viewsUnlimitedIncluded2IncludedIncludedIncluded
Single sign-on (OIDC / Google / GitHub)Included52346
LDAP / Active Directory with group syncIncluded52346
Time tracking and timesheetsIncludedIncludedNot on pricing page3IncludedIncluded
WikiIncluded1Not on pricing page3IncludedIncluded
Dashboards and reportsIncludedIncluded23IncludedIncluded
Custom fieldsIncludedIncludedNot on pricing page3IncludedIncluded
Custom workflows with guardsIncludedIncludedNot on pricing page34Included
Intake forms and email-to-issueIncludedIncluded23Not on pricing page6
AutomationsIncluded, unlimited runs1Not on pricing pageNot on pricing pageNot on pricing pageIncluded
SLAs, canned responses, CSATIncluded1Not on pricing pageNot on pricing pageNot on pricing page6
Audit logNot yet123Not on pricing pageNot on pricing page
MCP server for AI agentsBuilt in, same RBACNot on pricing pageNot on pricing pageNot on pricing pageNot on pricing pageNot on pricing page
Source codeAGPL-3.0, no open-coreProprietaryProprietary34Proprietary

Sources and notes. “Included” means the vendor lists the capability on its free or lowest tier. “Not on pricing page” means the capability is not mentioned there; it may exist through a separate product, an add-on or a marketplace app. Radd’s own “Not yet” is a feature we have not built.

  1. Jira Cloud pricing, atlassian.com/software/jira/pricing. Free plan up to 10 users; Standard and Premium priced per user; Data Center is the self-hosted line, quoted. Confluence and Jira Service Management are separately priced products.
  2. Linear pricing, linear.app/pricing. Free plan lists “250 issues”; “SAML and SCIM” and “Audit log” are listed under Enterprise; “Linear Asks” and “Linear Insights” under Business.
  3. Plane pricing, plane.so/pricing. Free plan lists 12 users; time tracking, wiki, dashboards, work item types and bulk operations are listed from Pro; intake forms and email from Business; LDAP, approvals and audit logs under Enterprise.
  4. OpenProject pricing, openproject.org/pricing. Community edition is free; SAML/OpenID Connect providers are listed from Professional; LDAP group synchronisation under Corporate; agile boards and workflow customisation from Basic.
  5. YouTrack licensing, jetbrains.com/youtrack/buy. Free for up to 10 users on both Cloud and the self-hosted Server edition with the full feature set; every user beyond 10 is paid per user. Helpdesk is a separately priced plan. YouTrack gates on seats rather than features, which is a fairer deal than most and still a per-seat tax past ten people.
  6. Atlassian Guard pricing, atlassian.com/software/access/pricing. Enforced single sign-on and SCIM user provisioning are listed in Guard Standard at $4.20 per user per month.

Jira, Confluence, Atlassian Guard, Linear, Plane, OpenProject and YouTrack are trademarks of their respective owners, used here only to identify those products. Radd is not affiliated with or endorsed by any of them. Prices are list prices in the vendor’s displayed currency and exclude discounts, minimum seat counts and taxes.

Try it

Five minutes, one container

Clone, start, seed an admin. That is the whole install: one container plus Postgres. Prebuilt images for every release are on ghcr.io/radd-hq/radd:<version>, with no latest tag on purpose so an upgrade is always a decision.

git clone https://github.com/radd-hq/radd.git && cd radd
podman compose up -d        # or docker compose
podman compose exec app python -m radd.seed \
  --email you@example.com --password change-me --name "You"

Open http://localhost:8000, sign in, and give it a fictional 26-issue project to click around in:

podman compose exec app python scripts/import_jira.py \
  --file scripts/sample_data/jira_sample.json \
  --email you@example.com --password change-me

docs/deploy.md covers TLS, backups, S3 storage, upgrades and Kubernetes (Helm chart included).

Or don’t install anything

The RADD project on project.radd-hq.com is public. Read the backlog, the roadmap, the timesheets and the wiki. Sign in with GitHub and file a bug against the tracker, in the tracker, and watch it move.

0license keys
0seat limits
1edition

Docs: the user and developer guides are written in Radd’s own wiki and mirrored to GitHub. Releases with notes, SBOMs and vulnerability reports: github.com/radd-hq/radd/releases.

Why this exists

About Radd, and about me

I’m Hussein Jarrar. I built Radd because I was tired of paying a per-seat tax for features that are table stakes, and of watching every promising open-source tracker turn into a demo for its own enterprise tier.

The name is Arabic (ردّ) for “reply”: an answer to the paywall. The rule is simple and it is at the top of the README so it cannot quietly drift: never open-core. Single sign-on is not an enterprise feature. Neither is a workflow, a custom field, an audit of who changed what, or an agent that can file a bug. Those are what a tracker is.

Radd is also a demonstration of how software gets built now. It is developed with AI agents in the open: the working agreement my agent sessions follow is committed to the repo, every change is an issue on the live instance with its worklog, and the tracker tracks its own development. If you want to see whether Radd is worth using, look at the project that runs on it. If you find it wanting, that is a bug report, and I want it.

Sponsoring keeps the public instance running and my time on what people ask for. It never unlocks anything.

Contribute

We’d love your help. Not only code.

Use it and say what’s wrong

A bug report with the actual symptom is worth more than a guess at the fix. Open an issue on GitHub, or sign in with GitHub on the live instance and file it there.

Small, sharp pull requests

Fork, branch, and the same checks that gate main run on your fork with a read-only token: pytest, ruff, tsc, the browser smoke. A maintainer is auto-requested on every PR. A DCO sign-off says the work is yours to give; there is no CLA, so it is licensed AGPL like the rest and the copyright remains yours.

Plugins and connectors

Radd is a kernel plus plugins. If your team needs a connector we don’t have, that is a great first project; the SDKs are Apache-2.0 so your work stays yours.