
Voyager
io.github.dir-aiPublished by GitHub account dir-aiv1.4.0Updated Nov 10, 2026
Cited, OSV-gated, injection-hardened web briefs for coding agents. Verified, never raw web.
Overview
Voyager gives coding agents cited, vulnerability-gated web briefs and package checks instead of raw web content.
- What you can do
- Voyager turns a query into a cited, confidence-scored brief that combines package verification, GitHub discovery, canonical docs, and open-web search. Its check tool applies a fail-closed OSV vulnerability gate plus provenance, license, and age signals, and can optionally reproduce a package install and smoke-import inside an isolated container. Fetched text is stripped of instruction-shaped payloads and framed as untrusted evidence. It ships as a CLI, library, and MCP server with tools check_package, retrieve, discover_repos, and fetch_docs.
- When to use it
- Use it when a coding agent needs to research packages or libraries and you want verified, cited results rather than raw web pages. It also works as a CI gate that fails a build when an agent picks a vulnerable, deprecated, or non-existent dependency.
- Requirements
- Runs locally over stdio, typically via npx @dir-ai/voyager mcp or the Docker image. Node.js is needed for the npm package. The Tier-A core (npm, PyPI, OSV, unauthenticated GitHub) works with no keys; optional Tier-C search providers need keys such as TAVILY_API_KEY or GITHUB_TOKEN, or a custom key resolver. The isolated twin requires a container runtime.
Installation
In SourceWeft
- Open Voyager in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
voyager
The verified-brief organ for coding agents.
An AI coding agent that reaches the open internet gets a raw, unsigned, possibly-poisoned blob and feeds it straight into its own prompt. voyager sits in front of that: it turns a query into a cited, confidence-scored, OSV-gated, injection-hardened brief — the only surface your model ever sees.
Every claim carries its provenance and a confidence signal. Package recommendations pass a fail-closed OSV vulnerability gate, surface build provenance (npm SLSA attestations) when present, and can be reproduced in a disposable twin — install + smoke-import run inside a hardened, rootless, network-isolated container (never on the host). That proves the package installs and its entrypoint loads; it is not a safety proof. All fetched text is stripped of instruction-shaped payloads (multilingual + base64 + markdown /HTML vectors) and framed as untrusted evidence the model must analyze, never obey.
- check — is this package safe to use? Registry facts + OSV gate (fail-closed)
- provenance/license/age supply-chain signals + optional isolated twin. Exit codes: 0 ok · 1 rejected (unsafe) · 2 tool/usage error (no verdict).
- brief / retrieve — a cited brief combining package verification, GitHub discovery, canonical docs, and open-web search, each cross-referenced.
- security by construction — one egress allowlist, https-only, streamed size cap, injection-strip + evidence framing. Zero-network unless you query.
CLI, library, and MCP server.
Install
CLI
check is a natural CI gate: fail the build if an agent picked a vulnerable,
deprecated, or non-existent dependency.
Library
MCP server
Tools: check_package, retrieve, discover_repos, fetch_docs.
Docker
Tiers & trust
Keys are optional: the Tier-A core (npm/PyPI/OSV, and GitHub unauthenticated) is
zero-key. Tier-C providers each no-op without their key. Set GITHUB_TOKEN,
TAVILY_API_KEY, etc., or inject a resolver.
Security posture
One egress allowlist (a fixed set of public API hosts), https-only, redirect: error, a streamed byte cap that aborts an oversized body mid-download, and
an injection-strip that removes role-hijacks / chat-template tokens / zero-width
& bidi characters, decodes-and-rescans base64, neutralizes markdown images and
HTML comments, and matches instruction payloads across several languages. The
framing is the real defense — the strip keeps it from being trivially escaped.
The twin runs the package's code only inside a hardened, network-isolated,
read-only, non-root container; with no container runtime it refuses to run
(returns unsupported) rather than execute on the host. See SECURITY.md.
Cache
Idempotent Tier-A facts (npm / PyPI / OSV) are cached in-process and on disk
under ~/.voyager/cache (content-addressed, TTL'd) so repeated checks are fast,
survive across runs, and lean less on the network. No secret is ever written
(auth headers are never part of a cache key or value). VOYAGER_NO_CACHE=1
disables it; VOYAGER_CACHE_DIR relocates it.
Roadmap
deps.dev-backed multi-ecosystem facts (crates / Go / RubyGems / Packagist), typosquatting detection, PyPI/cargo twins. Contributions welcome.
License
MIT © dir-ai
Source: README.md at commit e615413
Tools
0Version history
1- v1.4.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts