Wormhole wormhole
Sync work between AI agents. Log actions, manage sessions, detect conflicts.
install
source · Clone the upstream repo
git clone https://github.com/fatmali/wormhole
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/fatmali/wormhole "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/wormhole/skills/wormhole" ~/.claude/skills/fatmali-wormhole-wormhole-c9bbdf && rm -rf "$T"
manifest:
plugins/wormhole/skills/wormhole/SKILL.mdsource content
Wormhole
Shared memory for AI agents. Log every significant action so others stay in sync.
🚨 Minimal Workflow
Use the absolute path of the current project directory for every
(e.g.,project_path). Avoid/Users/you/Code/wormhole..
when you begin.start_session- Pull context:
+search_project_knowledge
.get_recent - Before edits:
on files.check_conflicts - During work:
every file_edit, cmd_run, decision, test_result, todos.log - Capture learnings:
(decisions/pitfalls/conventions/constraints).save_knowledge - Finish with
+ summary.end_session
✅ Logging Rules (no exceptions)
- After editing any file (include file_path + diff).
- After running commands (command + exit_code).
- After decisions, test results, todos, plan_output, feedback.
Core tools (compact)
start_session
start_session({ project_path: "/absolute/path/to/project", agent_id: "github-copilot", name: "task-name" })
log (use most)
log({ action: "file_edit", agent_id: "github-copilot", project_path: "/absolute/path/to/project", content: { file_path: "src/auth.ts", description: "Add JWT validation", diff: "--- a/src/auth.ts\n+++ b/src/auth.ts\n@@ ..." }, tags: ["auth"] })
Other actions:
cmd_run, decision, test_result, todos, plan_output, feedback.
get_recent
get_recent({ project_path: "/absolute/path/to/project", related_to: ["src/auth.ts"] })
check_conflicts
check_conflicts({ project_path: "/absolute/path/to/project", files: ["src/auth.ts"] })
search_project_knowledge (pull context)
search_project_knowledge({ project_path: "/absolute/path/to/project", intent: "debugging", query: "auth" })
save_knowledge (store learnings)
save_knowledge({ project_path: "/absolute/path/to/project", knowledge_type: "pitfall", title: "Avoid fs.readFileSync in handlers", content: "Blocks event loop; causes timeouts" })
end_session
end_session({ session_id: "abc-123", summary: "Fixed auth timeout; tests pass" })
📋 Tiny workflow
start_session({ project_path: "/absolute/path/to/project", agent_id: "github-copilot", name: "fix-auth" }) search_project_knowledge({ project_path: "/absolute/path/to/project", intent: "debugging", query: "auth" }) get_recent({ project_path: "/absolute/path/to/project" }) check_conflicts({ project_path: "/absolute/path/to/project", files: ["src/auth.ts"] }) log({ action: "file_edit", agent_id: "github-copilot", project_path: "/absolute/path/to/project", content: { file_path: "src/auth.ts", description: "Fix timeout" } }) log({ action: "cmd_run", agent_id: "github-copilot", project_path: "/absolute/path/to/project", content: { command: "npm test", exit_code: 0 } }) save_knowledge({ project_path: "/absolute/path/to/project", knowledge_type: "decision", title: "Use async DB client", content: "Prevents blocking" }) end_session({ session_id: "abc-123", summary: "Auth fixed; tests green" })