~/otito

● Òtítọ́ · node · 100% local-first · MIT

Òtítọ́ — ~/projects
  ___ _____ ___ _____ ___
 / _ \_   _|_ _|_   _/ _ \
| | | || |  | |  | || | | |
| |_| || |  | |  | || |_| |
 \___/ |_| |___| |_| \___/

▸ repository context, mapped locally.

A local-first CLI and MCP server that turns a repository into deterministic context for coding agents and reviewers — it maps what a change touches, scores how cheap and safe it is, and gates merge readiness. No cloud. No guessing. Just your repo, mapped.

$ otito context "add a new MCP tool"

// a context pack, generated locally in milliseconds

Òtítọ́ — context
# task-aware context, fully deterministic
$ otito context "add a new MCP tool"

▸ intent      add · mcp, tool, server
▸ primary     src/lib/mcp.js
              src/cli.js
▸ related     src/lib/context-engine.js
              src/lib/repo.js
▸ tests       tests/context-engine.test.js  ✓
▸ pattern     register command → add handler → update help
▸ verify      npm run ci

  ~4,088 context tokens · 100% local · 0 network calls

$ works with claude-code · codex-cli · cursor · vscode · ollama

// trust-layer

Five things an agent has to get right

otito turns a repository into a trust layer with five durable parts. Each one is deterministic, inspectable, and produced from your code — not a model's memory.

▸ context

[01]

Task-aware packets before an agent plans or edits — primary files, related files, tests, patterns, and the exact validation commands.

$ otito context "add a new MCP tool"

▸ tests

[02]

Every packet surfaces the matching tests and the repo's own quality gate, so changes ship with the checks that prove them.

$ otito harness . --out .otito/harness.md

▸ permissions

[03]

Scoped to the smallest owner files that actually need to move. Code owners and protected-branch rules stay in the loop.

$ otito impact src/lib/pr-review.js

▸ review

[04]

Impact, review context, and the merge gate in one call — changed files, risk prompts, CODEOWNERS, branch protection, and a ship / no-ship verdict with a confidence score.

$ otito review . --base origin/main

▸ evidence

[05]

Deterministic, local-first artifacts you can keep — context packs, AX and convergence scores, and merge verdicts as durable Markdown or JSON, not disposable model guesses.

$ otito report . --out .otito/report.md
context
  └─ tests
      └─ permissions
          └─ review
              └─ evidence

one loop, kept honest every session.

// the loop ends in a verdict — deterministic, from your diff

Òtítọ́ — gate
# deterministic merge gate — local diff or a GitHub PR
$ otito gate .

▸ changed     9 files · 2 risk paths flagged
▸ secrets     none detected             ✓
▸ owners      CODEOWNERS · 2 required reviewers
▸ release     version + changelog in sync
▸ verdict     PASS  ✓  safe to open a PR

  add --pr 477 to gate a GitHub PR · 100% local by default

// features

One CLI for the whole repo-context job

It doesn't replace your editor or your model. It gives developers and agents a single, scriptable source of truth about the code in front of them.

▸ discover & index

Find repo roots under any directory and build local .otito indexes. No cloud, no upload.

▸ ast code maps

JSON-first maps of files, domains, imports, exports, symbols, and routes across 8 languages — JS/TS, Go, Python, Java, C#, Ruby, Rust.

▸ search across repos

Rank matches by path, domain, route, controller, imports, exports, and symbols across your whole catalog.

▸ agent harnesses

Generate setup, validation, and runtime commands as the first artifact an agent or CI reads.

▸ merge gates

One ship / no-ship verdict for a local diff or a GitHub PR — secret safety, risk paths, CODEOWNERS, branch protection, release discipline.

▸ agent-experience score

AX 0–100: how cheap and safe is this change? Blends changeability, blast radius, guardrails, and clarity.

▸ convergence score

Score 0–100 for how far the diff drifted from the stated task — coverage, scope, and risk alignment, with a recomputable receipt.

▸ usage dashboard

A local, self-contained HTML dashboard of usage and performance from opt-in telemetry. No server, off by default.

▸ pr review packs

Turn a git diff into review targets, risk flags, and verification commands — posted as a sticky comment.

▸ token-aware

Every artifact estimates its own context-token footprint. Never blow an agent's window by accident.

▸ multi-repo workspaces

One product-level report across related repos — web, API, and everything wired between them.

▸ github actions ready

otito init scaffolds a CI quality gate, a PR-review workflow, and an optional pre-commit hook into any repo.

// mcp-server

Wire it straight into your agent

otito mcp starts a stdio MCP server that exposes Òtítọ́ as agent-callable tools — context, impact, AX and convergence scores, and merge gates — with a persisted repo-index cache that refreshes when files change.

  • repo_inspect
  • repo_map
  • repo_index
  • repo_search
  • context_pack
  • change_impact
  • agent_experience
  • convergence_score
  • review_context
  • review_gate
  • review_verdict
  • workspace_report
  • repo_harness
→ host config for claude · cursor · vscode
claude_desktop_config.json
{
  "mcpServers": {
    "otito": {
      "command": "node",
      "args": ["/absolute/path/to/otito/src/cli.js", "mcp"]
    }
  }
}
  ___ _____ ___ _____ ___
 / _ \_   _|_ _|_   _/ _ \
| | | || |  | |  | || | | |
| |_| || |  | |  | || |_| |
 \___/ |_| |___| |_| \___/

Give your agents context they can trust

Start from source while npm publication is pending. Then point your agent at it.

$ git clone https://github.com/BASHBOP/otito.git
$ cd otito && npm ci && node src/cli.js context "your task" --path .