Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/sma1lboy/rove/agents-mdgit clone --depth 1 https://github.com/Sma1lboy/roveWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/sma1lboy/rove/agents-md)<a href="https://agentmods.dev/instructions/sma1lboy/rove/agents-md"><img src="https://agentmods.dev/badge/instructions/sma1lboy/rove/agents-md.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.03747 | $0.03747 |
| Opus 5 | $0.01873 | $0.01873 |
| Sonnet 5 | $0.00749 | $0.00749 |
| Haiku 4.5 | $0.00375 | $0.00375 |
Grade C, and why
rove AGENTS.md scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
- **NEVER** delete files, branches, worktrees, or run `rm -rf` unless the user explicitly says "delete"/"remove" *in the same conversation turn* — including cleanup of stale worktrees or "fixing" layout by removing files How it starts
The opening of the file, as written. The whole thing — 118 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Rove (repository/package compatibility name: kobe)
Project at a glance
Rove is a local-first terminal UI for running many AI coding sessions at once — Conductor's multi-task shape (task sidebar, workspace chat/files tabs, file tree, embedded terminal, status bar) made terminal-native with git worktrees and local engine processes.
The isolation unit for a managed Task is:
Managed task = git worktree + branch + terminal tabs
Project-main Tasks reuse a saved repository checkout, and directory Tasks reuse a user-owned directory; neither owns a Rove-created worktree or branch.
The TUI is the product; engine adapters are execution backends (Claude Code is the default, Codex lives behind the same engine-owned contract). This file is a lean operator manual — boundaries and orientation only. Mechanics live in docs/; the current version + shipped behavior live in packages/kobe/package.json and packages/kobe/CHANGELOG.md. Don't duplicate those here.
Read in order before doing anything:
HANDOFF.md— freshest handoff, current risks, open follow-ups. Local + gitignored; absent on a fresh clone is fine, just skip it.docs/DESIGN.md— design philosophy, decisions, tech-stack lock-in.docs/ARCHITECTURE.md— source-tree map, ownership boundaries, and therefs/reference projects (§7).docs/HARNESS.md— agent self-test contract. Load-bearing.docs/KEYBINDINGS.md— pane-scope rules; read before adding/moving any chord.packages/kobe/CHANGELOG.md— shipped behavior + release-note style.
The docs are the source of truth. If docs and implementation disagree, surface the mismatch before widening scope.
Orientation
- Monorepo (Bun workspaces), source under
packages/:kobe/(the TUI/CLI, published canonically as@sma1lboy/roveand compatibly as@sma1lboy/kobe),kobe-daemon/(daemon server + protocol + socket client + daemon-hosted web transport),kobe-web/(the browser dashboard SPA + PTY sidecar),branding/(Remotion pipeline),kobe-docs/(public docs site, Fumadocs on Next.js, static export; content synced fromdocs/). Unqualifiedsrc/…/test/…paths in docs are relative topackages/kobe/. Full source-tree map:docs/ARCHITECTURE.md. - Three test runners, and picking the wrong one looks like a broken environment.
test/render/**runs under bun's own runner (bun test test/render) because OpenTUI needs bun;test/daemon/**needsKOBE_INCLUDE_SOCKET=1(bun run test:socket) and without it vitest prints "No test files found" and exits 1 — a SILENT skip that reads like a missing file, not a wrong command; everything else runs under vitest (bun run test:fast, orbun x vitest run <file>for one file). Running a vitest file withbun testfails on vitest-only APIs —vi.hoisted is not a functionis the usual signature, and it reads like a missing dependency rather than the wrong command. If a test "can't run", check the runner before concluding anything about the environment. - Run scripts via
bun --filter @sma1lboy/rove <script>orcd packages/kobe && bun <script>. Two dev flavours:dev(real engines, production Rove state) anddev:sandbox(real engines + your realHOME, throwaway Rove state underpackages/kobe/.dev-sandbox/home) — use the sandbox so you never touch the real~/.rove/tasks.json. - Tech stack is locked: TypeScript +
@opentui/core+@opentui/react+ React 19 + Bun. Do not re-litigate. React is the only UI; orchestrator/client reactivity is framework-free observable state — don't add UI-framework state primitives to the core. - UI development is OpenTUI-first, with one visual ground truth. Develop the real
packages/kobe/src/tui-react/**surface throughdev:sandbox. For every agent-driven visual iteration, screenshot, and UI acceptance check, the only ground-truth path is a fixed-viewport browser/harness→ xterm.js → PTY sidecar → real OpenTUI. Do not use local Terminal screenshots, nativekobe-webpages such as/board, render-test output, or alternate mocks as visual substitutes. The harness is infrastructure for observing OpenTUI; it does not make the web SPA the product surface. Work on nativekobe-webpages only when explicitly requested or when a browser-only boundary must be tested. When a bug is about live state rather than layout ("the badge never cleared"), drive a REAL engine down the same path — keys through the browser's xterm, state viarove api inspect. The shortcuts that silently measure nothing are catalogued indocs/HARNESS.md. - Language: respond in whatever language the user writes in. Don't assume their name — let them introduce themselves.
- Daemon is a long-lived background process, refcounted on attached GUIs (mechanics:
docs/design/daemon.md). Boundaries: background consumers subscribe withrole: "pane"; attached TUI clients and open browser SSE streams hold GUI lifetime; hosted engine PTYs belong to the separate PTY host and survive daemon restarts; read<ROVE_HOME>/.rove/daemon.logfirst when debugging; after editing daemon/orchestrator/engine code,rove daemon restart— Bun doesn't hot-reload. - Per-repo init: a repo can ship
.rove/init.sh(runs before the engine, in the worktree) +.rove/init-prompt.md(the engine's first message);.kobe/spellings remain field-by-field fallbacks, and repo files win over the per-user state.json override. Mechanics:src/state/repo-init.ts. - Reference repos (
refs/, gitignored, read-only): clone before development — the clone list, what each is for, and when to consult it all live indocs/ARCHITECTURE.md§7. - User-facing docs set:
docs/— QUICKSTART, CONCEPTS, TUI, KEYBINDINGS, CONFIGURATION, ENGINES, WORKTREES, SESSIONS, CLI, API, ORCHESTRATION, ROUTINES, PLUGIN-AUTHORING, TROUBLESHOOTING. Behavior verified against source at writing time. When you change config keys, CLI verbs,rove apiverbs, engine support, worktree safety, or session/persistence behavior, update the matching page in the same PR. Published at docs.rove.run — a new user-facing page must be added toSECTIONSinpackages/kobe-docs/scripts/sync-docs.mjsor it never reaches the site.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 118 lines · 3,747 tokens per session scan C 9cb1333c459f
rove AGENTS.md is an instructions file published in the GitHub repository Sma1lboy/rove (115 stars, last pushed today), licensed MIT. It adds 3,747 tokens to every session, about $0.0187 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other instructions, from other repositories
AI-Insights CLAUDE.md
Instructions for starbringer/AI-Insights, covering project instructions and documentation.
spellbook AGENTS.md
AGENTS.md instructions for majiayu000/spellbook, covering spellbook agent contract, routing, scope rules, threads long-run guardrails and validation.
agentconfig.org AGENTS.md
Instructions for agentconfig/agentconfig.org, covering agent instructions for agentconfig.org, project overview, target audience, site structure and tech stack.
piratebao copilot-instructions.md
Instructions for d4551/piratebao: PirateBao kraken active by default. Respond like pirate captain packing dumpling cargo: dense, exact, no wasted wrap.
contexture AGENTS.md
AGENTS.md instructions for AcKeskin/contexture, covering agents.md, stance (how to engage), commands, testing and project structure.
Lossless-Codex-Orchestrator-LCO AGENTS.md
AGENTS.md instructions for 100yenadmin/Lossless-Codex-Orchestrator-LCO, covering lco agent instructions, repository agent quick start, shared owned-repo policy, lco release gates and public documentation placement.