πͺ¦ RETIRED β 2026-05-11. This repository was a Homebrew tap + shared apko/melange build setup for mache. It has been retired because each sibling repo now owns its own OCI image build in-repo:
Project Image build path mache agentic-research/macheβtask imagerosary agentic-research/rosaryβtask imagenotme agentic-research/notmeβtask imageley-line-open agentic-research/ley-line-openβtask imagecloister agentic-research/cloisterβtask imageIf you came here looking for mache installation specifically, see
agentic-research/mache. If you want cluster-style deployment of the whole substrate, seeagentic-research/cloister'stask cluster:up.The repository is read-only (archived). No new issues / PRs will be processed; please file them in the active repo above.
Historical content preserved below.
Where you fire a mache.
brew install agentic-research/tap/macheThen pick your editor β stdio mode is easiest (the editor manages the process, auto-serves whatever project you're in):
claude mcp add mache -- mache serve --stdio .That's it. Claude Code spawns mache per-session and auto-detects your project's languages. No server to manage.
Add to .vscode/mcp.json:
{
"servers": {
"mache": {
"type": "stdio",
"command": "mache",
"args": ["serve", "--stdio", "."]
}
}
}Add to ~/.gemini/settings.json:
{
"mcpServers": {
"mache": {
"command": "mache",
"args": ["serve", "--stdio", "."]
}
}
}Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"mache": {
"command": "mache",
"args": ["serve", "--stdio", "."]
}
}
}If you prefer a long-running server that multiple clients can connect to:
# Serve a codebase (HTTP on :7532)
mache serve /path/to/your/code
# Or as a background service (macOS)
brew services start agentic-research/tap/macheThen point your editor at http://localhost:7532/mcp:
# Claude Code
claude mcp add --transport http mache http://localhost:7532/mcp// VS Code / Cursor (.vscode/mcp.json)
{ "servers": { "mache": { "type": "http", "url": "http://localhost:7532/mcp" } } }
// Gemini CLI (~/.gemini/settings.json)
{ "mcpServers": { "mache": { "httpUrl": "http://localhost:7532/mcp" } } }
// Windsurf (~/.codeium/windsurf/mcp_config.json)
{ "mcpServers": { "mache": { "serverUrl": "http://localhost:7532/mcp" } } }For environments without a local install:
{
"mcpServers": {
"mache": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "${workspaceFolder}:/source:ro",
"-v", "mache-cache:/data",
"mache", "--stdio", "/source"
]
}
}
}
macheabove is the image name, not the binary. The container's entrypoint runsmache serve "$@", so only pass flags and the source path.
Kiln packages mache and ley-line into a single artifact β either a static fat binary or a distroless OCI image. One command gives you a fully wired MCP server backed by ley-line's zero-copy arena.
graph TD
subgraph kiln["kiln (fat binary)"]
subgraph mache["mache (Go)"]
Schema[Schema]
Ingest[Ingest]
MCP[MCP Server]
end
subgraph leyline["ley-line (Rust)"]
Arena[Arena]
SQLite[SQLite]
Graph[Graph]
end
mache -->|C FFI| leyline
end
MCP -->|"Streamable HTTP :7532"| Client["MCP Clients"]
All commands use Task.
task binary # Static fat binary (Go + Rust linked)
task image # Dockerfile image (dev/iteration)
task apk # melange + apko distroless image (release)
task sign # cosign signature (uses signet KMS if available)
task test # Smoke test
task shell # Debug shell in container
task clean # Remove artifactsBinary: Go 1.25+, Rust 1.82+, C compiler. Image (Dockerfile): Docker or Podman. No local toolchains. Image (apko): melange, apko. Produces reproducible distroless images.
Three tiers, same binary inside:
| Method | Target | Size | Reproducible |
|---|---|---|---|
task binary |
Direct install, Homebrew tap | ~30MB | No (host-dependent) |
task image |
Dev, CI | ~200MB | No |
task apk |
Release, registry | ~15-20MB | Yes |
The apko path produces a distroless image: no shell, no package manager, just the mache binary + musl libc + ca-certs. Signed with cosign, optionally via signet's KMS provider.
Kiln is glue, not logic. It owns:
- Build pipeline β multi-language compilation + static linking
- Packaging β melange APK + apko OCI image assembly
- Volume contract β
/source(read-only bind),/data(persistent cache) - Signing β cosign + optional signet KMS integration
Kiln does NOT own:
- Schema logic, ingestion, tree-sitter queries (that's mache)
- Arena format, double-buffering, SQLite adapter (that's ley-line)
Mache is Go. Ley-line is Rust. They talk via C FFI (cgo + staticlib).
Building locally requires both toolchains, a C compiler, platform-specific
FUSE/NFS libs, and the right CGO flags. Kiln absorbs that complexity so
users get one thing that works.
Early. The pieces exist β mache already links ley-line's staticlib via FFI. Kiln just puts them in a box and fires it.
Apache-2.0 (kiln and mache). Ley-line is closed-source.