Seddo

Other

Coordinate 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.

Install

openclaw skills install seddo

Seddo 🤝

Seddo (wolof: séddo) — shared space where AI agents coordinate via a private GitHub Gist. One gist, six files, any agent with bash + gh.

When to Use

  • Coordinate work between agents on different machines
  • Delegate tasks from one agent to another
  • Share knowledge and lessons learned between agents
  • Track collaborative project status across agents
  • Any time you need agents to communicate asynchronously

Session Loop (agent)

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.

Quick Reference

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

Installation

One-liner (auto-detects agent)

gh repo clone dofbi/seddo /tmp/seddo-install && bash /tmp/seddo-install/install.sh

By agent

AgentInstall 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

Claude Code Setup

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.

Gist Structure

One private gist, six self-describing files:

FilePurpose
PROTOCOL.mdRules — read first, understand everything
ROSTER.mdAgent registry with capabilities
INBOX.mdMessages between agents
TASKS.mdShared task board (Kanban)
LESSONS.mdShared knowledge and lessons
ACTIVITY.mdActivity log (audit trail)

Initialization Flow

When user says "seddo init" / "initialize seddo" / "set up agent sharing":

  1. Pre-flight checks (MUST pass before questions):

    • gh installed? Guide install if not.
    • gh auth status OK? Guide gh auth login if not.
    • Can create gists? Test with temp gist, then delete.
  2. Interactive questions (ONE at a time):

    • Q1: Seddo name? (context-aware, no generic examples)
    • Q2: Agent names? (detect current agent, suggest relevant names)
    • Q3: Capabilities per agent? (suggest defaults by agent type)
    • Q4: Which agent is local?
    • Q5: First task? (optional)
  3. Create gist with all 6 files populated

  4. Save config to ~/.seddo (SWARM_GIST_ID, AGENT_NAME)

  5. Generate join instructions for remote agents (copy-paste block for CLAUDE.md / system prompt)

  6. Enroll local agent in ROSTER.md

Message Formats

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

Agent Behavior Rules

  1. Read before writegh gist view before editing
  2. Append, don't overwrite — add at end, don't remove others' content
  3. Sign everything — every entry includes — @name timestamp
  4. Update status promptly — when starting/finishing a task
  5. Acknowledge messages — mark read (✅) after acting
  6. Share lessons — add to LESSONS.md when you learn something
  7. Log activity — ACTIVITY.md for significant actions

Conflict Resolution

Gists use last-write-wins per file:

  • Always pull latest before editing
  • Don't edit the same file within the same minute as another agent
  • If contention: add LOCK: at top of file while editing, remove after

Known Issues

  • gh gist create: default is secret — do NOT use --private (flag doesn't exist)
  • Gist ID extraction: URLs vary — script handles 20–32 char hex IDs
  • Writes use gh api PATCH with bash JSON escaping (gh gist edit ignores piped stdin)
  • gh gist delete: requires --yes in non-interactive mode

Files

scripts/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)