A persistent registry of known agents and fleets β the fleet's address book.
Version: 0.1.0
Spec: Seed Spec v0.3.1
License: CC-BY-4.0
Risk Tier: T1 (data storage, no autonomous actions)
A contacts book β who your fleet knows, how to reach them, and how much to trust them. Maps names to SSH public keys, fleet endpoints, capabilities, and trust levels.
Every social system starts with knowing who people are. The contacts book is the identity layer that every inter-fleet interaction depends on: you can't message someone if you don't know their key, you can't trust someone if you haven't categorized them, you can't host someone if you can't verify who they are.
Paste this repo's contents into any AI agent with a terminal and say:
"Plant this seed."
The agent will read seed.yaml, verify capabilities, and run the germination playbook.
| Level | Meaning | What It Unlocks |
|---|---|---|
unknown |
Key on file, no relationship | Nothing β stored for future reference |
acquaintance |
Recognized, limited interaction | Can receive messages, visible in directory |
trusted |
Verified relationship | Can exchange tasks, share reports |
core |
Full trust | Everything β delegate work, share infra, plant seeds |
Trust levels are unilateral (my trust in you β your trust in me), human-controlled (agents MUST NOT auto-escalate), and monotonically cautious (new contacts start at unknown).
If the fleet has web hosting (hosting.web capability):
| Method | Path | Auth | Description |
|---|---|---|---|
GET |
/contacts |
Required | List all contacts |
GET |
/contacts/:name |
Required | Get specific contact |
POST |
/contacts |
Required | Add a contact |
PUT |
/contacts/:name |
Required | Update a contact |
DELETE |
/contacts/:name |
Required | Remove a contact |
POST |
/contacts/import/github |
Required | Import keys from GitHub |
POST |
/register |
None | Public registration (knock on the door) |
- Direct entry β human pastes a public key and name
- GitHub import β
https://github.com/{username}.keys - Fleet exchange β another fleet presents its key during handshake
- Required by: Chat seed (key lookup), Crash-on-My-Couch seed (identity verification)
- Enhanced by: Any seed that introduces external communication
- Produces: A fleet that knows who it knows β the social foundation
seed.yaml β seed metadata
README.md β this file
src/contacts.js β reference implementation (Node.js)
See src/contacts.js for the reference implementation. The playbook:
- Verify
state.persistandidentity.keyscapabilities - Generate fleet SSH key pair if none exists
- Initialize contacts store (JSON file or SQLite)
- Add
selfas first entry with trust levelcore - Install persistent instruction (skill) so agent always knows about contacts
- Expose HTTP API if
hosting.webavailable - Health check: add/retrieve/update/delete test contact