Open source · MIT · preview

Your product backlog, versioned like your code.

Joy keeps epics, stories, tasks, milestones, and dependencies as plain text inside your project. Run it in your terminal, version it with your code, bring AI agents in on your terms.

joy — ~/code/scientific-calculator
$ joy roadmap
----------------------------------------------------------------------
Scientific Calculator · 4 milestones · 8/30 items closed
----------------------------------------------------------------------
SCI-MS-01-0E Core arithmetic [5/7]
└── SCI-0001-48 Expression engine [epc] [new] [crt]
└── SCI-000B-5F Use rust_decimal for all ar... [dec] [new] [med]
SCI-MS-02-AD Scientific functions [3/14]
├── SCI-0002-AD Scientific functions [epc] [new] [hig]
│ ├── SCI-000C-B8 Trigonometric functions sin... [str] [rev] [hig]
│ ├── SCI-000D-CA Inverse trig and hyperbolic... [str] [opn] [med]
│ ├── SCI-000E-54 Logarithms: ln, log10, log ... [str] [wip] [hig]
│ ├── SCI-0012-43 tan(90°) returns a huge num... [bug] [wip] [crt]
│ └── SCI-0013-63 log(0) hangs the evaluator [bug] [wip] [hig]
└── SCI-0004-74 Calculator UI [epc] [new] [hig]
├── SCI-0014-76 Keypad layout with shift an... [str] [wip] [hig]
├── SCI-0015-51 Expression history with recall [str] [opn] [med]
├── SCI-0016-DF Dark theme following the sy... [tsk] [rev] [med]
└── SCI-0017-CE Backspace deletes two chara... [bug] [new] [med]
SCI-MS-03-40 Graphing [0/5]
└── SCI-0003-38 Graph plotting [epc] [new] [hig]
├── SCI-0018-EB Plot y = f(x) on a zoomable... [str] [opn] [hig]
├── SCI-0019-4F Trace a curve and read off ... [str] [new] [med]
├── SCI-001A-5B Adaptive sampling near asym... [tsk] [new] [med]
└── SCI-001B-4B Plot two functions and shad... [ide] [new] [med]
SCI-MS-04-C8 Release 1.0 [0/3]
└── SCI-0005-E1 Unit conversion [epc] [new] [med]
├── SCI-001C-BB Convert between metric and ... [str] [new] [med]
└── SCI-001D-F4 Currency conversion with ca... [str] [new] [low]
(no milestone) [0/1]
└── SCI-001E-8C Ship as a single offline binary... [dec] [new] [med]
----------------------------------------------------------------------
13 new · 3 open · 4 in-progress · 2 review · 8 closed · 2 blocked
The tool

Built for the terminal.

01

Ten commands cover 95% of the day

Simple by default, powerful when needed. Complexity lives in flags, not in a deep command tree.

joy add · joy ls · joy start · joy show …
02

Plain text you own

Every item is a plain text file in your repo, versioned with your code. Readable, portable, yours. No database, no server required to start.

03

No sense of time, by design

Joy has no built-in clock pressure. Your backlog is institutional memory in your repo, not a burndown chart. Time lives in milestones when you want it, nowhere when you do not.

04

Confidential where it matters

Put sensitive items in a Crypt zone and they are encrypted inside your repo. Only the members you grant can read them, people or AI.

joy crypt add CB-0042 --zone customer-x
On your terms

AI your way.

01

Control down to the item

You grant each member the capabilities they need, implement, review, test, and each item demands exactly the ones required to move it forward. An AI works only within what you granted. Add a gate, and closing stays with a human.

joy project member add ai:claude@joy --capabilities implement,review,test
02

Jobs with a budget

Hand AI a job with a scope, a cost limit and a time window. A human approves it, the Joyint app or platform runs it, and the job keeps its tokens, cost and duration.

joy add job "Implement login" CB-0010 · joy edit … --max-cost 5
03

Chat with your team and AI

Project chats live in your repo, encrypted if you choose. Read and send from the terminal, and mention an AI member in the app to have it answer under your delegation.

joy chat send general "who takes CB-0042?"
How Joy compares

What no other PM tool does.

AI in product management is not new. AI you can trust, with cost control and data you own, is.

Linear / Jira Cloud

  • Cloud-only data storage
  • No AI cost tracking
  • No budget enforcement
  • No configurable AI gates
  • No self-hosting

GitHub / GitLab

  • Data in a platform database
  • No Trust Model for AI
  • No status gate enforcement
  • No cost tracking
  • No offline PM

Joy

  • Plain text in your git repo
  • AI members with capabilities
  • Cryptographic identity
  • Append-only event log
  • CLI-first, fully offline
  • Open source (MIT)
Install

Start in 30 seconds.

Joy lives in your repo. No account, no server, no configuration. Open source, MIT licensed, free forever.

$curl -fsSL get.joyint.com/joy | sh
Roadmap

What ships, what comes next.

Joy 0.20.0 is the current release. Everything it contains, by minor version, newest first.

0.20Jobs as items with scope and budget · Per-chat encryption · Three interaction levels · Pseudonymized identity · WinGet
0.18AI jobs · Team chats with AI members · BI plugin
0.17Anonymous mode · Encrypted member directory
Older
0.16approve, defer and rework verbs · Commit message pre-fill · Privacy setting
0.15Self-update · Interactive tutorial · AI tutorial
0.14Crypt zones · Recovery keys · Whole-project encryption
0.13JSON output everywhere · Windows install
0.12Unified filters · Item ID completion
0.11Member attestation · One-time-password onboarding
0.10Release bump, record and publish · Per-session AI authorization
0.8 to 0.9Prebuilt binaries · joy ai init · Guided setup
0.5 to 0.7Workflow gates · Capability-based AI members
0.3 to 0.4Board · Releases · Capabilities · Delegation tokens
0.1 to 0.2Items, milestones and dependencies · Roadmap · Event log · Config layers

Done, not yet released

  • Forge plugins for GitHub, GitLab, Gitea
  • Always-encrypted chats
  • Chat IDs you can type
  • Unread and recent chat filters

Planned Soon

  • Chat images and attachments
  • Crypt in the web app
  • A branch per job
  • MCP server
  • Zone key rotation
  • Markdown and JSON export
Scale when ready

Your team, when you are ready.

Joy runs free and local for as long as you like. When a teammate joins, you share one repo and coordinate through Git itself, the same plain-text backlog, the same workflow, no server in between. When you want sync with a web app, AI jobs with budgets, and costs in one place, Joyint adds them on top.