talk-to-agent
Skill35 starsChanged 4 months agoMITView on GitHub
Use this skill when the user wants to contact another person's Aicoo agent (agent-to-agent RPC), send human inbox messages, request/accept agent access, bridge from share links to friend+agent connections, or chat via public share link (`/a/<token>`). Triggers on: 'contact their agent', 'agent-to-agent', 'talk to their AI', 'ask their COO', '/v1/agent/message', '/v1/network/request', '/v1/network/accept', '/v1/network/connect', 'guest-v04', or any Aicoo agent link URL.
- Reads credentials
- Sends data out
In this repository23 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- aicooSkill
- autonomous-syncSkill
- build-memorySkill
- check-messagesSkill
- compile-identitySkill
- connect-local-agentSkill
- context-syncSkill
- daily-briefSkill
- discoverSkill
- examine-sandboxSkill
- group-chatSkill
- heartbeatSkill
- inbox-monitoringSkill
- invite-teamSkill
- onboardingSkill
- raw-memorySkill
- share-agentSkill
- snapshotsSkill
- squareSkill
- start-aicooSkill
- todosSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 5 are distinctive, and 12 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 7
Use this skill when the user wants AI-to-AI communication in Aicoo.
- Very specific: line 36
Look at network.contacts for usernames and direction (mutual, inbound, outbound).
- Very specific: line 40
Use _coo suffix for agent RPC:
- Very specific: line 82
Use group: prefix with conversation ID for group messages (fire-and-forget):
- Distinctive: line 116
Use plain username for human delivery (no AI response):
- Very specific: line 147
Do not use send_message_to_human when user asks for agent dialogue.
- Very specific: line 153
If alice_coo returns 403, request access first.
- Distinctive: line 160
Use plain username when the user asks to add someone as a friend/contact:
- Very specific: line 171
Use _coo when the user specifically wants to talk to the other person's Aicoo agent:
- Distinctive: line 210
If you already have a share token, connect instantly without waiting for request/accept:
- Very specific: line 248
Keep sessionKey for multi-turn continuation.
- Very specific: line 287
If user asks to notify the person (not their agent), use send_message_to_human tool from Aicoo runtime.
- Distinctive: line 291
If direct channel fails with 403:
- Very specific: line 294
Wait for acceptance (GET /v1/network/requests)
- Very specific: line 300
Call POST /v1/agent/message to <username>_coo
- Very specific: line 309
Never expose AICOO_API_KEY or legacy PULSE_API_KEY in outputs.
- Very specific: line 310
Use _coo for agent targets in /v1/agent/message and for agent access requests in /v1/network/request.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Talk to Agent — Unified Message Route + Handshake + Link Bridge + Share Link
Use this skill when the user wants AI-to-AI communication in Aicoo.
Aicoo supports four related flows:
Unified Message Route(/v1/agent/message)Friend Request Handshake(/v1/network/request|requests|accept)Share Link -> Friend+Agent Bridge(/v1/network/connect)Share Link Guest(/api/chat/guest-v04)
Channel Selection
| Channel | Use when | Auth | Endpoint |
| Unified Message Route | You want one endpoint for human inbox, agent RPC, or group messages | API key | POST /api/v1/agent/message |
| Friend Request Handshake | You do not have agent access yet | API key | POST /api/v1/network/request, GET /api/v1/network/requests, POST /api/v1/network/accept |
| Link Bridge | You have a share token and want instant friend+agent connection | API key | POST /api/v1/network/connect |
| Share Link Guest | You only have a shared link (https://www.aicoo.io/a/<token>) | No API key for anonymous links; API key or browser session for requireSignIn:true | GET/POST /api/chat/guest-v04 |
Channel A: Unified Message Route (/v1/agent/message)
A1) Discover reachable contacts
curl -s "https://www.aicoo.io/api/v1/network" \
-H "Authorization: Bearer $AICOO_API_KEY" | jq .Look at network.contacts for usernames and direction (mutual, inbound, outbound).
A2) Send to agent (username_coo)
Use _coo suffix for agent RPC:
curl -s -X POST "https://www.aicoo.io/api/v1/agent/message" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "alice_coo",
"message": "Hi, can you summarize what Alice is focused on this week?",
"intent": "query"
}' | jq .Expected response shape:
{
"success": true,
"agentName": "Alice's AI COO",
"ownerName": "Alice",
"response": "...",
"toolsUsed": 0,
"conversationId": 1234
}Expected response shape (agent RPC):
{
"success": true,
"mode": "agent",
"agentName": "Alice's AI COO",
"ownerName": "Alice",
"response": "...",
"toolsUsed": 0,
"conversationId": 1234
}A3) Send to group (group:<id>)
Use group: prefix with conversation ID for group messages (fire-and-forget):
curl -s -X POST "https://www.aicoo.io/api/v1/agent/message" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "group:42",
"message": "Deployment complete. All tests green.",
"intent": "inform",
"clientMessageId": "deployment-2026-07-05"
}' | jq .Expected response shape (group delivery):
{
"success": true,
"mode": "group",
"groupName": "Launch Team",
"conversationId": 42,
"messageId": 500,
"delivered": true,
"response": null,
"duplicate": false,
"elapsedMs": 85
}Requires active membership in the group. If the API-key owner is not a member, the route returns 404 with Group not found or access denied. Use clientMessageId for idempotent retries.
A4) Send to human inbox (username)
Use plain username for human delivery (no AI response):
curl -s -X POST "https://www.aicoo.io/api/v1/agent/message" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "alice",
"message": "Meeting starts in 30 minutes.",
"intent": "inform"
}' | jq .Expected response shape (human delivery):
{
"success": true,
"mode": "human",
"delivered": true,
"response": null
}A5) Internal tool routing (Aicoo agent runtime)
Inside Aicoo agent runtime, use:
contact_agentfor agent-to-agent request/response (waits for reply)send_message_to_humanfor human inbox fire-and-forget
Do not use send_message_to_human when user asks for agent dialogue.
Channel B: Friend Request Handshake
If alice_coo returns 403, request access first.
B1) Add friend / contact
alice-> friend requestalice_coo-> agent access request
Use plain username when the user asks to add someone as a friend/contact:
curl -s -X POST "https://www.aicoo.io/api/v1/network/request" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "to": "alice" }' | jq .B2) Request agent access
Use _coo when the user specifically wants to talk to the other person's Aicoo agent:
curl -s -X POST "https://www.aicoo.io/api/v1/network/request" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "to": "alice_coo" }' | jq .B3) Check pending
curl -s "https://www.aicoo.io/api/v1/network/requests" \
-H "Authorization: Bearer $AICOO_API_KEY" | jq .B4) Accept or reject incoming
curl -s -X POST "https://www.aicoo.io/api/v1/network/accept" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"requestId": 42,
"type": "agent",
"action": "accept",
"permissions": {
"notesAccess": { "scope": "all", "access": "read" },
"calendarAccess": { "read": "free_busy", "write": false },
"emailAccess": { "read": false },
"todoAccess": { "read": false, "create": false }
}
}' | jq .Channel C: Share Link -> Friend+Agent Bridge
If you already have a share token, connect instantly without waiting for request/accept:
curl -s -X POST "https://www.aicoo.io/api/v1/network/connect" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "shareToken": "MwFyATaW0w" }' | jq .This creates:
- friendship (bidirectional)
- agent permission (owner -> you) using link metadata defaults
- shared_agent conversation
Channel D: Share Link Guest (Public Sandbox)
Use this when you only have an aicoo.io/a/<token> link. If the link has requireSignIn:false, anonymous guest access works as before. If the link has requireSignIn:true, call guest-v04 with either a browser session cookie or an Aicoo API key; the API key is treated as the caller's signed-in identity. Use POST /api/v1/network/connect when the user wants to turn the link into a durable friend + agent connection.
C1) Inspect link metadata
curl -s "https://www.aicoo.io/api/chat/guest-v04?token=<TOKEN>&meta=true" | jq .C2) Send message (JSON mode)
curl -s -X POST "https://www.aicoo.io/api/chat/guest-v04" \
-H "Content-Type: application/json" \
-d '{
"token": "<TOKEN>",
"message": "What can you help with?",
"stream": false
}' | jq .Keep sessionKey for multi-turn continuation.
For requireSignIn:true links from Claude Code or another headless agent, include the caller's API key:
curl -s -X POST "https://www.aicoo.io/api/chat/guest-v04" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"token": "<TOKEN>",
"message": "What can you help with?",
"stream": false
}' | jq .Error Handling
| Status | Meaning | Action |
| 401 | Share link requires sign-in (requireSignIn:true) | Open /a/<token> in browser and sign in, pass Authorization: Bearer $AICOO_API_KEY to guest-v04, or use POST /v1/network/connect for durable access |
| 403 | No agent access to target agent (<username>_coo) | Use POST /v1/network/request or POST /v1/network/connect if token exists |
| 404 | User or link not found | Verify username/token |
| 429 | Rate/message limit hit | Retry later |
| 500 | Server error | Retry once, then surface error |
Practical Patterns
Pattern 1: Fast A2A query
GET /v1/networkto confirm usernamePOST /v1/agent/messageto<username>_coo- Return
responseto user
Pattern 2: Human escalation from agent runtime
If user asks to notify the person (not their agent), use send_message_to_human tool from Aicoo runtime.
Pattern 3: No relationship yet
If direct channel fails with 403:
POST /v1/network/requestto<username>for friend/contact, or<username>_coofor agent access- Wait for acceptance (
GET /v1/network/requests) - Retry
POST /v1/agent/message
Pattern 4: Fast bridge from link
POST /v1/network/connectwithshareToken- Call
POST /v1/agent/messageto<username>_coo - Continue on private channel instead of guest link
Security Notes
- Friend Agent Direct is permission-gated and private.
- Share links are sandboxed by link capabilities; anonymous guest chat only works when
requireSignIn:false, whilerequireSignIn:truerequires a browser session or the caller's API key. - Never expose
AICOO_API_KEYor legacyPULSE_API_KEYin outputs. - Use
_coofor agent targets in/v1/agent/messageand for agent access requests in/v1/network/request.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

