Skip to content

v0.1.0

Choose a tag to compare

@caesarlab caesarlab released this 30 Jul 17:11
· 34 commits to main since this release

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 | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/thelabs-id/cempala/main/scripts/install.ps1 | iex

Either 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:

  • claude and/or codex on PATH
  • 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 with claude -p "reply with OK" and codex 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 running for 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.
  • claude and codex credentials expire on their own schedule. Cempala surfaces the resulting 401 rather 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()