All projects

The graph you drew doesn't match the thing you shipped.

Agent Builder Studio
Available now · Node 22+ · MLX (Apple Silicon) or Ollama

One agent spec drives the canvas, the run, and the package.

A visual canvas authors and runs a governed agent spec live, node by node; a deterministic engine packages that same spec — MLX-first, Ollama fallback.

$ git clone https://github.com/tyroneross/agent-builder-studio.git && cd agent-builder-studio && npm install && npm run dev

Node 22+ · public repo · git clone + npm install to run

$ npm run test:full-package --workspace agent-studio
> node scripts/test-full-package.mjs
ok - full package emits 40 files (subset emits 10)
ok - package contains agent.yaml/manifest.json/tools.json/system-prompt.md/README.md
ok - package includes setup/ runtime/ evals/ memory/ layers
ok - v7 authored node tools/permission flow into the package (agent.yaml)

all 4 full-package checks passed
01Studio canvas

Design and run the same spec, live

The visual canvas authors a governed agent spec and runs it node by node with per-node streaming — no separate "test harness" that drifts from what you drew.

02Packaging engine

One spec, a real shippable bundle

A deterministic engine (Builder) turns the spec into the full install package — agent.yaml, manifest.json, tools.json, system-prompt.md, README.md, plus setup/, runtime/, evals/, and memory/ layers. Not a config stub — a 40-file bundle, verified by a deterministic test on every change.

03Local-first model lanes

MLX first, Ollama fallback, cloud only if you ask

Model calls try MLX on your machine first, fall back to Ollama if MLX is down, and only reach a cloud provider if you've set a key and both local lanes failed. The cascade order is the same local-first posture across every app in the monorepo.

04Single source of truth

The spec is real; everything else is derived

Canvas layout, run transcripts, and the generated package are rebuildable projections of the agent spec — never the other way around. Change the spec and every derived layer can be regenerated from it.

  • Local model lanes assert localhost-only — MLX and Ollama URLs can't point off-box
  • Cloud models run only when you provide a key and both local lanes have failed, never by default
  • Project state stays in your browser; run artifacts write to a local folder you choose
What does "local-first" actually mean here?

Model calls try MLX on 127.0.0.1:8080 first, fall back to Ollama on localhost:11434 if MLX is down, and only escalate to a cloud provider if you've set an API key and both local lanes failed.

What's actually in the packaged output?

The full export is a ~40-file bundle — agent.yaml, manifest.json, tools.json, system-prompt.md, README.md, plus setup/, runtime/, evals/, and memory/ layers — checked by a deterministic test, not just a config stub.

Is this one app or several merged together?

It consolidates two earlier projects — Agent Builder (the packaging workbench) and Agent Studio (the runtime canvas) — plus a standalone Chief-of-Staff app, merged via git subtree with history preserved. The repo is mid-merge; apps/agent-studio is the canonical entry point today.

What do I need to run it?

Node 22.13+ and `npm install` at the repo root. MLX needs Apple Silicon; Ollama runs cross-platform. Clone the repo, run `npm run dev`, open localhost:3030.

From the maker

I had three disconnected tools for the same agent — a whiteboard to sketch the graph, a script to run it, and a separate build step to package it — and the truth drifted between all three. The graph I drew would stop matching the code I ran, which would stop matching what I shipped.

Agent Builder Studio is one app for that whole design → run → package lifecycle. A visual canvas authors and runs a governed spec live, node by node, and that same spec feeds a deterministic engine that packages it for reuse. The spec is the one source of truth — canvas layout, run transcripts, and the generated package are all derived, rebuildable projections, never the other way around. It’s local-first everywhere it can be: MLX on your machine first, Ollama as fallback, and cloud only if you hand it a key and both local lanes are down.

$ git clone https://github.com/tyroneross/agent-builder-studio.git && cd agent-builder-studio && npm install && npm run dev

Node 22+ · public repo · git clone + npm install to run