Portable AI agents

An entire AI agent
in one small file
that runs on your hardware.

Its model, prompt, tools and credentials become a single portable package. Hand it to a colleague, push it to a fleet of kiosks, or carry it to an air-gapped machine on a USB stick — and it just runs.

No Docker. No Python environment. No per-token bill, and no prompt leaving your network.

Build it
git clone https://github.com/verdictlayer/nexusrun cd nexusrun && make build

Needs Go 1.26+. Nothing else.

11 MB binary Zero dependencies Works offline Runs on a Pi
See it run

Not a chatbot. An agent that does the work.

Here it is answering a question by going and finding the answer — on a laptop, with no network and no API key. Real output, not a mockup.

terminal 100% local
nexus run notes-agent -p "When does the launch window open?"

running notes-agent:1.0.0 on CPU via llama.cpp/server
starting MCP server notes
  notes v1.0.0 — 2 tool(s): notes__list_notes, notes__read_note

notes__list_notes({})
  ✓ notes__list_notes — launch.txt sites.txt
  → notes__read_note({"name":"launch.txt"})
  ✓ notes__read_note — The launch window opens on 14 March 2027.

The launch window opens on 14 March 2027.

— 54 tokens · 7.0 tok/s · 2 tool call(s) over 3 turns
# nexus.yaml — the whole agent
apiVersion: nexusrun.dev/v1
name: notes-agent
version: 1.0.0

models:
  # already pulled with Ollama? reuse it
  - source: ollama:llama3.1:8b

entrypoint:
  type: chat
  system_prompt: |
    Answer using the note tools.

mcp_servers:
  notes:
    # fetched, pinned and sandboxed for you
    source: github:acme/notes-mcp#v1.0.0
    command: ["node", "server.js"]
    sandbox:
      allowed_paths: [/home/me/notes]

secrets:
  # declared here, never stored here
  - name: API_KEY
    required: true

One readable file, not a Dockerfile

Everything that decides how the agent behaves is in front of you. It points at the model rather than containing it, so the file stays about a kilobyte instead of five gigabytes.

Its tools come with it

Tool servers are dependencies, pinned like any other. Nobody has to install anything first, and each one is confined by the kernel to the paths you listed — undeclared means denied.

Secrets stay out of the artifact

The file says which key it needs. The value lives encrypted on the machine that runs it, so the agent is safe to commit and safe to share.

Why it's different

It's built for machines you don't control.

Someone else's laptop, a rack of mixed hardware, a kiosk in a shop, a box that has never seen the internet. That is where agents actually have to work, and where the usual assumptions quietly fail.

It runs where your data already is

On the machine that holds the records, behind the VLAN, or on a box with no network at all. Seal the model in and carry one file across. Nothing is uploaded, and running it more often costs nothing extra.

Verified: imported to an empty machine and generated with no network at all.

It won't quietly use the wrong one

A good GPU the installed runtime was never built to drive is the normal case, and most tools fall back to the CPU without a word. This one says so — then scores the agent on that machine, because answers change with the hardware and the model, not just the prompt.

Verified: a model that scored 0/3 there was rejected and a better one chosen, automatically, per machine.

Safe to run someone else's agent

Read the file, see exactly what it will reach for, then run it knowing the kernel holds it to that. Its tools, its files, its network — nothing it did not declare is possible.

Verified from inside the sandbox: no stray file writes, no outbound connections.

NexusRun doesn't replace llama.cpp or Ollama — it runs on top of them. What it adds is the packaging, the sharing, and the straight answers.

Get started

Three commands.

Create it

nexus init my-agent --model llama3.1:8b

Writes one small YAML file. Edit the prompt to make it yours.

Run it

nexus run ./my-agent -p "hello"

Straight from the folder, so you can change the prompt and go again.

Send it anywhere

nexus push my-agent:0.1.0 ghcr.io/you/my-agent:0.1.0

A few hundred bytes, to any registry you already use. No network at the other end? nexus build --seal packs the model in so it travels on a USB stick.

Hosting for your team →

The runtime is free forever. NexusRun Cloud hosts and signs your units for teams shipping to real fleets — early access is open.