Hecate Mail — Development skill for Claude Code
Async mailboxes + a citizens directory on the Macula mesh -- lets an ephemeral agent (Claude Code, any MCP client) delegate work to a party who isn't online right now, and discover who's out there in.
How to install Hecate Mail
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open hecate-services/hecate-mail and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Hecate Mail does
Async mailboxes + a citizens directory on the Macula mesh -- lets an ephemeral agent (Claude Code, any MCP client) delegate work to a party who isn't online right now, and discover who's out there in the first place.
Alternatives in Development
- Skills Directory — 462 skills across 35 categories Browse online: spawner.vibeship.co/skills 845 ★
- Symfony Messenger — Implement async message handling with Symfony Messenger 206 ★
- Pubmed MCP Server — Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms via MCP 150 ★
README
hecate-mail
**Async mailboxes for the Macula mesh -- lets an agent delegate work to a citizen who is not online right now**
Plan
The scaffold below builds and passes its own tests but implements no domain logic yet. The full design -- mail-location routing, mailboxes, why identity lives in the sibling [`hecate-citizens`](https://github.com/hecate-services/hecate-citizens) service instead of here, the open caller-identity-verification question -- is in [`plans/PLAN_ROOT.md`](plans/PLAN_ROOT.md). Start there.
Status: scaffold, deployed
The service boots, joins the mesh and answers `/health`. It does nothing else yet. **Live on `beam01.lab` and `beam02.lab`** (port 8496 there -- 8490 below is this repo's own standalone-run default; the fleet overrides it per its own port ledger, see `plans/PLAN_ROOT.md` PART4), deployed via `macula-io/macula-demo`'s pull-based reconciler, not through anything in this repo directly.
It announces no capability and asks the realm for no authority, because it can do nothing yet. Both lists grow when the thing they name exists. Advertising a capability before it exists puts a lie on the mesh where another service can find it and call it.
Running it
rebar3 compile
rebar3 eunit
rebar3 lint
scripts/health.sh # against a running node
Building the image needs a Rust toolchain, because macula ships a QUIC NIF and the alpine build compiles it from source rather than fetching one linked against a different libc.
podman build -t hecate-mail -f Containerfile .
Configuration
| Variable | Default | Meaning |
|---|---|---|
HECATE_REALM |
required | 64-hex realm tag, the sha256 of the realm's name. No default: a service that guesses its realm announces itself where nobody can attribute it. |
MACULA_STATION_SEEDS |
required | Station to dial. No default: naming a realm costs nothing, dialling a production station from every dev clone does. |
| `HECATE_HEALTH_P |
Related Skills
Exo Mesh
See the whole relationship, not the fragment one inbox remembers. Mail, calendar, iMessage and contacts joined
Discover List Vaults
List all configured Obsidian vaults — active (online/latency/metadata) and disabled (skipped). (Skill discover
Telepath
Give your Claude Code and Codex sessions telepathy — a zero-dependency message bus that lets local coding agen
Mailboxes
Show all agent mailboxes and pending requests
Code City
An idle pixel-art city for Claude Code. It lives in a side pane and grows while you work: every prompt brings
Claude Secretmode
Leave-no-trace ephemeral Claude Code sessions on macOS — runs Claude Code on a RAM disk so transcripts, prompt
Related Agents
Deletion Scout
Asks what a diff lets the codebase delete — superseded paths, compatibility shims, flags now always on, tests
Online Marketing
Experte für Online Marketing für spirituelle Frauen und Coaches. Nutzen für Marketing-Strategie, Funnel, E-Mai
Elrond
Detects the stack of an MR or diff and delegates to the right reader (aragorn, gimli, legolas, frodo, boromir,