Headless agent daemon exposing `claude -p` over a Unix socket.
A per-user daemon that exposes the Claude Code CLI (claude -p) as a
long-running, multi-session backend over a Unix domain socket. Clients
get a headless agent they can reach from any language or process.
The daemon is pass-through by design. It injects no system prompt,
defines no tool protocol, and does not filter events; it just brokers
multiple live claude -p sessions, tags their events with a
session_id and seq, and forwards them.
pip install blemees # from PyPI
# or
brew tap blemees/tap && brew install blemees
Start the daemon (foreground; use systemd/launchd for service mode):
blemeesd --log-level debug
Drive it with the reference client:
import asyncio, uuid
from blemees.client import BlemeesClient
async def main():
async with await BlemeesClient.connect() as c:
async with c.open_session(
session_id=str(uuid.uuid4()),
model="sonnet",
tools="",
permission_mode="bypassPermissions",
) as sess:
await sess.send_user("What is 2+2?")
async for evt in sess.events():
if evt.get("type") == "claude.result":
break
asyncio.run(main())
schemas/ as the machine-readable contract.v0.1 on the blemees/1 protocol. Pre-1.0: breaking wire changes
remain possible until the protocol is marked stable.