Zordon

io.github.piotrkowalczukPublished by GitHub account piotrkowalczukv0.28.1Updated Nov 4, 2026

Supervise a local dev stack — databases, brokers and services declared in an Alphasfile — over MCP.

VerifiedSTDIODesktop onlyCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

Supervises a local dev stack of databases, brokers and services declared in an Alphasfile, letting an assistant start, inspect and provision it over MCP.

What you can do
  • Bring the declared stack up, stop it, and check what is running across the chain
  • Create parallel isolated workspaces and run named provisions or their clean teardown
  • Inspect services, readiness and logs, with terse structured output meant for agents
  • Drive every zordon command and every declared provision as an MCP tool
When to use it
Use it when a project's local dependencies (databases, brokers, proxies, services) are declared in an Alphasfile and you want an assistant to stand the stack up, check it and run setup steps while iterating on code.
Requirements
A local zordon installation with the zordon, alpha and tommy binaries on the PATH, plus an Alphasfile in the project tree. The MCP client launches the server from the project directory, or ZORDON_HOME is set. Optional HTTP transport listens on a local address.
Before you install
The stack runs as ordinary host processes, not containers, so services bind real ports and write to the host. The HTTP transport endpoint is stated to be unauthenticated. Provisions and start/stop/clean change local state, and the assistant can run any provision declared in the Alphasfile.

Installation

In SourceWeft

  1. Open Zordon 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

Zordon

[Go Reference] [Go Report Card] [CI] [License: GPL v3]

The local stack your inner loop runs against — databases, brokers, proxies and services as fast, disposable host processes, declared once and supervised together. No containers.

Zordon is a supervisor for the local stack your code runs against — the databases, brokers, proxies and services that have to be alive for your code to be exercised for real. It runs them as ordinary host processes instead of containers, declared once in an Alphasfile and supervised together, so standing the stack up, duplicating it, and throwing it away are all cheap.

Three goals shape every decision. Low latency — standing the stack up and re-running sit inside the loop, not around it; iteration shouldn't wait on infrastructure. Resourcefulness — per-stack overhead stays small enough that many agents run side by side, each with a stack real enough to evaluate against rather than a wall of mocks. Guardrails — the Alphasfile doubles as a contract, so the MCP server hands an agent only a narrow, declared surface: bring the stack up, inspect it, run a provision you named, and work through that interface instead of improvising against the host.

Why not containers? Code is increasingly written in a loop — change something, run the real stack against it, read the result, go again, hundreds of times an hour. Containers buy isolation by paying full cold-start and idle-overhead cost on every run: right for production, wasteful for a loop. Zordon takes the other side, recovering isolation from per-run workspaces instead of images — so a second stack beside yours, or a tenth, is a non-event.

Declare the whole stack in one Alphasfile:

hcl
service "go" "nats" {  git {    url = "github.com/nats-io/nats-server"    tag = "v2.14.0"  }
  vars = { client = net::pickport() }   # grab a free port, no clashes  arguments { values = { main = { p = self.vars.client } } }}
sh
zordon start   # resolve, build, bring it up, stream logs until everything is READY

Features

  • No containers, no daemon. Your databases, brokers, proxies and services run as plain supervised host processes — nothing to image, mount or register.
  • Polyglot toolchains. Go, Rust, Ruby, Node.js and Java (Maven/Gradle) services built straight from a git URL or local source; native packages (Redis, PostgreSQL, etcd, …) provisioned through mise.
  • One manifest. The whole stack — source, build, run, env, readiness, logs — declared in a single Alphasfile.
  • Dynamic configuration as a graph. Values are functions, not strings: net::pickport() picks a free port, fs::tmp()/fs::hash() give per-run paths, and services reference each other (service.go.caddy.vars.http) with zero hardcoded wiring. → docs
  • Workspaces. zordon workspace create x stands up a second, fully isolated copy of the entire stack — own ports, own dirs — an agent's sandbox beside yours, no port-mapping. → docs
  • Federation. Alphasfiles chain by directory position: a project sits below shared infra instead of importing it. Move it in the tree and its environment recomputes. → docs
  • Readiness-aware bringup. HTTP and exec readiness checks over a dependency graph; zordon start returns the moment every service is READY, then keeps the stack alive in the background.
  • Convergent re-runs. Re-running costs only what actually changed — no blanket teardown and rebuild.
  • Provisions. One-off setup (migrations, seeding, topic creation) declared per service, run on demand, with zordon clean for teardown.
  • Agent-friendly output. --agent emits terse, structured logs; output is kept signal-dense because when a model reads your logs, tokens are the budget.
  • MCP server. zordon mcp exposes every command — and every provision — as MCP tools, so an agent can drive the whole stack. → docs
  • Guardrails for agents. The Alphasfile plus the MCP surface form a narrow, declared interface between agent and stack — it runs the named provisions you defined, not an open shell, so it can't improvise its way around your setup.
  • No runtime dependencies. Three static Go binaries — zordon, alpha, tommy — and nothing else to install, image, or register.

Documentation

Full docs: https://zordon.io (source in docs/, built with MkDocs Material).

Installation

Homebrew (macOS):

sh
brew install piotrkowalczuk/tap/zordon

A release tarball (macOS and Linux, arm64 and amd64) from Releases:

sh
tar -xzf zordon_<version>_<os>_<arch>.tar.gz -C ~/.local/bin zordon alpha tommy

Or from source, if you have a Go toolchain:

sh
go install github.com/piotrkowalczuk/zordon/cmd/...@latest

Every variant installs the same three binaries — zordon, alpha, and the tommy reaper. Keep them in one directory and make sure that directory is on your $PATH: zordon finds alpha via $PATH, and alpha finds tommy only as a sibling of its own executable. See Binaries and layout.

Quick start

Create an Alphasfile (see examples/simple), then:

sh
zordon start              # spawn alpha, push config, stream bringup logszordon status             # what's running across the whole chain right now?zordon stop               # ask alpha to shut its children down and exitzordon clean              # run each provision's clean teardown (stack stopped)zordon workspace create x  # a parallel, isolated copy of the stack

See the docs for everything else.

Use with Claude (MCP)

zordon mcp runs an MCP server, over stdio by default or over HTTP with --transport=http. It exposes every zordon command — and every provision — as a tool, so an agent can drive your stack and run provisions on demand.

The fastest path is the Claude Code plugin — no manual config:

sh
/plugin marketplace add piotrkowalczuk/zordon/plugin install zordon@zordon

This registers the zordon mcp server and a skill nudging the agent toward it automatically; see the install how-to.

For other MCP clients, or without the plugin:

The MCP client launches the server; you don't run zordon mcp yourself. With Claude Code, register it from your project directory:

sh
claude mcp add zordon -- zordon mcp

Or add it to your client's MCP config (e.g. .mcp.json):

json
{ "mcpServers": { "zordon": { "command": "zordon", "args": ["mcp"] } } }

The server resolves the chain from its working directory, so launch the client from the project tree (or pass -e ZORDON_HOME=…). Provisions run inside the live alpha, so zordon start first — or let the agent call the start tool.

To let an agent confined to a container or sandbox drive a host-side stack, serve it over HTTP instead — the client then needs only a URL, with no zordon binary inside the box:

sh
zordon mcp --transport=http --listen 127.0.0.1:7391

See the how-to; note the endpoint is not authenticated yet.

The server advertises its purpose to the agent via MCP instructions (when to reach for these tools), so it should pick them up on its own. To nudge it harder in a zordon-managed repo, add a line to your CLAUDE.md (or AGENTS.md): "this project's local stack is managed by zordon — use the zordon MCP tools to bring it up, inspect it, and run provisions."

See the zordon mcp reference and how-to.

License

GNU General Public License v3.0, see LICENSE.md.

Source: README.md at commit 383e0a9

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

8
  1. v0.28.1LatestNov 4, 2026
  2. v0.28.0Nov 3, 2026
  3. v0.26.0Oct 30, 2026
  4. v0.24.0Oct 29, 2026
  5. v0.22.3Oct 6, 2026
  6. v0.21.0Oct 6, 2026
  7. v0.20.0Sep 28, 2026
  8. v0.19.0Sep 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