Portable AI agents

An entire AI agent.
Model and runtime included.
Ready for offline deployment.

Package the agent, sealed model weights, NexusRun executable, and an exact verified llama.cpp runtime for a supported Linux target. Carry the bundle to a clean machine and run it without installing a separate inference engine.

No Docker requirement. No engine download at the destination. Secrets stay outside the artifact, and local prompts do not have to leave your network.

Shipping to multiple computers? Cloud Fleet adds a browser dashboard, tested canary updates, and rollback.

Build it
git clone https://github.com/verdictlayer/nexusrun cd nexusrun CGO_ENABLED=0 make build ./bin/nexus --version

Build with Go 1.26.5+, Git, and Make. Run the beginner demo with Ollama.

Download NexusRun and Studio → Set up your first local helper →
11 MB binary Verified runtime bytes Offline bundle Linux x86-64
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 external network. A deployment bundle carries NexusRun, sealed weights, the exact llama.cpp runtime, its integrity metadata, and licenses together.

Verified: safe runtime import, target validation, bundle verification, and a relocatable launcher, with real inference on a clean Linux x86-64 host.

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 manages llama.cpp underneath the agent runtime and adds repeatable packaging, validation, deployment, and straight answers about what was actually tested.

NexusRun Cloud Fleet

One local agent.
A safer rollout to every host.

See your enrolled computers and manage agent updates from the browser. Your machines still run the models and keep their active copy when disconnected.

Start with canaries

Try a release on a small group first. The rest of the channel waits until those hosts pass their tests and activate it.

Test on every host

Every computer runs the included acceptance suite through its real local CPU runtime before activating the exact agent and model bytes.

Keep a way back

A rejected candidate pauses further activation. Pause a rollout yourself or start a tested rollback from the Fleet dashboard.

Fleet uses enrolled Linux x86-64 CPU hosts with a Fleet-enabled NexusRun build and a compatible managed runtime. Hosts check in over outbound HTTPS; permanently air-gapped deployments use offline bundles and physical transfer.

Get started

Your first local helper.

Start from scratch: install Ollama, download a small model, and give your helper its own instructions. The walkthrough includes every command and the complete YAML.

Download a small model

ollama pull qwen2.5:0.5b

About 400 MB. The first-helper guide starts with installing Ollama and NexusRun on Linux.

Ask your helper

./bin/nexus run ./plain-helper --backend ollama -p "What is a backup?"

Create the guide's nexus.yaml, then run it through your local Ollama service. Edit the instructions to change its style.

Take it offline

./bin/nexus build ./plain-helper --seal -o plain-helper.nx

Sealing includes the model. The offline guide adds NexusRun and a pinned llama.cpp runtime in one complete Linux bundle, ready to copy to a compatible offline computer.

Follow the walkthrough → Fleet management for your team →

The runtime is free forever. NexusRun Cloud stores your units privately and coordinates test-gated releases to enrolled hosts.