Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
By famdeck
Cross-project issue routing and work handoff between sessions, tools, and people
npx claudepluginhub ivintik/private-claude-marketplace --plugin famdeck-relayGather work context and save it as a handoff — captures git branch state, uncommitted changes, active beads issues, decisions made, and next steps. Use when the user wants to save progress, switch context, delegate work to another session, or says "handoff". Do NOT use for picking up existing handoffs (use relay:pickup) or for checking issue status.
Coordinate multi-agent work via Agent Mail — session bootstrap, file reservations, messaging, and conflict resolution. Use when multiple agents need to work in parallel on the same project, when file ownership needs to be handed off between agents, or when resolving agent conflicts. Do NOT use for single-agent handoffs (use relay:context-gatherer) or general issue tracking.
Import BMAD story and epic artifacts into Beads as trackable issues with dependencies. Use when the user says 'import stories', 'sync BMAD into Beads', 'import epics', or when Beads has no issues but sprint-status.yaml has backlog stories. Shows a dry-run plan before applying. Can filter by specific epic.
---
Send cross-project messages and check inbox via Agent Mail — coordinate between agents, send notifications, and read messages. Use when an agent needs to notify another project, check for incoming messages, acknowledge messages, or start a coordination session. Do NOT use for within-project context transfer (use relay:context-gatherer), issue tracking (use relay:issue), or file conflict resolution (use relay:coordinator).
---
---
Admin access level
Server config contains admin-level keywords
Uses power tools
Uses Bash, Write, or Edit tools
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Simple task tracking for LLM sessions - ownership-based workflow for multi-agent coordination
End-to-end issue triage across all archetypes (Bug, Incident, Story, Feature, Task, Spike) on any supported tracker (Azure DevOps, Jira). Assigns the issue, transitions it to 'investigating', runs the matching investigation skill, refines title and description, posts an assessment comment, sets severity + due date or sprint + story points, links related work, applies the triaged label, and posts a Slack/Teams summary. All writes pass through a single diff-and-confirm gate — the diff is the dry-run. Tracker-agnostic via issuekit.
Manage long-running development projects across multiple sessions
Linear issue tracking integration and workflow management
Harness-native ECC plugin for engineering teams - 64 agents, 262 skills, 84 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses
Core skills library for Claude Code: TDD, debugging, collaboration patterns, and proven techniques
Autonomous development toolkit — autopilot, quality gates, story validation, autonomy assessment
Setup and project init for Claude Code tools — Context7, Serena, Beads, Agent Mail, Atlas, Relay, Codeman
Project registry and cross-project awareness for Claude Code sessions
Issue routing, bidirectional sync, and work handoffs for Claude Code. Routes issues to GitHub, GitLab, Jira, or Beads based on per-project rules. All interaction through slash commands in Claude Code sessions or the relay CLI.
Part of the Famdeck autonomous development toolkit.
claude plugin marketplace add iVintik/private-claude-marketplace
claude plugin install famdeck-relay@ivintik
Or install the full toolkit which includes Relay:
claude plugin install famdeck-toolkit@ivintik
# then in Claude Code:
/toolkit:toolkit-setup
git clone https://github.com/famdeck/famdeck-relay.git
ln -sf /path/to/famdeck-relay/bin/relay ~/.local/bin/relay
Requires: Python >= 3.8, PyYAML.
Optional: Beads CLI (bd), GitHub CLI (gh), GitLab MCP plugin, Jira MCP plugin.
Initialize tracker config for a project (auto-detects from git remote):
> /relay:trackers init
Detected GitHub remote: org/my-app
Created .claude/relay.yaml with:
- github (default) → org/my-app
- beads (local) → agent-created issues
Or manage trackers manually:
> /relay:trackers add --type gitlab --name main --repo group/project --set-default
> /relay:trackers show
> /relay:trackers remove --name old-tracker
Config lives in .claude/relay.yaml:
issue_trackers:
- name: github
type: github
default: true
repo: "org/repo"
- name: beads
type: beads
scope: local
routing_rules:
- match: { source: agent }
action: { default: true }
/relay:issue — Create and Route IssuesCreate an issue and let Relay route it to the right tracker based on your rules:
> /relay:issue "Navbar breaks on mobile" --type bug --priority high
Routing: type=bug, priority=high → github (rule: high-priority bugs)
Created: org/my-app#142 [bug, urgent]
Cross-project issues:
> /relay:issue "Atlas registry stale" --type bug --project atlas
Force a specific tracker:
> /relay:issue "Internal cleanup" --tracker beads
Options: --type (bug|task|feature|chore), --priority (critical|high|medium|low), --labels, --body, --tracker, --project.
/relay:status — Cross-Project Issue DashboardUnified view across all configured trackers:
> /relay:status --all
my-app (github):
#142 [bug] Navbar breaks on mobile open
#138 [feature] Add dark mode support open
my-app (beads):
beads-042 [task] Retry logic for sync engine in_progress
beads-039 [bug] Config path resolution open
atlas (beads):
beads-015 [bug] Registry stale after rename open
Options: --all (all projects), --project, --tracker, --status (open|all), --limit.
/relay:handoff — Save Work ContextCapture your current work state for pickup in another session:
> /relay:handoff --summary "Halfway through auth refactor"
Captured context:
Branch: feat/beads-042-auth-refactor
Commit: a1b2c3d (dirty: 3 files)
Created: beads-055 [relay:handoff]
If no summary given, Claude generates one from the conversation context.
/relay:pickup — Resume from Handoff> /relay:pickup --list
Pending handoffs:
beads-055 "Halfway through auth refactor" (2h ago)
beads-048 "API tests passing, needs docs" (1d ago)
> /relay:pickup beads-055
Restored context:
Objective: Auth refactor — extract token validation
Branch: feat/beads-042-auth-refactor
Decisions: Using jose instead of pyjwt
Next: Finish middleware integration, run tests
All skills wrap the relay CLI. You can also use it directly:
relay issue "Fix timeout" --type bug --priority high
relay route "Fix timeout" --type bug --priority high # dry-run routing
relay sync # auto-detect direction
relay sync --direction bmad-to-beads --dry-run # preview sync
relay sync --check # detect desyncs
relay import --dry-run # preview BMAD import
relay import --epic 1 # import specific epic
relay handoff --summary "Context here"
relay pickup --list
relay status --all
relay prime # session context output
Rules in .claude/relay.yaml match issue properties and route to the right tracker:
issue_trackers:
- name: github
type: github
repo: "org/repo"
default: true
labels: [from-relay]
routing_rules:
- match: { type: bug, priority: [critical, high] }
action: { labels: [urgent], assignee: "@oncall" }
- name: beads
type: beads
scope: local
routing_rules:
- match: { source: agent }
action: { default: true, labels: [agent-created] }