Tasks, their whole history and the time they took live in your git repo as an append-only journal: one JSON file per event, never edited, never deleted. Everyone else keeps state — a task file, a row, a spec. State drifts, conflicts on merge and forgets. Events cannot: board and velocity are folded from the journal on read. Your team reads it in the terminal, your AI agents read the same thing as --json. No server, no account, no network. MIT.
Hi Product Hunt 👋
I work with coding agents every day, and the expensive part was never the code -
it was re-explaining. Every new session, my agent re-read the same files and
proposed the approach we had rejected last week. My teammate's agent knew none of
it either: that memory is per user, per machine.
So kadence keeps the missing layer in the repository itself - an append-only
journal, one JSON file per event, committed next to the code. Nothing is edited
or deleted, so `kadence task show KAD-1` can answer "how did we get here", and
`--json` hands an agent the same answer in about a kilobyte whether the project
holds ten tasks or a thousand.
Two things I would rather say up front than have you find out:
• Because it is append-only, two people editing one task on two branches is not a
merge conflict. We measured 8,396 merge commits across 130 public repositories
using file-based trackers before building on that claim - 15% of them hit
conflicts in task files, and 89% are the exact type a journal removes.
• What we have NOT proved is that teams lose enough context between sessions to
want a journal for it. That bet rests on reasoning, not on users - the interviews
are not run yet. If it turns out agents do fine with `git log`, the thesis falls.
MIT, free, zero network requests. Leaving costs `rm -rf .kadence` - your events
are plain JSON, readable without us.
What I would most like from you: if you work with agents in a team, tell me what
your last session had to relearn. That is the thing I am trying to kill.
npm install -g kadence && kadence init
Report
Really like the idea. It feels genuinely useful for keeping context between sessions without adding extra friction. Simple concept, but it solves a real problem👍 Looking forward to seeing how this evolves!
Really like the idea. It feels genuinely useful for keeping context between sessions without adding extra friction. Simple concept, but it solves a real problem👍 Looking forward to seeing how this evolves!