A modal editor, a terminal agent, and the local models that run them — three C instruments on a from-scratch inference engine. No cloud, no telemetry, no daemon. The agent runs in your browser too — nothing installed, nothing sent anywhere.
Each installer fetches the latest signed release for your OS and arch, verifies the sha256 sidecar, drops the binary into ~/.local/bin (or /usr/local/bin if writable). No package manager, no daemon, no telemetry. Same script shape across the suite — different binary at the end.
hako —curl -fsSL https://mithraeums.github.io/hako.sh | sh
hake —curl -fsSL https://mithraeums.github.io/hake.sh | sh
hakm —git clone https://github.com/mithraeums/hako
cd hako && make # libc + libm + pthread only — no deps
hako --serve # http://127.0.0.1:8787
hako --serve --lan # prints the URL to open on your phone
Convert a Qwen GGUF once with tools/gguf2mlf.py, drop the .mlf2 in ~/.hako/models/, launch hako. The agent runs it via a one-shot hakm subprocess — no key, no :login, no ollama, no daemon, no cloud round-trip.
Anthropic OAuth (Claude Pro/Max sub), GitHub Copilot, GH Models (free), OpenRouter PKCE, plus 9 more over OpenAI-compat. Single :login <name> walks you through.
hako --serve hands you a browser UI out of the same binary — no install, no backend, no account, no database. Bind it to your network and drive your desktop from a phone. Your files, keys and conversations never leave the machine you ran it on, because there is nowhere else for them to go.
hako --update pulls the latest release, verifies the sha256 sidecar, atomically replaces the binary. No reinstall, no rebuild, no package manager.
Each skill is a folder in mithraeums/skills containing a SKILL.md and any helpers. hako-code loads them on startup. Open a PR to add yours — the rite is the README.