cos is the cosmix daemon family: every Rust crate that runs a node in a cosmix mesh — broker, mail, web, DNS, knowledge indexer, display compositor, agent runtime, MCP bridge — plus the substrate libraries they share.
27 workspace members: 13 substrate libraries, 13 daemon-family crates (long-running daemons plus their helper / CLI subcrates), and 1 mesh-aware app (cosmix-mail).
| Crate | What it is |
|---|---|
cosmix-lib-config |
node.toml loader, per-daemon settings, opt-in client-helpers for broker auto-resolve. |
cosmix-lib-daemon |
Daemon framework: init_tracing, http_host, graceful shutdown; optional tls feature (rustls + ACME + SNI resolver). |
cosmix-lib-props-store |
SPEC 12 substrate surface — sqlite / memory storage backends, audit HMAC, namespace lifecycle. Pairs with cosmix-lib-props-core in amp. |
cosmix-lib-mesh, cosmix-lib-mesh-trust |
Mesh peering + cross-mesh authz. |
cosmix-lib-log |
SPEC 12 log namespace + per-daemon LogHandle::attach_props watcher. |
cosmix-lib-node-id, cosmix-lib-wg |
Node identity + WireGuard config helpers. |
cosmix-lib-skills, cosmix-lib-agent, cosmix-lib-llm |
Agent runtime building blocks. |
cosmix-lib-display |
Display-protocol consumer (markdown-over-AMP UI). |
cosmix-lib-dns |
Authoritative DNS codec library used by cosmix-dnsd. |
Long-running daemons:
| Binary | What it does |
|---|---|
cosmix-noded |
AMP broker. Every mesh node runs one. |
cosmix-maild |
JMAP-native mail daemon (SMTP + IMAP + JMAP + Bayesian classifier). |
cosmix-webd |
Multi-vhost HTTPS + ACME. |
cosmix-dnsd |
Authoritative WG-mesh DNS. |
cosmix-indexd |
Vector indexer / knowledge base. |
cosmix-disp-skia |
Display-protocol Skia compositor (winit + softbuffer + tiny-skia + cosmic-text). |
cosmix-agentd |
Agent supervision. |
Helpers + adapters (not long-running daemons themselves):
| Crate | What it is |
|---|---|
cosmix-mcp |
Claude Code MCP bridge — exposes cosmix surfaces as MCP tools. |
cosmix-claud |
Claude SDK agent runtime adapter. |
cosmix-mds |
Mail data store helper used by cosmix-maild. |
cosmix-maild-auth |
Authentication library for cosmix-maild (no binary). |
cosmix-maild-rules |
Filter engine library + CLI subcrate. |
cosmix-maild-bayesian |
Spam classifier library + CLI subcrate. |
cosmix-mail — a mesh-aware JMAP mail client. Reads / composes / sends via a local or remote cosmix-maild; renders through cosmix-disp-skia.
cos needs two sibling repos: amp (the AMP protocol library) at ~/.amp/, and mix at ~/.mix/ (the strict-data parser in cosmix-lib-mix is consumed by five cos-side crates: cosmix-lib-config, cosmix-lib-dns, cosmix-claud, cosmix-mcp, cosmix-maild).
git clone https://github.com/markc/amp ~/.amp
git clone https://github.com/markc/mix ~/.mix
git clone https://github.com/markc/cos ~/.cos
cd ~/.cos/src && cargo build --workspace --releaseTests:
cd ~/.cos/src && cargo test --workspaceLints:
cd ~/.cos/src && cargo clippy --workspace --all-targets -- -D warningsDaemon binaries install to /opt/cosmix/bin/:
sudo install -m 0755 ~/.cos/src/target/release/cosmix-noded /opt/cosmix/bin/
sudo install -m 0755 ~/.cos/src/target/release/cosmix-maild /opt/cosmix/bin/
# ... repeat per binarySPEC-10 daemon identities (system users / UIDs) install from the bundled sysusers fragment:
sudo install -m 0644 ~/.cos/src/_etc/sysusers/cosmix.conf /usr/lib/sysusers.d/cosmix.conf
sudo systemd-sysusers --createPer-daemon systemd units are not currently shipped in this repo (only the SPEC-10 sysusers fragment is). Operators provide their own units, or generate them from each daemon's cosmix-X --help and the user-name list in the sysusers fragment.
Each daemon reads /etc/cosmix/node.toml (system) or ~/.config/cosmix/node.toml (per-user) for shared node config, plus its own per-daemon config under /etc/cosmix/<daemon>/config.toml where applicable. cosmix-lib-config defines the schema; see each daemon's source for the per-daemon block.
- amp — the Agent Mesh Protocol library family that every cos daemon links against.
- mix — the ARexx-flavoured scripting language with first-class AMP keywords; the natural way to script + orchestrate cos daemons.
MIT. See LICENSE.