Voyager Agent

io.github.dir-aiPublished by GitHub account dir-aiv0.22.0Updated Oct 27, 2026

One universal Voyager: name a goal; it activates senses (repo, net) and runs a live mission.

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Local MCP server that runs read-only "missions" over a repo, an authorized host, or a page, returning a linked claim graph and conclusion.

What you can do
  • Run a goal-driven mission through a single run_mission tool and get back the full claim graph
  • Inspect a local repository: orient in the code and vet dependencies
  • Audit one host you own, read-only and fail-closed, when explicitly marked authorized
  • Observe a static page's HTML for a read-only check
  • Combine senses in one mission, with cross-sense contradictions, causal chain and the most informative next probe
  • Optionally plug in an LLM brain through a model-agnostic completion function
When to use it
Useful when you want an assistant to orient in a codebase, flag dependency or configuration risk, or do a light read-only exposure check on a host you own, and to see the evidence and confidence behind each finding rather than a single verdict.
Requirements
Runs as a local stdio process, installed from the npm package @dir-ai/voyager-agent (Node.js). No environment variables, headers or authentication are declared. Host auditing requires an explicit authorized flag and a single host. Network access is needed for host and page sensing.
Before you install
Host auditing is restricted to a single host you are authorized to scan; cloud-metadata targets are blocked. All senses are read-only and remediation is withheld, never applied. If you wire in an LLM brain, mission content is sent to that model endpoint. Findings are confidence-rated observations, and a failed sense is reported as an unknown rather than a clean result.

Installation

In SourceWeft

  1. Open Voyager Agent in the dashboard and add it to a workspace.
  2. 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

@dir-ai/voyager-agent

The one universal Voyager. A thin, model-independent orchestrator that turns the modular Voyager senses — voyager-repo (code), voyager-net (hosts), and the cognitive contract that binds them — into a single agent. You name a goal; Voyager activates the senses it needs, runs a live mission, links the evidence into one graph, and concludes.

It is composition, not a monolith. The agent never absorbs the senses — it calls the published organs and adapts what they see into the shared CognitiveClaim substrate. The reasoning model is a swappable seam (Brain); a rule-based brain ships so it runs with no LLM at all.

Sensing is autonomous. Acting is not. Every sense here is read-only. Any remediation a mission surfaces is carried as a consent-gated, withheld action and is never applied by this orchestrator.

Install

bash
npm i -g @dir-ai/voyager-agent

Use

bash
# Orient in a repo and flag risk (voyager-repo)voyager-agent mission "audit this project" --repo .
# Audit ONE host you own (voyager-net — fail-closed, needs --authorized)voyager-agent mission "check my server's exposure" --host example.com --authorized
# Observe a live page (voyager-browser — read-only, static HTML)voyager-agent mission "check my landing page" --url https://example.com
# All three senses in one mission; vet 10 dependencies; machine-readablevoyager-agent mission "full audit" --repo . --host example.com --authorized --url https://example.com --check-deps 10 --json

Senses fan out in parallel and are resilient: a sense that errors (or even throws) becomes a low-confidence, flagged observation — it never crashes the mission or discards a sibling sense's good result.

The mission then re-plans: it picks the single most informative next probe (by information gain) and executes it, bounded by maxRounds. How a probe is executed is an injectable dispatch seam (the model decides); the safe default only ever re-reads (deepens repo dependency-vetting) and never acts. A verify claim closes the mission so state().satisfied is meaningful.

Voyager — one agent, one entry.goal: "orient in this repo and flag risk"
  👁 observe  [repo]  (70% · moderate)     @dir-ai/[email protected] — The one universal Voyager…     ↳ [low] no-lockfile: no lockfile — installed versions are not pinned/reproducible  🧠 infer  [memory]  (70% · moderate)     repo observed; 0 high/critical signal(s). No high-severity issue surfaced.
next probe: [repo] open src/index.ts

As an MCP server

One tool, run_mission — describe a goal, get back the full claim graph.

bash
voyager-agent mcp            # stdio
json
{  "command": "voyager-agent",  "args": ["mcp"]}

As a library

ts
import { runMission, DeterministicBrain, type Brain } from '@dir-ai/voyager-agent'
const { mission } = await runMission(  'audit this repo and my host',  { repoPath: '.', host: 'example.com', authorized: true /* your own host */ },  Date.now(),)
for (const claim of mission.allClaims()) console.log(claim.operation, claim.sense, claim.verdict)console.log(mission.state().bestNextProbe)   // the most informative next stepconsole.log(mission.state().contradictions)  // where two senses disagree

Bring your own model

The Brain interface is the whole point — it's where an LLM plugs in without touching the senses, the memory, or the mission machinery. A ready-made LlmBrain ships: give it one model-agnostic complete() function and it plans and synthesizes through the model. Wire Claude, a local server, or any OpenAI-compatible endpoint — Voyager never depends on a specific SDK.

ts
import { runMission, LlmBrain } from '@dir-ai/voyager-agent'
const brain = new LlmBrain({  // Return the model's text for these messages — that's the whole dependency.  async complete(messages) {    const res = await myModel.chat(messages)   // Claude, local, OpenAI-compatible…    return res.text  },})
await runMission('audit this repo and my host', { repoPath: '.', brain }, Date.now())

LlmBrain is fail-safe: if the model errors or returns unparseable output, it degrades to the built-in rule-based brain for that step — a bad completion can never take a mission down, only make it less clever once. You can also implement the Brain interface directly for full control.

How it works

        intent ─▶ Brain.decompose ─▶ goals                        │          ┌─────────────┼───────────────┐          ▼             ▼                ▼   voyager-repo    voyager-net      (more senses…)     scout()         scan()          │             │          ▼             ▼      adapters: brief ─▶ CognitiveClaim          │             │          └──────▶ MissionGraph ◀───────┘                 (contradictions, causal chain,                  best-next-probe, memory)                        │                        ▼              Brain.synthesize ─▶ conclusion

Each sense produces a CognitiveClaim; the MissionGraph links them — auto-detecting cross-sense contradictions, assembling the causal chain, and surfacing the single most informative next probe by information gain. A sense error becomes a low-confidence observe claim flagged with the unknown — never a false "all clear".

The Voyager family

PackageSenseWhat it does
@dir-ai/voyagerwebverified-internet retrieval, OSV-gated
@dir-ai/voyager-repocodeorient in a repository, vet dependencies
@dir-ai/voyager-nethostsauthorized, read-only host audit
@dir-ai/voyager-contract—the cognitive contract the senses speak
@dir-ai/voyager-agentallthe one agent that composes them

Safety

  • Read-only senses. Nothing is installed, executed, or mutated on your systems.
  • Fail-closed host audit. A host is only scanned with --authorized / authorized: true; single host only (no ranges/URLs), cloud-metadata blocked.
  • Consent-gated action. Remediation is described and withheld, surfaced as an unknown on the claim — this orchestrator never applies it.
  • Honest uncertainty. Confidence and strength are explicit; a sense error is a flagged unknown, not a clean verdict.

License

MIT © dir-ai

Source: README.md at commit 206eed5

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.22.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