+{"type":"data","nodes":[null,{"type":"data","data":[{"kind":1,"product":2,"release":61,"code":117},"product",{"hero":3,"metrics":7,"install":20,"quickstart":31,"features":32,"pairs":51,"note":56,"plain":57},{"kicker":4,"title":5,"sub":6},"THE SOUS-CHEF — CONTROL PLANE","One console and API for your whole local agent stack","A management console for the Null stack: one binary with a built-in web dashboard and CLI that installs NullClaw agents, NullBoiler workflows, NullTickets task queues and NullWatch tracing, keeps them running with health checks and restart backoff, and updates them with rollback. The same HTTP API also fronts the agents themselves — chat, memory, cron jobs and logs all go through the hub. Everything stays on your machine — all state lives in ~/.nullhub, nothing goes to a hosted service.",[8,11,14,17],{"value":9,"label":10},"108","API routes, self-described",{"value":12,"label":13},"2.4–2.9 MB","binary, web UI embedded",{"value":15,"label":16},"0","external dependencies",{"value":18,"label":19},"726","test blocks in the source tree",{"primary":21,"alts":24},{"label":22,"code":23},"Docker","docker run --rm -p 19800:19800 -v nullhub-data:/nullhub-data ghcr.io/nullclaw/nullhub:latest",[25,28],{"label":26,"code":27},"Prebuilt binary","curl -fL https://github.com/nullclaw/nullhub/releases/latest/download/nullhub-macos-aarch64.bin -o nullhub\nchmod +x nullhub && ./nullhub",{"label":29,"code":30},"Build from source","zig build\n./zig-out/bin/nullhub","Start the server, then add components from the same binary. Every command other than `serve` is an HTTP client to the running server, and the terminal wizard and the web UI run the same manifest-driven flow.\n\n```bash\n# start the server and open the dashboard\nnullhub\n# → http://nullhub.localhost:19800\n\n# add components (terminal wizard)\nnullhub install nullclaw\nnullhub install nullwatch\n\n# run and inspect\nnullhub start-all\nnullhub status\n```",[33,36,39,42,45,48],{"title":34,"body":35},"One API behind everything","The web dashboard and the CLI drive the same HTTP API — every subcommand except serve is a thin client to the running server. All 108 routes describe themselves at /api/meta/routes: list them with `nullhub routes --json`, call any of them with `nullhub api`. Proxies for NullBoiler, NullTickets and NullWatch make the hub a single API front door for the whole stack.",{"title":37,"body":38},"Agent gateway proxy","Talk to managed NullClaw instances through the hub: chat and streaming chat, agent-to-agent (A2A) calls, audio transcription, memory read/write and reindex, cron jobs with pause/resume/run-now, and skill installs — all per instance, all on one port.",{"title":40,"body":41},"Provider and channel vaults","Store LLM provider keys (17 providers, from Anthropic and OpenAI to Ollama and OpenRouter) and messaging channel credentials (18 channel types, from Telegram to Signal) once, hub-wide. NullHub validates them live and syncs them into instance configs.",{"title":43,"body":44},"Manifest wizard, verified installs","Add a component through a guided setup flow — in the terminal or in the browser. Each component ships a nullhub-manifest.json that tells NullHub how to install, configure, launch and health-check it. Release downloads are SHA256-checked and deleted on mismatch.",{"title":46,"body":47},"Supervision, updates, rollback","A supervisor thread health-checks instances over HTTP every 15 seconds, restarts crashes with capped backoff, and re-adopts running instances after a hub restart. `nullhub update` migrates config and restarts the previous binary if the new one fails. Mission Control in the dashboard records operational state and can save, replay and recover incident scenarios.",{"title":49,"body":50},"Agents that run the hub","A bundled skill, nullhub-admin, installs into managed NullClaw workspaces and teaches the agent to administer NullHub itself: discover the API with `nullhub routes --json`, then act with `nullhub api`.",[52,53,54,55],"claw","boiler","tickets","watch","Pre-1.0 and calendar-versioned (v2026.x.y): config and CLI may change between releases. OS service install covers macOS (launchd) and Linux (systemd); Windows binaries ship, but `nullhub service` is not supported there yet.",{"what":58,"why":59,"when":60},"A management console and API front door for locally run Null services — a single Zig binary with an embedded web dashboard and a CLI, serving at http://nullhub.localhost:19800 and published as nullhub.local over mDNS.","Running NullClaw (agents), NullBoiler (workflows), NullTickets (task queues) and NullWatch (tracing) by hand means four separate daemons to install, configure, restart and update, plus API keys scattered across four configs — NullHub replaces that with one supervisor, one dashboard, one credential vault and one API.","You are setting up the Null stack on a machine and want to add components through a guided wizard, watch their health and logs in a browser, and run `nullhub update-all` instead of updating each daemon by hand — or you want to script the whole stack, agent chat and cron included, through one HTTP port. Remote access from other machines works via --allowed-origin (over a tailnet such as Tailscale).",{"tag":62,"date":63,"url":64,"binaries":65},"v2026.5.29","2026-05-29","https://github.com/nullclaw/nullhub/releases/tag/v2026.5.29",[66,75,82,91,97,103,112],{"match":67,"os":68,"label":69,"arch":70,"name":71,"size":72,"bytes":73,"url":74},"macos-aarch64","mac","macOS","Apple Silicon","nullhub-macos-aarch64.bin","2.3 MB",2410840,"https://github.com/nullclaw/nullhub/releases/latest/download/nullhub-macos-aarch64.bin",{"match":76,"os":68,"label":69,"arch":77,"name":78,"size":79,"bytes":80,"url":81},"macos-x86_64","Intel","nullhub-macos-x86_64.bin","2.4 MB",2519366,"https://github.com/nullclaw/nullhub/releases/latest/download/nullhub-macos-x86_64.bin",{"match":83,"os":84,"label":85,"arch":86,"name":87,"size":88,"bytes":89,"url":90},"linux-x86_64","linux","Linux","x86-64","nullhub-linux-x86_64.bin","2.5 MB",2663560,"https://github.com/nullclaw/nullhub/releases/latest/download/nullhub-linux-x86_64.bin",{"match":92,"os":84,"label":85,"arch":93,"name":94,"size":72,"bytes":95,"url":96},"linux-aarch64","ARM64","nullhub-linux-aarch64.bin",2417928,"https://github.com/nullclaw/nullhub/releases/latest/download/nullhub-linux-aarch64.bin",{"match":98,"os":84,"label":85,"arch":99,"name":100,"size":88,"bytes":101,"url":102},"linux-riscv64","RISC-V","nullhub-linux-riscv64.bin",2626136,"https://github.com/nullclaw/nullhub/releases/latest/download/nullhub-linux-riscv64.bin",{"match":104,"os":105,"label":106,"arch":107,"name":108,"size":109,"bytes":110,"url":111},"windows-x86_64.exe","windows","Windows","x64","nullhub-windows-x86_64.exe","2.8 MB",2905600,"https://github.com/nullclaw/nullhub/releases/latest/download/nullhub-windows-x86_64.exe",{"match":113,"os":105,"label":106,"arch":93,"name":114,"size":88,"bytes":115,"url":116},"windows-aarch64.exe","nullhub-windows-aarch64.exe",2598400,"https://github.com/nullclaw/nullhub/releases/latest/download/nullhub-windows-aarch64.exe",{"installPrimary":118,"quickstart":119,"alts":120},"\u003Cfigure class=\"code-figure\" data-lang=\"bash\">\u003Cpre class=\"shiki null-kitchen\" style=\"background-color:#0a0806;color:#d9d1c3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#ECE5D8\">docker\u003C/span>\u003Cspan style=\"color:#C9B795\"> run\u003C/span>\u003Cspan style=\"color:#C9B795\"> --rm\u003C/span>\u003Cspan style=\"color:#C9B795\"> -p\u003C/span>\u003Cspan style=\"color:#C9B795\"> 19800:19800\u003C/span>\u003Cspan style=\"color:#C9B795\"> -v\u003C/span>\u003Cspan style=\"color:#C9B795\"> nullhub-data:/nullhub-data\u003C/span>\u003Cspan style=\"color:#C9B795\"> ghcr.io/nullclaw/nullhub:latest\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003Cbutton class=\"code-copy\" type=\"button\" data-code>copy\u003C/button>\u003C/figure>\n","\u003Cp>Start the server, then add components from the same binary. Every command other than \u003Ccode>serve\u003C/code> is an HTTP client to the running server, and the terminal wizard and the web UI run the same manifest-driven flow.\u003C/p>\n\u003Cfigure class=\"code-figure\" data-lang=\"bash\">\u003Cpre class=\"shiki null-kitchen\" style=\"background-color:#0a0806;color:#d9d1c3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#877E6F;font-style:italic\"># start the server and open the dashboard\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#ECE5D8\">nullhub\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#877E6F;font-style:italic\"># → http://nullhub.localhost:19800\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#877E6F;font-style:italic\"># add components (terminal wizard)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#ECE5D8\">nullhub\u003C/span>\u003Cspan style=\"color:#C9B795\"> install\u003C/span>\u003Cspan style=\"color:#C9B795\"> nullclaw\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#ECE5D8\">nullhub\u003C/span>\u003Cspan style=\"color:#C9B795\"> install\u003C/span>\u003Cspan style=\"color:#C9B795\"> nullwatch\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#877E6F;font-style:italic\"># run and inspect\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#ECE5D8\">nullhub\u003C/span>\u003Cspan style=\"color:#C9B795\"> start-all\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#ECE5D8\">nullhub\u003C/span>\u003Cspan style=\"color:#C9B795\"> status\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003Cbutton class=\"code-copy\" type=\"button\" data-code>copy\u003C/button>\u003C/figure>\n",[121,123],{"label":26,"html":122},"\u003Cfigure class=\"code-figure\" data-lang=\"bash\">\u003Cpre class=\"shiki null-kitchen\" style=\"background-color:#0a0806;color:#d9d1c3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#ECE5D8\">curl\u003C/span>\u003Cspan style=\"color:#C9B795\"> -fL\u003C/span>\u003Cspan style=\"color:#C9B795\"> https://github.com/nullclaw/nullhub/releases/latest/download/nullhub-macos-aarch64.bin\u003C/span>\u003Cspan style=\"color:#C9B795\"> -o\u003C/span>\u003Cspan style=\"color:#C9B795\"> nullhub\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#ECE5D8\">chmod\u003C/span>\u003Cspan style=\"color:#C9B795\"> +x\u003C/span>\u003Cspan style=\"color:#C9B795\"> nullhub\u003C/span>\u003Cspan style=\"color:#8D8375\"> &&\u003C/span>\u003Cspan style=\"color:#ECE5D8\"> ./nullhub\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003Cbutton class=\"code-copy\" type=\"button\" data-code>copy\u003C/button>\u003C/figure>\n",{"label":29,"html":124},"\u003Cfigure class=\"code-figure\" data-lang=\"bash\">\u003Cpre class=\"shiki null-kitchen\" style=\"background-color:#0a0806;color:#d9d1c3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#ECE5D8\">zig\u003C/span>\u003Cspan style=\"color:#C9B795\"> build\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#ECE5D8\">./zig-out/bin/nullhub\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\u003Cbutton class=\"code-copy\" type=\"button\" data-code>copy\u003C/button>\u003C/figure>\n"],"uses":{}}]}
0 commit comments