Skip to content

The shell tool performs no network call, evaluates no generated text and deletes nothing recursively; its one declared request is the loopback peer probe

Majordomus is local. No shell command opens a network connection except the loopback peer probe (lib/context.sh), no text that came from a worker, a model, a handover body or a policy file is ever passed to eval or a shell, and no command deletes recursively outside a temporary directory it created itself. Writes are confined to .ai/ and the projection targets the policy names.

declared statusdeclared status: guaranteed Declared deterministic and blocking, implemented, and naming the behavioural test that is to prove it. Whether a recorded run supports it is the evidence verdict, shown beside it.

recorded evidencerecorded evidence: not run Declared guaranteed, and not supported by a recorded run: the test is named, and no passing run of the current inputs is recorded. how evidence is recorded

What it means

Majordomus is local. No shell command opens a network connection except the loopback peer probe (lib/context.sh), no text that came from a worker, a model, a handover body or a policy file is ever passed to eval or a shell, and no command deletes recursively outside a temporary directory it created itself. Writes are confined to .ai/ and the projection targets the policy names.

How it works

There is no behavioural way to prove the absence of a network call, so this claim is backed by a source scan: test/cases/08_no_forbidden_constructs.sh reads bin/majordomus, every module in lib/ and the provider templates and fails on eval, network clients (curl, wget, nc, ssh, scp), /dev/tcp, recursive deletion of the repository, of the .ai/ layer or of the distribution, and any redirect into a path variable outside the allowed set. The scan is deliberately crude and deliberately in the test suite, so a change that introduces one of these constructs fails CI.

How to see it

bash test/run.sh 08_no_forbidden_constructs
grep -rnE 'curl|wget|eval ' bin lib   # nothing

What it does not cover

A source scan is not a sandbox. It proves the shipped code contains none of these constructs; it does not constrain what a hook you write yourself does.

The Rust executable is not covered by this scan, and it does use the network where you ask it to. majordomus serve and mcp bind an HTTP server, on loopback unless --host or MAJORDOMUS_HTTP_HOST names another interface; there, a caller beyond loopback may only read, or send a signed mesh message (403 otherwise, ADR 0126). The mesh links the runtimes the policy enrols. prs refresh and the integration commands ask the forge through gh when you run them. None of these calls a model or sends telemetry.

Why it exists

The security commitments — local only, no telemetry, no eval, no credential handling, confined writes — are only worth stating if something fails when they are broken. The scan is that something.

Detail rendered from docs/claims/no-network.md.

From the statement to the proof

  1. 1 · the public statement

    The shell tool performs no network call, evaluates no generated text and deletes nothing recursively; its one declared request is the loopback peer probe

    Made on Install.

  2. 2 · the canonical claim

    no-networkdeclared status: guaranteed in docs/CLAIMS.yaml

    Defined in read it on this site · docs/DESIGN.md

  3. 3 · the implementation

    bin/majordomus

  4. 4 · the test and the scenarios

    Test: test/cases/08_no_forbidden_constructs.sh

    Executed in Gate CI on the tool itself, with an exit code that is a contract, Hand the repository to someone who cannot clone it.

  5. 5 · the recorded runs

    recorded evidence: not run how evidence is recorded

Verify it yourself

The test runs in a disposable temporary repository and asserts the behaviour, not a string in the source.

from a clone of the repository
bash test/run.sh 08_no_forbidden_constructs

Searches the titles and descriptions of every page this site publishes.