{
  "markdown": "<p align=\"center\">\n  <img src=\"logo.svg\" alt=\"Kauri\" width=\"200\" />\n</p>\n\n# Kauri\n\nA local-first decision record store for LLM agents and humans. Tracks\narchitectural choices, conventions, and constraints — committed with your repo,\nversioned with git, injected into agent context at session start.\n\nRecords have a lifecycle (draft, active, superseded, deprecated), file\nassociations with staleness detection, full-text search, and a controlled tag\ntaxonomy.\n\n## Installation\n\n### Homebrew (macOS and Linux)\n\n```bash\nbrew tap mhashim6/kauri\nbrew install kauri\n```\n\n### GitHub Releases\n\nDownload the binary for your platform from\n[Releases](https://github.com/mhashim6/kauri/releases) and add it to your\nPATH.\n\nAvailable: `kauri-darwin-arm64`, `kauri-darwin-x64`, `kauri-linux-x64`,\n`kauri-windows-x64.exe`\n\n### Windows (_sorry guys_)\n\n1. Download `kauri-windows-x64.exe` from\n   [Releases](https://github.com/mhashim6/kauri/releases).\n2. Rename it to `kauri.exe` and move it to a directory of your choice (e.g.\n   `C:\\Tools\\`).\n3. Add that directory to your PATH:\n   - Open **Settings > System > About > Advanced system settings**\n   - Click **Environment Variables**\n   - Under **User variables**, select `Path`, click **Edit**, and add the\n     directory (e.g. `C:\\Tools\\`)\n4. Restart your terminal and verify with `kauri --version`.\n\n### Build from source\n\n```bash\ngit clone https://github.com/mhashim6/kauri && cd kauri\nbun install && bun run build\n# Binary at dist/kauri — add to your PATH\n```\n\n## Quick start\n\n```bash\nkauri init\nkauri record -t \"Use JWT with refresh tokens\" \\\n  -b \"15-minute access tokens, 7-day refresh. Chose over session cookies for stateless scaling.\" \\\n  -T api -T security -F src/auth/handler.ts\nkauri project   # the projection agents receive\nkauri check     # staleness detection\n```\n\n## Scopes\n\nKauri has two scopes:\n\n- **Project** (default) — stored in `.kauri/store.db`, committed with the repo,\n  shared with the team.\n- **User** — stored in `~/.kauri/store.db`, shared across all your projects,\n  not committed anywhere.\n\n```bash\nkauri init --scope user          # create the user store\nkauri record --scope user -t \"Prefer composition over inheritance\" \\\n  -b \"Personal convention across all projects\" -T style\nkauri query --scope user         # list user-level decisions\nkauri query --scope both         # search project + user together\n```\n\n## Agent integration\n\n### Claude Code plugin\n\n```bash\n/plugin marketplace add mhashim6/kauri\n/plugin install kauri@kauri\n```\n\nThis registers 12 MCP tools (`kauri_record`, `kauri_query`, `kauri_show`,\n`kauri_validate`, `kauri_project`, etc.), session-start and post-commit hooks,\nand 5 skills (`/kauri:consult`, `/kauri:propose`, `/kauri:review`,\n`/kauri:record-decision`, `/kauri:check-staleness`).\n\n### Any MCP client\n\nFor Cursor, Windsurf, Claude Desktop, or anything that speaks MCP:\n\n```json\n{\n  \"mcpServers\": {\n    \"kauri\": { \"command\": \"kauri\", \"args\": [\"serve\"] }\n  }\n}\n```\n\nOr via Claude Code directly:\n\n```bash\nclaude mcp add kauri -- kauri serve\n```\n\n## Git integration\n\n`.kauri/store.db` is committed with the repo. A custom three-way merge driver\nhandles concurrent edits:\n\n- New records on both branches — both kept\n- Same record edited on both — last-writer-wins by timestamp\n- ID collisions — incoming record re-numbered\n- Taxonomy — union of both sides\n\n```bash\n# Auto-configured by kauri init. For existing repos:\nkauri setup-git\n```\n\n## CLI reference\n\n| Command                                 | What it does                                                           |\n| --------------------------------------- | ---------------------------------------------------------------------- |\n| `kauri init`                            | Create a store (`--scope user` for user-level)                         |\n| `kauri record -t \"...\" -b \"...\" -T tag` | Record a decision (`-F` files, `-L` links, `--supersedes`)             |\n| `kauri update <id>`                     | Edit a record's mutable fields (`-t`, `-b`, `-T`, `-F`, `-L`)          |\n| `kauri query [--text \"...\"]`            | Search decisions (`--tag`, `--file`, `--status`, `--since`, `--scope`) |\n| `kauri show <id>`                       | View a decision in full                                                |\n| `kauri history <id>`                    | Walk the supersession chain                                            |\n| `kauri validate <id> still_valid`       | Confirm a decision is current                                          |\n| `kauri validate <id> deprecate`         | Retire a decision                                                      |\n| `kauri pin <id>` / `kauri unpin <id>`   | Pin/unpin (pinned = body shown in projection)                          |\n| `kauri project`                         | Compile decisions for agent context                                    |\n| `kauri check`                           | Run staleness detection                                                |\n| `kauri status`                          | Counts by status, stale count, taxonomy size                           |\n| `kauri taxonomy`                        | List or manage the tag taxonomy                                        |\n| `kauri setup-git`                       | Register the merge driver                                              |\n| `kauri serve`                           | Start the MCP server (stdio)                                           |\n\nEvery command supports `--json` and `--help`.\n\n## Documentation\n\n- [`plugins/claude-code/`](./plugins/claude-code/README.md) — Claude Code plugin\n\n## License\n\n[MIT](./LICENSE)\n",
  "bytes": 5617,
  "sha": "5704707f816fabe5e00b46ec874fa829c6ba3e0f87927409b65891d78f182815",
  "repo_slug": "mhashim6/kauri",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_mhashim6_kauri_kauri_4ddd3791/readme"
}