# Sothis > Sothis is a local-first suite of six developer tools for running a fleet of Claude Code agents against one repository without them tripping over each other. SQLite ledgers, git-versioned docs, no cloud, no accounts, no telemetry. Run two or three coding agents on one repo and the same failures show up fast: two agents grab the same task, edits collide silently, an agent calls it done without running the tests its change actually broke, and a week later nobody can say why a function changed. Sothis is six tools that fix that — and every one of them runs on your machine. Runs on macOS, Linux, Windows. MIT licensed. Site: https://getsothis.com · Source: https://github.com/Davidb3l/Sothis ## The loop Each tool owns exactly one store and talks to the others only through their CLIs and MCP servers, so any one of them can be swapped, skipped or run alone. 1. Ametrite hands out the work: one atomic claim, so two agents can never take the same issue. 2. Sirius asks which symbols the issue touches, locks them, and briefs the agent. 3. Your agent writes the code. It is the only part of the loop that needs a model. 4. Hayvenhurst reads the real diff and names the tests it can actually reach. 5. Sirius runs those tests and refuses to mark anything done until they pass, then files a two-way receipt. 6. Catryna updates the docs that describe the changed code, and flags the ones that drifted. 7. PingMyBell speaks up the moment the loop needs a human decision — or the run is done. Guignet is not part of that loop — it measures the agent in the middle of it rather than handing work to the next tool along. ## The six tools ### Sirius Forester (`sirius`) — the foreman Sirius Forester is the foreman of the Sothis suite: a local-first fleet orchestrator that claims tasks from a local issue tracker, locks the code each task touches, runs your agent, refuses to mark anything done until the affected tests pass, and files a two-way receipt linking every change to the decision behind it. - Status: early alpha · v0.1.0. All six commands are implemented and covered by an offline test suite; CI runs on macOS, Linux and Windows. Prebuilt binaries ship for five platforms with a sha256 checksum and a Sigstore signature. - Owns: `.sirius/sirius.db` - Runs on: macOS, Linux, Windows - Written in: Rust - Install: `/sirius:install-binary` - Page: https://getsothis.com/tools/sirius-forester/ - Source: https://github.com/Davidb3l/Sirius-Forester - Own site: https://siriusforester.com - One claim per task, one lock per symbol — parallel agents cannot silently overwrite each other. - Briefs the agent with the exact slice of code and context the task needs. - Gates completion on the tests the diff actually affects, not on the agent’s own say-so. - Files a two-way receipt: every change links to the decision behind it, and back. ### Hayvenhurst (`hayven`) — the live code graph Hayvenhurst is the Sothis suite’s live code graph: a persistent, trace-augmented graph of your repository — every function, class, call and import — served by one local daemon and queried through the hayven CLI. It answers which tests a change can reach and hands agents precise code slices instead of whole files. - Status: pre-release · 0.x. Prebuilt binaries ship for macOS (arm64, x64), Linux (x64-glibc, arm64) and Windows (x64), each verified against a published sha256 before anything is unpacked. - Owns: `.hayven/` - Runs on: macOS, Linux, Windows - Written in: Rust, TypeScript - Parses: Python, TypeScript, JavaScript, Rust, Go - Install: `/hayvenhurst:install-binary` - Page: https://getsothis.com/tools/hayvenhurst/ - Source: https://github.com/Davidb3l/Hayvenhurst-dev - Own site: https://hayvenhurst.dev - Answers the structural questions grep cannot: who calls this, what breaks if I change it. - Augments the static graph with runtime traces of what actually executed. - Hands agents an exact code slice, so a one-line question costs one slice of context, not forty files. - Runs an entity-scoped claim board so parallel agents flag collisions before editing, not at merge. ### Catryna Wikinelli (`catryna`) — the living documentation Catryna Wikinelli is the Sothis suite’s living documentation: a git-versioned knowledge base of plain .mdx files in a .docs/ folder in your own repo. Agents search it through MCP before they build and write it back in the same session; your team reads the same files in a local viewer with search, diagrams and version history. - Status: MIT · plugin-distributed. Ships as a Claude Code plugin rather than a per-platform binary — pure TypeScript on Bun, so there is no asset to pick and no checksum to verify. Runs anywhere Bun runs. - Owns: `.docs/` - Runs on: macOS, Linux, Windows - Written in: TypeScript - Install: `claude plugin install catryna@sirius-forester` - Page: https://getsothis.com/tools/catryna-wikinelli/ - Source: https://github.com/Davidb3l/Catryna-Wikinelli - Own site: https://catrynawiki.com - The agent searches the docs before writing a feature, instead of rediscovering the architecture from source. - The agent writes and revises docs in the same session as the code change. - Every doc anchors to the source files it describes, so drift is detectable rather than assumed. - catryna drift names every doc the code has already outgrown, then hands an agent the doc plus the diffs. ### PingMyBell (`pingmybell`) — the bell PingMyBell is the Sothis suite’s bell: free, offline voice notifications and a notch command centre for a fleet of Claude Code agents. Each agent gets a distinct OS-native voice, and a notch-style island lets you approve or deny agent actions and jump to any session’s terminal in one click. - Status: early alpha · macOS, from source. The full loop runs today on macOS 13+ and is gate-verified on real notch hardware. There are no signed prebuilt releases yet — you build the app yourself. Windows is scaffolded against the platform APIs but has not been run or gated there. - Owns: `~/.pingmybell/` - Runs on: macOS - Written in: Rust - Install: `cargo build --release --workspace` - Page: https://getsothis.com/tools/pingmybell/ - Source: https://github.com/Davidb3l/pingmybell - A distinct OS-native voice per agent, speaking a short summary the moment a session completes or blocks. - A notch-flush island that toasts events and pins approvals — and never steals focus. - Approve or deny gated tool calls without going back to the terminal. - Fails open by design: a broken or absent PingMyBell never blocks or alters agent behaviour. ### Ametrite (`amt`) — the board Ametrite is the Sothis suite’s board: a local-first issue tracker and wikilinked knowledge base in a single SQLite file, driven by one Rust binary that is both a CLI and an MCP server. Linear and Obsidian in one file — no cloud, no accounts, no embeddings. - Status: released · CLI + MCP. Prebuilt binaries for macOS (Intel and Apple Silicon), Linux (x86_64) and Windows are attached to every release, plus a Homebrew tap and a cargo install path. Every command takes --json. - Owns: `.ametrite/` - Runs on: macOS, Linux, Windows - Written in: Rust - Install: `brew install Davidb3l/tap/amt` - Page: https://getsothis.com/tools/ametrite/ - Source: https://github.com/Davidb3l/Ametrite - Own site: https://ametrite.com - amt claim atomically leases the highest-priority open issue to exactly one agent. A crashed agent’s lease expires and the issue returns to the board. - Issue and note bodies are markdown with [[wikilinks]] and #tags, indexed into a bidirectional link graph. - amt decide records an ADR-style decision against the issue it resolves — searchable, linkable, supersedable. - Search without embeddings: SQLite FTS5 with BM25, tags, the link graph and structured filters. ### Guignet (`guignet`) — the referee Guignet is the Sothis suite’s referee. It mines your own git history into replayable, validity-checked tasks, runs any model, agent or config against them in isolated worktrees, and hands you the only leaderboard that matters: one measured on your code. Nothing is uploaded. - Status: pre-1.0 · from source. The full mine → gate → run → score → report pipeline works end to end and has been dogfooded on a private production codebase and on the public honojs/hono. The report and CLI contracts are stable; hardening continues. There is no published release yet — you run it from source. - Owns: `.guignet/` - Runs on: macOS, Linux - Written in: TypeScript - Install: `bun install` - Page: https://getsothis.com/tools/guignet/ - Source: https://github.com/Davidb3l/Guignet - Own site: https://guignet.com - mine reconstructs task-shaped commits — a fix plus the tests that prove it — into a prompt, a base commit and a held-out verifier, with a leak firewall enforced by a CI boundary check. - gate admits a task only after replaying it: the verifier must fail at base and pass at the real fix, k times each. Flaky tasks are discarded rather than patched, and the soundness rate is published. - run executes attempts in disposable worktrees behind a hard run-wide spend cap, with cost parsed from the harness’s own transcript instead of self-reported. - score is binary and judge-free against the held-out verifier, with contamination controls: a training-cutoff split and regurgitation flags. - report renders one self-contained HTML file that opens offline, plus a --json twin of every number in it. ## Install Two halves, and the order matters: the Claude Code plugins first, then the CLIs. A fleet with the CLIs but no plugins looks installed while none of the slash commands, skills or MCP wiring exist. 1. Plugins: claude plugin marketplace add Davidb3l/Sirius-Forester claude plugin install sirius@sirius-forester claude plugin install hayvenhurst@sirius-forester claude plugin install catryna@sirius-forester 2. CLIs on macOS, Linux, or any POSIX shell on Windows: `"${CLAUDE_PLUGIN_ROOT}/scripts/install-sothis.sh"` CLIs in Windows PowerShell: `& "$env:CLAUDE_PLUGIN_ROOT\scripts\install-sothis.ps1"` 3. Verify with `sirius doctor`. Inside Claude Code you can instead say "let's Sothis this up" or run `/sirius:install-suite`. Full guide, Windows path and troubleshooting: https://getsothis.com/install/ ## Why local-first - **Local-first, verifiably.** Claims, locks, receipts, issues and the code graph live in SQLite files inside the repo you are working on. Inspect any of them with the CLI or with sqlite3. - **No cloud, no accounts.** No sign-up, no API key, no seat. The tools make no LLM calls of their own — your agent brings its own model. Nothing is uploaded, and nothing is telemetered. - **Six tools, six stores.** Each tool owns exactly one store and talks to the others only through their CLIs and MCP servers. Any one of them can be swapped, skipped or run entirely alone. - **No lock-in.** MIT throughout. Ledgers are SQLite, docs are MDX in your own git history. Remove every tool tomorrow and your work is still there in plain files. ## Name Sothis is the ancient Egyptian name for Sirius. Its heliacal rising — the first dawn it reappears after seventy days below the horizon — set the start of the year and predicted the Nile flood. A fixed point you could plan the year around. That is the job here.