v0.1.0
First release of Cempala — a local MCP server that lets Claude Code and Codex hand work to each other.
What's published
| Platform | Asset | Verified on |
|---|---|---|
| Linux x64 | cempala-linux-x64 |
Linux 6.6 (WSL2) and a CI x64 runner |
| Linux arm64 | cempala-linux-arm64 |
a real ARM64 CI runner |
| macOS Apple Silicon | cempala-darwin-arm64 |
macOS 15 arm64 |
| macOS Intel | cempala-darwin-x64 |
macOS 15 x86_64 |
| Windows x64 | cempala-windows-x64.exe |
Windows 11 |
"Verified" means the published binary was run on that platform — not that it compiled. Each one starts, writes its config, completes an MCP handshake, advertises all eight tools, and round-trips a message through SQLite (scripts/smoke-test.sh, run by CI against the exact artifact attached here).
Windows on ARM is the one gap: the installer fetches the x64 build, which runs under emulation. A native windows-arm64 binary compiles but isn't published, because there was no ARM64 Windows machine to run it on.
Install
Linux / macOS:
curl -fsSL https://raw.githubusercontent.com/thelabs-id/cempala/main/scripts/install.sh | bashWindows (PowerShell):
irm https://raw.githubusercontent.com/thelabs-id/cempala/main/scripts/install.ps1 | iexEither installer verifies the SHA-256 below before doing anything with the binary, installs it (~/.cempala/bin on Linux and macOS, %LOCALAPPDATA%\Cempala\bin on Windows), adds it to PATH for this shell and future ones, writes a default ~/.cempala/config.toml, and registers itself with whichever of claude and codex it finds. Re-running it is safe.
Requirements
Cempala holds no API keys and never talks to a model itself — it shells out to the agent CLIs and lets each use its own credentials. So:
claudeand/orcodexonPATH- each one signed in. This is the thing people trip over. If a CLI's session has expired, every handoff to that agent fails, usually with a
401. Check withclaude -p "reply with OK"andcodex exec "reply with OK"before assuming Cempala is at fault.
What's in it
Eight MCP tools: send_message, check_messages, create_task, claim_task, complete_task, dispatch, check_task, approve_path.
Handoffs run offline by default, and every result reports which enforcement actually applied — sandboxed (OS-level, Codex), tools_only (Claude's Bash can still reach the network) or allowed. The distinction is reported honestly rather than flattened into a reassuring default.
Work is confined to your home directory unless you explicitly approve a path, a baseline denylist (~/.ssh, ~/.aws, ~/.gnupg, …) can't be weakened by editing config, and every call is written to an audit log.
Known limitations
- A dispatched agent that genuinely dies without producing output can read as
runningfor up to 30 minutes before the reaper clears it. This is deliberate: the alternative — treating a dead process as a failed task — reported failures for work that had actually completed, which is worse, because the calling agent then redoes it. claudeandcodexcredentials expire on their own schedule. Cempala surfaces the resulting401rather than hiding it.- No native Windows ARM64 build yet (see above).
Verifying the download
f28b795293d632660b535958e7bcbe6943a4aecce858581a4060bc50b4cce62b cempala-darwin-arm64
ed3459a9b005f66611f5e27aaa30984036ab15a779db1909ae29775c7ca912e6 cempala-darwin-x64
55ab78922f25a7e017710349bff1054467bbe9b6000d81501f4c86e96e586dcf cempala-linux-arm64
f95b942782badbdea39de1ccac993b7c6b2425d43e563943d99a1b0c66868101 cempala-linux-x64
ab11e8f277ecb34a0bd500ebc3ea920e3467ad08a62bcb329a216584469df0a9 cempala-windows-x64.exe
sha256sum -c checksums.txt --ignore-missing(Get-FileHash .\cempala-windows-x64.exe -Algorithm SHA256).Hash.ToLower()