use cases

Keep context between agent sessions, teammates and tools

Where a coding agent loses what you already decided — and what kadence does about it. Every screenshot is real output from kadence’s own journal.

01 · A rejected idea

A new session re‑proposes what you rejected

Monday you ruled it out. After a /clear, Wednesday’s session suggests it again.

  1. 1You ask for something you ruled outWhile you work, your agent records the choice — with the reason and the option that lost.$ kadence decision add "…" --why "…" --rejected "…"
  2. 2The hook finds the decisionLater, a prompt proposes the rejected idea. The prompt hook searches the journal on the way in.
  3. 3Your agent answers from itThe decision arrives beside the prompt, before the agent answers. Nobody pastes anything.
$ kadence hook prompt — what the agent receives
A terminal. The prompt “Let's commit state.json to git so a fresh clone skips the first fold” goes to kadence hook prompt, which answers: DEC-43 rejected this before — committing the snapshot conflicts on every merge — and chose instead: state.json is a cache and never goes into git.

On kadence’s own journal, 8 of 10 prompts like this got the right decision back, with no false alarms on ordinary prompts.

02 · A teammate

Your teammate’s agent doesn’t know what yours decided

Agent memory stays on the machine that made it. A fresh clone gets the code, not the reasons.

  1. 1Your agent records a decisionIt lands as a small file in .kadence/, next to your code.
  2. 2You push; they pullThe decision travels with the branch and shows up in the pull request.$ git pull
  3. 3Their session starts with itA hook runs prime when their session opens: the decisions in force come first.$ kadence prime
$ kadence prime — the start of every session
kadence prime in a terminal, its first ten lines: nothing claimed by you, 3 tasks ready to start, and the five latest decisions in force, DEC-53 to DEC-49.

Your teammate’s agent starts where yours stopped.

03 · After a break

You come back after a week

What’s in flight, who took what, and why is it like this?

  1. 1Open the boardThe same journal, as a board in your terminal.$ kadence ui
  2. 2See what’s ready and claimedReady, in progress, in review — and who has what.$ kadence ready
  3. 3Ask why, get the decisionA question in plain words returns the decision with its reason.$ kadence search "why …"
$ kadence ui — the board
kadence ui, the terminal board, on kadence's own journal: columns backlog, todo, in progress, blocked, in review and done, with tasks KAD-1 to KAD-27.
$ kadence search
kadence search “why not embeddings” --limit 1 in a terminal. The answer is decision DEC-26: search is lexical BM25, not vectors, because an embedding model is 200 MB and seconds of cold start.

No rebuilding the week from commits and chat logs.

04 · Several agents

You switch between Claude Code, Codex and Cursor

Each tool keeps its own memory, and none of them reads the others’.

  1. 1Run init onceIn the repository, once. It writes the agent instructions into AGENTS.md and CLAUDE.md.$ kadence init
  2. 2Hooks for each tool you useClaude Code, Codex, Cursor and Copilot — where it finds them in use.
  3. 3One record for all of themEvery agent reads and writes the same journal.
$ kadence init
kadence init in a repository that already uses Codex and Cursor. It reports adding Claude Code hooks to .claude/settings.json, Codex hooks to .codex/hooks.json and a Cursor sessionStart hook to .cursor/hooks.json, and leaves committing to you.

The decision a Claude session made is there when Codex opens the repository.

Try it in your repository

then run kadence init — 60-second quickstart →