voyager-repo
Voyager's repo-penetration organ โ the eyes an AI agent sends ahead before it
touches an unknown repository.
Voyager penetrates the web (@dir-ai/voyager),
the repo (this), and โ next โ networks. Repotector is the repo's guardian
that receives and controls; Voyager Repo is the agent's counterpart that reaches
outward and reports back, safely.
npx @dir-ai/voyager-repo scout .
npx @dir-ai/voyager-repo scout . --check-deps 10
What it does
Like how Claude or Codex orient themselves in a new codebase โ but as a safe,
repeatable tool. scout produces an orientation brief:
- purpose โ inferred from the manifest/README, framed as untrusted (owner
text is injection-stripped before it reaches your model)
- structure โ languages, key dirs (with role guesses), entrypoints
- build โ the install/build/test/run commands (detected, never run)
- health โ git signals: commit count, bus factor (top-author share),
recency, churn hotspots
- dependencies โ composes with Voyager to give each dependency a real
OSV-gated verdict (
--check-deps N)
- risks โ install hooks (RCE on
npm install), committed secrets, missing
lockfile, large opaque binaries
- approach plan โ see below
The approach protocol (the point)
A careful newcomer, not a bulldozer:
- Handshake with Repotector if the repo carries one (
.repotector/) โ read
its active zones/leases and respect them before editing.
- Fail-closed permissions. Everything is read-only by default. Installing
dependencies, executing code, or cloning a remote is withheld until you
consent (
--allow-install / --allow-exec / --allow-clone) โ and execution,
when allowed, belongs in a sandbox.
- An orderly tour โ the brief ends with the ordered next steps a well-behaved
agent should take, so it explores on purpose instead of poking at random.
Guarantees
- Nothing in the target is executed on the host.
scout reads files and git;
it never runs the repo's code. (Execution, when consented, runs in Voyager's
hardened container.)
- Every owner-controlled byte is untrusted โ README, description, commit
messages, the Repotector ledger โ injection-stripped and framed before your
model sees it.
- Exit codes:
0 oriented ยท 1 oriented + HIGH-risk finding(s) ยท 2 tool error.
MCP
Tool: scout_repo โ same orientation, safe-by-default (invasive flags off).
Library
import { scout } from '@dir-ai/voyager-repo'
const brief = await scout('/path/to/repo', { checkDeps: 10 })
if (brief.risks.some((r) => r.level === 'high')) { }
Status
0.x โ Phase 1 (repo orientation) of the Voyager "senses" line. Roadmap:
capability analysis of a package's tarball, PyPI/cargo/go dependency vetting,
and the net organ (cloud/infra introspection).
License
MIT