myceliumail 1.0.3 โ 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish.yml +108 -0
- package/CHANGELOG.md +85 -0
- package/README.md +295 -162
- package/mcp-server/package-lock.json +3 -4
- package/mcp-server/package.json +6 -5
- package/package.json +11 -2
- package/COMPLETE.md +0 -51
- package/MYCELIUMAIL_STARTER_KIT.md +0 -603
- package/NEXT_STEPS.md +0 -96
- package/docs/20251215_Treebird-Ecosystem_Knowledge-Base_v2.md +0 -292
- package/docs/20251215_Treebird-Ecosystem_Project-Instructions_v2.md +0 -176
- package/docs/AGENT_DELEGATION_WORKFLOW.md +0 -453
- package/docs/ANNOUNCEMENT_DRAFTS.md +0 -55
- package/docs/DASHBOARD_AGENT_HANDOFF.md +0 -429
- package/docs/DASHBOARD_AGENT_PROMPT.md +0 -32
- package/docs/DASHBOARD_BUILD_ROADMAP.md +0 -61
- package/docs/MCP_PUBLISHING_ROADMAP.md +0 -113
- package/docs/SSAN_MESSAGES_SUMMARY.md +0 -92
- package/docs/STORAGE_ARCHITECTURE.md +0 -114
package/README.md
CHANGED
|
@@ -1,229 +1,362 @@
|
|
|
1
1
|
# ๐ Myceliumail
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Encrypted messaging for AI agents.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
When Claude Code discovers something Cursor needs to know, there's no way to tell it. Myceliumail fixes thatโasync, encrypted, agent-to-agent communication that works whether agents are online simultaneously or not.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Why This Exists
|
|
10
|
+
|
|
11
|
+
AI coding agents have evolved from autocomplete to autonomous. Claude Code, Cursor, Windsurf, GitHub Copilotโthey're writing features, fixing bugs, refactoring code. But when multiple agents work on the same codebase, chaos follows. Merge conflicts, duplicated work, stepping on each other's changes.
|
|
12
|
+
|
|
13
|
+
The missing piece isn't more intelligenceโit's coordination. We built decades of tooling for humans to collaborate (Slack, email, Git). We never built tools for AI agents to collaborate.
|
|
14
|
+
|
|
15
|
+
Myceliumail is named after myceliumโthe underground fungal network that lets trees share resources and warnings across a forest. It's the communication layer for the emerging model of development where humans set goals and multiple AI agents coordinate to achieve them.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Current Status
|
|
20
|
+
|
|
21
|
+
**This is early-stage software.** Built in public, improving weekly.
|
|
8
22
|
|
|
9
|
-
|
|
23
|
+
| Component | Status |
|
|
24
|
+
|-----------|--------|
|
|
25
|
+
| CLI messaging | โ
Functional (`send`, `inbox`, `read`, `broadcast`, `watch`) |
|
|
26
|
+
| MCP Server | โ
8 tools for Claude Desktop |
|
|
27
|
+
| E2E encryption | โ
NaCl (TweetNaCl.js) |
|
|
28
|
+
| Supabase cloud sync | โ
With automatic local fallback |
|
|
29
|
+
| Web dashboard | โ
Live updates at localhost:3737 |
|
|
30
|
+
| Real-time notifications | โ
Desktop alerts via watch command |
|
|
31
|
+
| Channels | ๐ Schema exists, CLI not yet implemented |
|
|
32
|
+
| Agent discovery | ๐ Planned |
|
|
10
33
|
|
|
11
|
-
|
|
12
|
-
- **๐ฌ Async Messaging** - Send/receive messages across agent boundaries
|
|
13
|
-
- **๐ข Channels** - Group messaging for multi-agent coordination
|
|
14
|
-
- **๐ Presence** - Know which agents are online and active
|
|
15
|
-
- **โก CLI-First** - Designed for terminal-based AI agents
|
|
34
|
+
---
|
|
16
35
|
|
|
17
|
-
##
|
|
36
|
+
## Quick Start
|
|
18
37
|
|
|
19
|
-
### Installation
|
|
38
|
+
### CLI Installation
|
|
20
39
|
|
|
21
40
|
```bash
|
|
41
|
+
# From npm
|
|
22
42
|
npm install -g myceliumail
|
|
43
|
+
|
|
44
|
+
# From source
|
|
45
|
+
git clone https://github.com/treebird7/Myceliumail
|
|
46
|
+
cd Myceliumail && npm install && npm run build && npm link
|
|
23
47
|
```
|
|
24
48
|
|
|
25
|
-
###
|
|
49
|
+
### MCP Server (Claude Desktop)
|
|
26
50
|
|
|
27
|
-
|
|
28
|
-
# Generate your encryption keypair
|
|
29
|
-
mycmail keygen
|
|
51
|
+
The MCP server gives Claude direct access to messaging tools.
|
|
30
52
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
export SUPABASE_URL="https://your-project.supabase.co"
|
|
34
|
-
export SUPABASE_ANON_KEY="your-anon-key"
|
|
35
|
-
|
|
36
|
-
# Or create a .env file
|
|
37
|
-
cat > .env << EOF
|
|
38
|
-
MYCELIUMAIL_AGENT_ID=my-agent
|
|
39
|
-
SUPABASE_URL=https://your-project.supabase.co
|
|
40
|
-
SUPABASE_ANON_KEY=your-anon-key
|
|
41
|
-
EOF
|
|
53
|
+
```bash
|
|
54
|
+
npm install -g myceliumail-mcp
|
|
42
55
|
```
|
|
43
56
|
|
|
44
|
-
|
|
57
|
+
Add to Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"mcpServers": {
|
|
62
|
+
"myceliumail": {
|
|
63
|
+
"command": "node",
|
|
64
|
+
"args": ["/path/to/mcp-server/dist/server.js"],
|
|
65
|
+
"env": {
|
|
66
|
+
"MYCELIUMAIL_AGENT_ID": "claude-desktop",
|
|
67
|
+
"SUPABASE_URL": "https://your-project.supabase.co",
|
|
68
|
+
"SUPABASE_ANON_KEY": "your-anon-key"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
45
74
|
|
|
46
|
-
|
|
75
|
+
**Important:** Restart Claude Desktop fully (not just close window) after config changes.
|
|
47
76
|
|
|
48
|
-
|
|
49
|
-
# Check your inbox
|
|
50
|
-
mycmail inbox
|
|
77
|
+
---
|
|
51
78
|
|
|
52
|
-
|
|
53
|
-
mycmail send other-agent "Hello from the mycelium!"
|
|
79
|
+
## Configuration
|
|
54
80
|
|
|
55
|
-
|
|
56
|
-
mycmail send other-agent --encrypt "Secret coordination details"
|
|
81
|
+
Myceliumail checks configuration in this order: environment variables โ config file โ defaults.
|
|
57
82
|
|
|
58
|
-
|
|
59
|
-
mycmail reply <message-id> "Got it, working on it now"
|
|
60
|
-
```
|
|
83
|
+
### Environment Variables
|
|
61
84
|
|
|
62
|
-
|
|
85
|
+
| Variable | Required | Default | Description |
|
|
86
|
+
|----------|----------|---------|-------------|
|
|
87
|
+
| `MYCELIUMAIL_AGENT_ID` | Yes | `anonymous` | Your agent's identity |
|
|
88
|
+
| `SUPABASE_URL` | No | โ | Cloud storage URL |
|
|
89
|
+
| `SUPABASE_ANON_KEY` | No | โ | Supabase API key |
|
|
90
|
+
| `MYCELIUMAIL_STORAGE` | No | `auto` | Storage mode: `auto`, `supabase`, or `local` |
|
|
63
91
|
|
|
64
|
-
###
|
|
92
|
+
### Config File
|
|
65
93
|
|
|
66
|
-
|
|
67
|
-
|---------|-------------|
|
|
68
|
-
| `mycmail send <agent> "<msg>"` | Send a message |
|
|
69
|
-
| `mycmail inbox` | View incoming messages |
|
|
70
|
-
| `mycmail read <id>` | Read a specific message |
|
|
71
|
-
| `mycmail reply <id> "<msg>"` | Reply to a message |
|
|
72
|
-
| `mycmail archive <id>` | Archive a message |
|
|
94
|
+
Create `~/.myceliumail/config.json`:
|
|
73
95
|
|
|
74
|
-
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"agent_id": "my-agent",
|
|
99
|
+
"supabase_url": "https://xxx.supabase.co",
|
|
100
|
+
"supabase_key": "eyJ..."
|
|
101
|
+
}
|
|
102
|
+
```
|
|
75
103
|
|
|
76
|
-
|
|
77
|
-
|---------|-------------|
|
|
78
|
-
| `mycmail keygen` | Generate your keypair |
|
|
79
|
-
| `mycmail keys` | List known public keys |
|
|
80
|
-
| `mycmail key-import <agent> <key>` | Import an agent's public key |
|
|
104
|
+
### Storage Modes
|
|
81
105
|
|
|
82
|
-
|
|
106
|
+
| Mode | Backend | Use Case |
|
|
107
|
+
|------|---------|----------|
|
|
108
|
+
| `auto` (default) | Supabase with local fallback | General use |
|
|
109
|
+
| `supabase` | Supabase only | Team/cloud deployments |
|
|
110
|
+
| `local` | Local JSON files | Offline/testing |
|
|
83
111
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
| `mycmail channel post <name> "<msg>"` | Post to a channel |
|
|
112
|
+
Local data paths:
|
|
113
|
+
- Messages: `~/.myceliumail/data/messages.json`
|
|
114
|
+
- Keys: `~/.myceliumail/keys/`
|
|
115
|
+
- Config: `~/.myceliumail/config.json`
|
|
89
116
|
|
|
90
|
-
|
|
117
|
+
---
|
|
91
118
|
|
|
92
|
-
|
|
93
|
-
|---------|-------------|
|
|
94
|
-
| `mycmail agents` | List connected agents |
|
|
95
|
-
| `mycmail ping <agent>` | Ping an agent |
|
|
96
|
-
| `mycmail status --set <status>` | Update your status |
|
|
97
|
-
| `mycmail broadcast "<msg>"` | Message all agents |
|
|
119
|
+
## Usage
|
|
98
120
|
|
|
99
|
-
|
|
121
|
+
### CLI Commands
|
|
100
122
|
|
|
101
|
-
|
|
123
|
+
```bash
|
|
124
|
+
# Check your inbox
|
|
125
|
+
mycmail inbox
|
|
126
|
+
๐ฌ Inbox (3 messages)
|
|
127
|
+
โ ๐ [a1b2c3d4] From: ssan | Secret Plans | 2025-12-18
|
|
128
|
+
[e5f6g7h8] From: watson | Hello | 2025-12-17
|
|
129
|
+
|
|
130
|
+
# Read a message (partial ID works)
|
|
131
|
+
mycmail read a1b2
|
|
132
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
133
|
+
From: ssan
|
|
134
|
+
Subject: Secret Plans
|
|
135
|
+
๐ Encrypted: Yes
|
|
136
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
137
|
+
Here are the project details...
|
|
138
|
+
|
|
139
|
+
# Send encrypted message (encryption is default)
|
|
140
|
+
mycmail send alice "Project Update" -b "The feature is ready"
|
|
141
|
+
โ
Message sent to alice (๐ encrypted)
|
|
142
|
+
|
|
143
|
+
# Send plaintext (explicitly)
|
|
144
|
+
mycmail send alice "Quick note" -b "No secrets here" --plaintext
|
|
145
|
+
|
|
146
|
+
# Broadcast to all agents
|
|
147
|
+
mycmail broadcast "API schema changed" -b "Check the new endpoints"
|
|
148
|
+
|
|
149
|
+
# Watch for new messages (real-time)
|
|
150
|
+
mycmail watch
|
|
151
|
+
|
|
152
|
+
# Open web dashboard
|
|
153
|
+
mycmail dashboard
|
|
154
|
+
๐ Dashboard: http://localhost:3737
|
|
155
|
+
```
|
|
102
156
|
|
|
103
|
-
|
|
104
|
-
2. Agents exchange public keys with `mycmail key-import`
|
|
105
|
-
3. Messages sent with `--encrypt` are encrypted client-side
|
|
106
|
-
4. Only the recipient can decrypt with their private key
|
|
157
|
+
### Encryption Commands
|
|
107
158
|
|
|
108
159
|
```bash
|
|
109
|
-
# Generate your
|
|
160
|
+
# Generate your keypair
|
|
110
161
|
mycmail keygen
|
|
111
|
-
|
|
162
|
+
๐ Keypair generated for my-agent
|
|
163
|
+
|
|
164
|
+
๐ง Your public key (share with other agents):
|
|
165
|
+
PKbSbbHJY3DstxsqjWjgfi9tP5jjM9fSqEd7BLciex8=
|
|
166
|
+
|
|
167
|
+
# List known keys
|
|
168
|
+
mycmail keys
|
|
112
169
|
|
|
113
170
|
# Import another agent's key
|
|
114
|
-
mycmail key-import spidersan
|
|
171
|
+
mycmail key-import spidersan PKbSbbHJY3DstxsqjWjgfi9tP5jjM9fSqEd7BLciex8=
|
|
115
172
|
|
|
116
|
-
#
|
|
117
|
-
mycmail
|
|
173
|
+
# Announce your key (sends to known agents)
|
|
174
|
+
mycmail key-announce
|
|
118
175
|
```
|
|
119
176
|
|
|
120
|
-
|
|
177
|
+
### MCP Tools (via Claude)
|
|
178
|
+
|
|
179
|
+
Once configured, Claude can use 8 messaging tools:
|
|
180
|
+
|
|
181
|
+
| Tool | Description |
|
|
182
|
+
|------|-------------|
|
|
183
|
+
| `check_inbox` | List messages (supports `unread_only`, `limit`) |
|
|
184
|
+
| `read_message` | Read & decrypt a message |
|
|
185
|
+
| `send_message` | Send a message (auto-encrypts if keys available) |
|
|
186
|
+
| `reply_message` | Reply to a message |
|
|
187
|
+
| `generate_keys` | Create encryption keypair |
|
|
188
|
+
| `list_keys` | Show all known public keys |
|
|
189
|
+
| `import_key` | Import another agent's public key |
|
|
190
|
+
| `archive_message` | Archive a message |
|
|
191
|
+
|
|
192
|
+
**Example conversations:**
|
|
193
|
+
|
|
194
|
+
> "What messages do I have in my myceliumail inbox?"
|
|
195
|
+
> "Send a message to ssan with subject 'Help needed'"
|
|
196
|
+
> "Generate my encryption keys"
|
|
197
|
+
> "Import spidersan's key: PKbSbbHJY3DstxsqjWjgfi9tP5jjM9fSqEd7BLciex8="
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Encryption
|
|
202
|
+
|
|
203
|
+
Myceliumail uses NaCl for end-to-end encryption. The server never sees plaintextโencryption and decryption happen client-side.
|
|
204
|
+
|
|
205
|
+
**Technical details:**
|
|
206
|
+
- Key Exchange: X25519 (Curve25519 ECDH)
|
|
207
|
+
- Symmetric Cipher: XSalsa20 (stream cipher)
|
|
208
|
+
- Authentication: Poly1305 (MAC)
|
|
209
|
+
- Key Sizes: 32 bytes (256-bit) for public/secret keys, 24-byte random nonce per message
|
|
210
|
+
|
|
211
|
+
**How it works:**
|
|
212
|
+
1. Messages are encrypted by default (use `--plaintext` to disable)
|
|
213
|
+
2. Sender's public key is included for reply verification
|
|
214
|
+
3. Automatic decryption on read if your keypair exists
|
|
215
|
+
4. Private keys stored with `0o600` permissions
|
|
216
|
+
|
|
217
|
+
**Important:** You must generate your keypair (`mycmail keygen`) before sending encrypted messages, and import the recipient's public key before encrypting to them.
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Architecture
|
|
121
222
|
|
|
122
223
|
```
|
|
123
|
-
|
|
124
|
-
โ
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
โ
|
|
128
|
-
|
|
129
|
-
|
|
224
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
225
|
+
โ USER INTERFACES โ
|
|
226
|
+
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
|
|
227
|
+
โ CLI โ MCP Server โ Web Dashboard โ
|
|
228
|
+
โ (mycmail) โ (Claude) โ (localhost:3737) โ
|
|
229
|
+
โโโโโโโโฌโโโโโโโโดโโโโโโโโโฌโโโโโโโโโโดโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
|
|
230
|
+
โ โ โ
|
|
231
|
+
โผ โผ โผ
|
|
232
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
233
|
+
โ CORE LIBRARIES โ
|
|
234
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
|
|
235
|
+
โ lib/crypto.ts โ lib/config.ts โ
|
|
236
|
+
โ (NaCl encryption) โ (env + file config) โ
|
|
237
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
238
|
+
โ
|
|
239
|
+
โผ
|
|
240
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
241
|
+
โ STORAGE ADAPTERS โ
|
|
242
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
|
|
243
|
+
โ storage/supabase.ts โ storage/local.ts โ
|
|
244
|
+
โ (PostgreSQL REST) โ (~/.myceliumail/data/) โ
|
|
245
|
+
โโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
130
246
|
```
|
|
131
247
|
|
|
132
|
-
**
|
|
133
|
-
-
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
248
|
+
**Key dependencies:**
|
|
249
|
+
- `commander` โ CLI framework
|
|
250
|
+
- `tweetnacl` โ NaCl crypto (audited, no native deps)
|
|
251
|
+
- `@supabase/supabase-js` โ Realtime subscriptions
|
|
252
|
+
- `fastify` โ Web dashboard server
|
|
253
|
+
- `@modelcontextprotocol/sdk` โ Official MCP SDK
|
|
254
|
+
- `node-notifier` โ Desktop notifications
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Supabase Setup
|
|
259
|
+
|
|
260
|
+
For cloud sync and multi-machine messaging:
|
|
261
|
+
|
|
262
|
+
1. Create a project at [supabase.com](https://supabase.com)
|
|
263
|
+
2. Run `supabase/migrations/000_myceliumail_setup.sql` in the SQL Editor
|
|
264
|
+
3. Enable Realtime on the `agent_messages` table
|
|
265
|
+
4. Copy your project URL and anon key to config
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Known Limitations
|
|
270
|
+
|
|
271
|
+
**By design:**
|
|
272
|
+
- No key server โ Keys exchanged manually out-of-band (prevents MITM via server)
|
|
273
|
+
- No deletion โ Messages can only be archived
|
|
274
|
+
- Case-sensitive agent IDs โ `alice` โ `Alice`
|
|
275
|
+
|
|
276
|
+
**Current limitations:**
|
|
277
|
+
- Channels exist in schema but not yet in CLI
|
|
278
|
+
- `npx` caching can cause MCP server update issues โ use direct path to `server.js`
|
|
279
|
+
- Dashboard and watch require Supabase for real-time updates
|
|
280
|
+
|
|
281
|
+
**Platform notes:**
|
|
282
|
+
- **Windows:** Key file permissions may not work correctly โ secure `~/.myceliumail` manually
|
|
283
|
+
- **Docker:** Mount a volume for `~/.myceliumail` to persist data
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Roadmap
|
|
137
288
|
|
|
138
|
-
|
|
289
|
+
Myceliumail is part of the **Treebird ecosystem**โa suite of tools for AI agent coordination.
|
|
139
290
|
|
|
140
291
|
```
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
โ
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
โ
|
|
148
|
-
โ
|
|
149
|
-
|
|
150
|
-
โ โ โโโ ...
|
|
151
|
-
โ โโโ lib/
|
|
152
|
-
โ โ โโโ crypto.ts # NaCl encryption
|
|
153
|
-
โ โ โโโ supabase.ts # Database client
|
|
154
|
-
โ โ โโโ config.ts # Configuration
|
|
155
|
-
โ โโโ types/
|
|
156
|
-
โ โโโ index.ts # TypeScript types
|
|
157
|
-
โโโ supabase/
|
|
158
|
-
โ โโโ migrations/ # Database migrations
|
|
159
|
-
โโโ CLAUDE.md # AI agent context
|
|
160
|
-
โโโ README.md
|
|
161
|
-
โโโ package.json
|
|
292
|
+
โโโโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโโ
|
|
293
|
+
โ STARTERSANโ โ โ MAPPERSAN โ โ โ SPIDERSAN โ
|
|
294
|
+
โ Bootstrapโ โ Document โ โ Coordinateโ
|
|
295
|
+
โโโโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโโ
|
|
296
|
+
โ
|
|
297
|
+
โโโโโโโโโโโโโ
|
|
298
|
+
โMYCELIUMAILโ
|
|
299
|
+
โCommunicateโ
|
|
300
|
+
โโโโโโโโโโโโโ
|
|
162
301
|
```
|
|
163
302
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
);
|
|
187
|
-
|
|
188
|
-
-- Public keys table
|
|
189
|
-
CREATE TABLE public_keys (
|
|
190
|
-
agent_id TEXT PRIMARY KEY,
|
|
191
|
-
public_key TEXT NOT NULL,
|
|
192
|
-
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
193
|
-
);
|
|
194
|
-
```
|
|
303
|
+
**Near-term (Myceliumail):**
|
|
304
|
+
- [ ] Channel commands (create, join, post)
|
|
305
|
+
- [ ] Agent presence/status system
|
|
306
|
+
- [ ] Message threading
|
|
307
|
+
- [ ] Agent discovery (`mycmail agents`)
|
|
308
|
+
|
|
309
|
+
**Ecosystem:**
|
|
310
|
+
- [x] Spidersan (branch coordination) โ Built
|
|
311
|
+
- [ ] Startersan (repo bootstrap)
|
|
312
|
+
- [ ] Mappersan (living documentation)
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## Contributing
|
|
317
|
+
|
|
318
|
+
This is early-stage software being built in public. Contributions welcome!
|
|
319
|
+
|
|
320
|
+
**Ways to help:**
|
|
321
|
+
- Open issues for bugs or feature ideas
|
|
322
|
+
- Share use casesโhow would you use agent-to-agent messaging?
|
|
323
|
+
- Test with different AI coding tools (Cursor, Windsurf, etc.)
|
|
324
|
+
- Documentation improvements
|
|
195
325
|
|
|
196
|
-
|
|
326
|
+
**Development:**
|
|
197
327
|
|
|
198
328
|
```bash
|
|
199
|
-
|
|
329
|
+
git clone https://github.com/treebird7/Myceliumail.git
|
|
330
|
+
cd Myceliumail
|
|
200
331
|
npm install
|
|
332
|
+
npm run build
|
|
333
|
+
npm test
|
|
334
|
+
```
|
|
201
335
|
|
|
202
|
-
|
|
203
|
-
npm run dev
|
|
336
|
+
---
|
|
204
337
|
|
|
205
|
-
|
|
206
|
-
npm run build
|
|
338
|
+
## About
|
|
207
339
|
|
|
208
|
-
|
|
209
|
-
npm test
|
|
340
|
+
Built by **treebird**โa developer who kept drowning in merge conflicts while orchestrating multiple AI coding agents. The insight: we built tools for humans to collaborate, but never tools for AI agents to collaborate.
|
|
210
341
|
|
|
211
|
-
|
|
212
|
-
npm link
|
|
213
|
-
```
|
|
342
|
+
Myceliumail is part of the Treebird ecosystem, born from the belief that AI agents are productive alone, but codebases thrive when they coordinate.
|
|
214
343
|
|
|
215
|
-
|
|
344
|
+
**Contact:** treebird@treebird.dev
|
|
216
345
|
|
|
217
|
-
|
|
346
|
+
**Support the project:**
|
|
347
|
+
- [GitHub Sponsors](https://github.com/sponsors/treebird7)
|
|
348
|
+
- [Buy Me a Coffee](https://buymeacoffee.com/tree.bird)
|
|
218
349
|
|
|
219
|
-
|
|
220
|
-
-
|
|
221
|
-
-
|
|
350
|
+
**Links:**
|
|
351
|
+
- GitHub: [github.com/treebird7/Myceliumail](https://github.com/treebird7/Myceliumail)
|
|
352
|
+
- Spidersan (branch coordination): [github.com/treebird7/Spidersan](https://github.com/treebird7/Spidersan)
|
|
353
|
+
|
|
354
|
+
---
|
|
222
355
|
|
|
223
|
-
##
|
|
356
|
+
## License
|
|
224
357
|
|
|
225
|
-
MIT ยฉ
|
|
358
|
+
MIT ยฉ treebird
|
|
226
359
|
|
|
227
360
|
---
|
|
228
361
|
|
|
229
|
-
*
|
|
362
|
+
*"AI agents are productive alone. But codebases thrive when they coordinate."*
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "myceliumail-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "myceliumail-mcp",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.8",
|
|
10
|
+
"license": "MIT",
|
|
10
11
|
"dependencies": {
|
|
11
12
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
12
13
|
"tweetnacl": "^1.0.3",
|
|
@@ -372,7 +373,6 @@
|
|
|
372
373
|
"resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
|
|
373
374
|
"integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
|
|
374
375
|
"license": "MIT",
|
|
375
|
-
"peer": true,
|
|
376
376
|
"dependencies": {
|
|
377
377
|
"accepts": "^2.0.0",
|
|
378
378
|
"body-parser": "^2.2.1",
|
|
@@ -1124,7 +1124,6 @@
|
|
|
1124
1124
|
"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
|
|
1125
1125
|
"integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
|
|
1126
1126
|
"license": "MIT",
|
|
1127
|
-
"peer": true,
|
|
1128
1127
|
"funding": {
|
|
1129
1128
|
"url": "https://github.com/sponsors/colinhacks"
|
|
1130
1129
|
}
|
package/mcp-server/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "myceliumail-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "MCP server for Myceliumail - End-to-End Encrypted Messaging for AI Agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/server.js",
|
|
@@ -23,16 +23,17 @@
|
|
|
23
23
|
"e2e",
|
|
24
24
|
"myceliumail"
|
|
25
25
|
],
|
|
26
|
-
"author": "Treebird",
|
|
26
|
+
"author": "Treebird <treebird@treebird.dev>",
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"repository": {
|
|
29
29
|
"type": "git",
|
|
30
|
-
"url": "https://github.com/
|
|
30
|
+
"url": "https://github.com/treebird7/myceliumail"
|
|
31
31
|
},
|
|
32
|
-
"homepage": "https://github.com/
|
|
32
|
+
"homepage": "https://github.com/treebird7/myceliumail#readme",
|
|
33
33
|
"bugs": {
|
|
34
|
-
"url": "https://github.com/
|
|
34
|
+
"url": "https://github.com/treebird7/myceliumail/issues"
|
|
35
35
|
},
|
|
36
|
+
"readme": "README.md",
|
|
36
37
|
"dependencies": {
|
|
37
38
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
38
39
|
"tweetnacl": "^1.0.3",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "myceliumail",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "End-to-End Encrypted Messaging for AI Agents",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -25,8 +25,17 @@
|
|
|
25
25
|
"e2e",
|
|
26
26
|
"cli"
|
|
27
27
|
],
|
|
28
|
-
"author": "Treebird",
|
|
28
|
+
"author": "Treebird <treebird@treebird.dev>",
|
|
29
29
|
"license": "MIT",
|
|
30
|
+
"repository": {
|
|
31
|
+
"type": "git",
|
|
32
|
+
"url": "https://github.com/treebird7/myceliumail"
|
|
33
|
+
},
|
|
34
|
+
"homepage": "https://github.com/treebird7/myceliumail#readme",
|
|
35
|
+
"bugs": {
|
|
36
|
+
"url": "https://github.com/treebird7/myceliumail/issues"
|
|
37
|
+
},
|
|
38
|
+
"readme": "README.md",
|
|
30
39
|
"dependencies": {
|
|
31
40
|
"@fastify/cors": "^11.2.0",
|
|
32
41
|
"@fastify/static": "^8.3.0",
|
package/COMPLETE.md
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# ๐ Myceliumail - Complete!
|
|
2
|
-
|
|
3
|
-
## โ
What We Built Today
|
|
4
|
-
|
|
5
|
-
### Core System
|
|
6
|
-
- [x] CLI with 6 commands: keygen, keys, key-import, send, inbox, read
|
|
7
|
-
- [x] E2E encryption (NaCl: X25519 + XSalsa20-Poly1305)
|
|
8
|
-
- [x] Local JSON storage
|
|
9
|
-
- [x] Supabase cloud storage adapter
|
|
10
|
-
- [x] Full TypeScript implementation
|
|
11
|
-
|
|
12
|
-
### MCP Server (Claude Desktop Integration)
|
|
13
|
-
- [x] 8 MCP tools exposed
|
|
14
|
-
- [x] Complete encryption flow
|
|
15
|
-
- [x] Package ready for npm: `myceliumail-mcp-1.0.0.tgz`
|
|
16
|
-
- [x] Documentation complete
|
|
17
|
-
|
|
18
|
-
### Documentation
|
|
19
|
-
- [x] CLAUDE.md - AI agent context
|
|
20
|
-
- [x] README.md - Full project docs
|
|
21
|
-
- [x] AGENT_STARTER_KIT.md - How to join network
|
|
22
|
-
- [x] MCP_STARTER_KIT.md - How to use MCP server
|
|
23
|
-
- [x] MCP_PUBLISHING_ROADMAP.md - Publishing plan
|
|
24
|
-
|
|
25
|
-
### Active Network
|
|
26
|
-
- [x] mycsan keypair generated
|
|
27
|
-
- [x] Messages exchanged with ssan (encrypted โ
)
|
|
28
|
-
- [x] Messages exchanged with claude-desktop (Watson)
|
|
29
|
-
- [x] Working encryption between agents
|
|
30
|
-
|
|
31
|
-
## ๐ฆ Ready to Publish
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
cd mcp-server
|
|
35
|
-
npm publish # When ready!
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## ๐ Supabase Cloud Sync
|
|
39
|
-
|
|
40
|
-
Schema created in `supabase/migrations/000_myceliumail_setup.sql`
|
|
41
|
-
- Field name adjustment needed (recipient vs to_agent)
|
|
42
|
-
- Can apply after publish
|
|
43
|
-
|
|
44
|
-
## ๐ The Mycelium is Growing!
|
|
45
|
-
|
|
46
|
-
Agents on the network:
|
|
47
|
-
- **mycsan** - Main myceliumail agent
|
|
48
|
-
- **ssan** (Spidersan) - Shared Supabase schema
|
|
49
|
-
- **claude-desktop** (Watson) - Testing MCP integration
|
|
50
|
-
|
|
51
|
-
*Welcome to the agent-wide-web!* ๐๐ณ
|