{"id":50434143,"url":"https://github.com/markc/cos","last_synced_at":"2026-05-31T16:02:50.980Z","repository":{"id":361084355,"uuid":"1252990476","full_name":"markc/cos","owner":"markc","description":"Cosmix daemons + their substrate libraries (broker, mail, web, DNS, indexing, display, MCP, agent + shared libs)","archived":false,"fork":false,"pushed_at":"2026-05-29T05:14:38.000Z","size":2104,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-29T07:16:49.249Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/markc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-29T04:06:09.000Z","updated_at":"2026-05-29T05:14:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/markc/cos","commit_stats":null,"previous_names":["markc/cos"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/markc/cos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markc%2Fcos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markc%2Fcos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markc%2Fcos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markc%2Fcos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markc","download_url":"https://codeload.github.com/markc/cos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markc%2Fcos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33737692,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-31T16:02:50.144Z","updated_at":"2026-05-31T16:02:50.974Z","avatar_url":"https://github.com/markc.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cos\n\n**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.\n\n27 workspace members: 13 substrate libraries, 13 daemon-family crates (long-running daemons plus their helper / CLI subcrates), and 1 mesh-aware app (`cosmix-mail`).\n\n## What's in here\n\n### Substrate libraries (`src/crates/cosmix-lib-*`)\n\n| Crate | What it is |\n|---|---|\n| `cosmix-lib-config` | `node.toml` loader, per-daemon settings, opt-in `client-helpers` for broker auto-resolve. |\n| `cosmix-lib-daemon` | Daemon framework: `init_tracing`, `http_host`, graceful shutdown; optional `tls` feature (rustls + ACME + SNI resolver). |\n| `cosmix-lib-props-store` | SPEC 12 substrate surface — sqlite / memory storage backends, audit HMAC, namespace lifecycle. Pairs with `cosmix-lib-props-core` in [amp](https://github.com/markc/amp). |\n| `cosmix-lib-mesh`, `cosmix-lib-mesh-trust` | Mesh peering + cross-mesh authz. |\n| `cosmix-lib-log` | SPEC 12 `log` namespace + per-daemon `LogHandle::attach_props` watcher. |\n| `cosmix-lib-node-id`, `cosmix-lib-wg` | Node identity + WireGuard config helpers. |\n| `cosmix-lib-skills`, `cosmix-lib-agent`, `cosmix-lib-llm` | Agent runtime building blocks. |\n| `cosmix-lib-display` | Display-protocol consumer (markdown-over-AMP UI). |\n| `cosmix-lib-dns` | Authoritative DNS codec library used by `cosmix-dnsd`. |\n\n### Daemons + helpers (`src/crates/cosmix-*d`, `cosmix-mcp`, `cosmix-claud`, `cosmix-mds`, `cosmix-maild-*`)\n\nLong-running daemons:\n\n| Binary | What it does |\n|---|---|\n| `cosmix-noded` | AMP broker. Every mesh node runs one. |\n| `cosmix-maild` | JMAP-native mail daemon (SMTP + IMAP + JMAP + Bayesian classifier). |\n| `cosmix-webd` | Multi-vhost HTTPS + ACME. |\n| `cosmix-dnsd` | Authoritative WG-mesh DNS. |\n| `cosmix-indexd` | Vector indexer / knowledge base. |\n| `cosmix-disp-skia` | Display-protocol Skia compositor (winit + softbuffer + tiny-skia + cosmic-text). |\n| `cosmix-agentd` | Agent supervision. |\n\nHelpers + adapters (not long-running daemons themselves):\n\n| Crate | What it is |\n|---|---|\n| `cosmix-mcp` | Claude Code MCP bridge — exposes cosmix surfaces as MCP tools. |\n| `cosmix-claud` | Claude SDK agent runtime adapter. |\n| `cosmix-mds` | Mail data store helper used by `cosmix-maild`. |\n| `cosmix-maild-auth` | Authentication library for `cosmix-maild` (no binary). |\n| `cosmix-maild-rules` | Filter engine library + CLI subcrate. |\n| `cosmix-maild-bayesian` | Spam classifier library + CLI subcrate. |\n\n### Apps (`src/crates/cosmix-mail`)\n\n`cosmix-mail` — a mesh-aware JMAP mail client. Reads / composes / sends via a local or remote `cosmix-maild`; renders through `cosmix-disp-skia`.\n\n## Building\n\ncos needs two sibling repos: [amp](https://github.com/markc/amp) (the AMP protocol library) at `~/.amp/`, and [mix](https://github.com/markc/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`).\n\n```sh\ngit clone https://github.com/markc/amp ~/.amp\ngit clone https://github.com/markc/mix ~/.mix\ngit clone https://github.com/markc/cos ~/.cos\ncd ~/.cos/src \u0026\u0026 cargo build --workspace --release\n```\n\nTests:\n\n```sh\ncd ~/.cos/src \u0026\u0026 cargo test --workspace\n```\n\nLints:\n\n```sh\ncd ~/.cos/src \u0026\u0026 cargo clippy --workspace --all-targets -- -D warnings\n```\n\n## Installing\n\nDaemon binaries install to `/opt/cosmix/bin/`:\n\n```sh\nsudo install -m 0755 ~/.cos/src/target/release/cosmix-noded /opt/cosmix/bin/\nsudo install -m 0755 ~/.cos/src/target/release/cosmix-maild /opt/cosmix/bin/\n# ... repeat per binary\n```\n\nSPEC-10 daemon identities (system users / UIDs) install from the bundled sysusers fragment:\n\n```sh\nsudo install -m 0644 ~/.cos/src/_etc/sysusers/cosmix.conf /usr/lib/sysusers.d/cosmix.conf\nsudo systemd-sysusers --create\n```\n\nPer-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.\n\n## Configuration\n\nEach 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/\u003cdaemon\u003e/config.toml` where applicable. `cosmix-lib-config` defines the schema; see each daemon's source for the per-daemon block.\n\n## Related projects\n\n- **[amp](https://github.com/markc/amp)** — the Agent Mesh Protocol library family that every cos daemon links against.\n- **[mix](https://github.com/markc/mix)** — the ARexx-flavoured scripting language with first-class AMP keywords; the natural way to script + orchestrate cos daemons.\n\n## License\n\nMIT. See `LICENSE`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkc%2Fcos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkc%2Fcos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkc%2Fcos/lists"}