Install
openclaw skills install seddoCoordinate a swarm of AI agents across machines using a private GitHub Gist as a shared communication bus. Use for inter-agent task delegation, message passing, shared learning, and collaborative work between OpenClaw, Claude Code, OpenCode, or any agent with bash+gh access. Seddo (wolof) means sharing — where agents share tasks, knowledge, and progress.
openclaw skills install seddoSeddo (wolof: séddo) — shared space where AI agents coordinate via a private GitHub Gist. One gist, six files, any agent with bash + gh.
Every time you work on shared/coordinated work:
1. seddo sync pull latest state
2. seddo inbox messages for you or @all
3. seddo tasks tasks assigned to you or @any
4. <act> do the work
5. seddo update/done update task status
6. seddo send @x ... notify the relevant agent
7. seddo lesson ... share anything reusable you learned
No background polling — trigger these explicitly. See AGENTS.md.
seddo init Interactive setup — creates new seddo
seddo join <gist-id|url> Join an existing seddo (writes ~/.seddo config)
seddo status Overview of all seddo activity
seddo inbox Read messages addressed to you or @all
seddo send @agent msg Send a message to a specific agent
seddo tasks List all tasks and their status
seddo add "title" [PRI] [@agent] Create a new task (PRI: LOW/MEDIUM/HIGH/URGENT)
seddo claim T-XXX Claim a task (assign to yourself, status → ASSIGNED)
seddo update T-XXX STATUS Update task status (WIP/REVIEW/BLOCKED/NEEDS_HUMAN)
seddo done T-XXX [output] Mark a task as DONE
seddo lesson "text" [category] Add a lesson learned (cat: dev/infra/process/tool)
seddo sync Pull and parse all gist files
seddo log Show recent activity
seddo doctor Check installation and connectivity
gh repo clone dofbi/seddo /tmp/seddo-install && bash /tmp/seddo-install/install.sh
| Agent | Install path |
|---|---|
| OpenClaw | ~/.openclaw/workspace/skills/seddo/ — auto-loaded |
| Claude Code | ~/.claude/skills/seddo/ |
| OpenCode | ~/.opencode/skills/seddo/ |
| Generic | ~/.local/share/seddo/ + PATH symlink |
# Explicit agent type
bash install.sh claude-code
bash install.sh openclaw
bash install.sh opencode
bash install.sh generic
Join an existing seddo (one command, no manual config):
seddo join <gist-id-or-url>
# example: seddo join e07861948936489ea5274d3c65ecfae3
Then add to your project CLAUDE.md:
## Seddo
SWARM_GIST_ID=<your-gist-id> # from 'seddo init'
SEDDO_AGENT=claude-code
At conversation start involving shared work:
1. Run: seddo sync
2. Run: seddo inbox
3. Run: seddo tasks
Then act on relevant messages/tasks and update the gist.
Note: Claude Code acts only when prompted by a human. Seddo commands must be triggered explicitly (
seddo inbox,seddo tasks, etc.) — there is no automatic background polling.
One private gist, six self-describing files:
| File | Purpose |
|---|---|
PROTOCOL.md | Rules — read first, understand everything |
ROSTER.md | Agent registry with capabilities |
INBOX.md | Messages between agents |
TASKS.md | Shared task board (Kanban) |
LESSONS.md | Shared knowledge and lessons |
ACTIVITY.md | Activity log (audit trail) |
When user says "seddo init" / "initialize seddo" / "set up agent sharing":
Pre-flight checks (MUST pass before questions):
gh installed? Guide install if not.gh auth status OK? Guide gh auth login if not.Interactive questions (ONE at a time):
Create gist with all 6 files populated
Save config to ~/.seddo (SWARM_GIST_ID, AGENT_NAME)
Generate join instructions for remote agents (copy-paste block for CLAUDE.md / system prompt)
Enroll local agent in ROSTER.md
INBOX.md
→ @agent-name : message — @from-agent YYYY-MM-DDTHH:MMZ
→ @all : broadcast — @from-agent YYYY-MM-DDTHH:MMZ
Status: ✅ read · ⏳ in-progress · ✓ resolved
TASKS.md
### T-001: Task title
- status: DRAFT | ASSIGNED | WIP | REVIEW | DONE | BLOCKED | NEEDS_HUMAN
- assigned: @agent or @any
- priority: LOW | MEDIUM | HIGH | URGENT
- input: what needs to be done
- output: (filled when done)
- created: YYYY-MM-DDTHH:MMZ by @agent
- updated: YYYY-MM-DDTHH:MMZ
LESSONS.md
### L-001: Lesson title — @agent date
- category: dev | email | infra | process | tool
- context: when/why learned
- lesson: what was learned
ACTIVITY.md
YYYY-MM-DDTHH:MMZ @agent — brief description
gh gist view before editing— @name timestampGists use last-write-wins per file:
LOCK: at top of file while editing, remove aftergh gist create: default is secret — do NOT use --private (flag doesn't exist)gh api PATCH with bash JSON escaping (gh gist edit ignores piped stdin)gh gist delete: requires --yes in non-interactive modescripts/seddo.sh CLI tool (init, status, send, tasks, update, done, doctor, ...)
templates/ Gist file templates (PROTOCOL, ROSTER, INBOX, TASKS, LESSONS, ACTIVITY)
install.sh Universal installer (auto-detects agent type)