en un clic
omni
// Wire a Genie agent to an Omni channel in one canonical flow — register the agent, bind to an instance, verify the round-trip. Replaces the 5+ command legacy chain.
// Wire a Genie agent to an Omni channel in one canonical flow — register the agent, bind to an instance, verify the round-trip. Replaces the 5+ command legacy chain.
Dispatch trace subagent to investigate unknown issues — reproduces, traces, and reports root cause for /fix handoff.
Investigate bugs comprehensively — cascade through /trace, capture browser evidence, extract observability data, and auto-create a GitHub issue with all findings.
Full PM playbook — triage backlog, prioritize, assign, track, report, escalate. Copilot, autopilot, or pair modes.
Convene real AI agents for multi-perspective deliberation on architecture, design, and strategy decisions.
Entry point for all genie operations — auto-routes natural language to the right skill, detects lifecycle state, and handles operational commands. Use when planning features, reporting bugs, managing teams, or asking about genie.
Batch-execute SHIP-ready wishes overnight — pick wishes, orchestrate workers, review PRs, wake up to results.
| name | omni |
| description | Wire a Genie agent to an Omni channel in one canonical flow — register the agent, bind to an instance, verify the round-trip. Replaces the 5+ command legacy chain. |
| allowed-tools | Bash(omni *), Bash(genie *) |
Single-command wizard that takes an operator from "no agent yet" (or "an existing genie agent") to "agent answering messages on a channel". Wraps genie agent register + omni connect + verification into one conversational flow so operators don't have to remember two systems' command surfaces.
/genie:omni and expects the assistant to drive.If the legacy multi-command chain (omni providers create + omni agents create + omni instances update --agent + omni routes create) is what you reach for first — stop and use this skill instead. The legacy chain still works for power users / CI but emits stderr deprecation nudges pointing here.
These checks are quick and tell you which Phase to start in. Always run them up front:
omni auth status # Phase 1 needed if missing or invalid
genie serve status # Phase 4 verification needs this green
omni instances list # at least one connected instance needed for Phase 3
Entry: Always (first thing to check).
Steps:
omni auth status. If it reports a valid connection, skip to Phase 2.omni install in a separate terminal (do NOT nest two interactive flows from inside this skill — the omni installer is itself a wizard).omni install completed.omni auth status to verify, then continue to Phase 2.Exit: omni auth status succeeds.
Entry: Phase 1 passed.
Steps:
genie dir ls <name> to confirm it's already registered. If yes, skip to Phase 3.AGENTS.md. Validate up front:
<dir>/AGENTS.md must be a real file, not a symlink. If it's a symlink, ask whether the operator wants to register the dir the symlink points to instead (almost always the right answer), or pass --allow-symlink (only if intentional template-sharing layout).genie agent register <name> --dir <validated-path>. The default flow auto-registers the agent in Omni (creates the agent record). Do NOT pass --skip-omni here — Phase 3 uses omni connect which expects the agent record to exist./genie:wizard (which scaffolds an agent identity and AGENTS.md), then come back to this Phase 2 with the freshly-scaffolded dir.Exit: genie dir ls <name> returns a clean entry with the correct Dir: field.
Entry: Phase 2 passed.
Steps:
omni instances list and show the operator the connected instances (those with ACTIVE=yes). Highlight the channel and profile name so the operator picks the right one./omni:omni-setup (the omni plugin's connect-channel wizard) and pause this flow until an instance is connected.omni connect <instance-id> <agent-name> — this is the canonical command. It:
genie dir ls <name> --json (so the agent must have been registered in Phase 2),nats-genie provider,agentId, agentProviderId, agentReplyFilter, and triggerMode.--mode turn-based (default, recommended for chat) or --mode fire-and-forget if they have a reason. Default --reply-filter all is fine for KHAL-V1-LAUNCH-style group bots.omni connect — note the agent ID, provider ID, and the NATS subjects (omni.message.<inst>.* inbound, omni.reply.<inst>.* outbound).Exit: omni connect exits 0 with the configuration summary.
Entry: Phase 3 passed.
Steps:
Confirm the bridge daemon is running:
genie serve status
If not running, start it:
genie serve start --headless
Confirm the bridge is subscribed to the right NATS subjects:
nats --server localhost:4222 server report connections | grep genie-omni-bridge
Should show 7+ subscriptions with non-zero uptime.
Run a synthetic round-trip:
tail -f ~/.pm2/logs/omni-api-out.log | grep <chat-id> — expect Received → Dispatching → Published to NATS → Agent response within a few seconds.genie agent ls should show a new per-chat agent (e.g. <name>:<chat-id> in idle state).Print the final topology:
📨 WhatsApp/Telegram
│
▼
🌐 Omni instance <instance-id> channel=<channel>
│
▼
🔌 nats-genie provider <provider-id> agentName=<name>
│
▼ NATS subject: omni.message.<inst>.*
▼
🤖 genie-omni-bridge → spawns claude in <agent.dir> with --resume <session>
│
▼
📝 Claude (TUI) responds via `omni say "..."`
Exit: A real test message gets a real reply in the chat. Done.
If any Phase fails, point the operator at Runbooks/wire-new-omni-agent.md (lives in their genie-configure brain) for the fallback two-command path:
genie agent register <name> --dir <validated-path>
omni connect <instance-id> <name>
…plus the troubleshooting table for common symptoms (wrong cwd, bridge not subscribing, multiple agents with same role).
omni install or /genie:wizard is needed, hand off to the operator and pause this skill.--skip-omni in this flow. It defeats Phase 3.--dir is real (not a symlink). As of v4.260429.14+, genie agent register rejects symlinked AGENTS.md by default; this skill should not pass --allow-symlink unless the operator explicitly says so.omni connect, not the legacy chain. If the operator is mid-way through manually creating providers/agents/routes, ask them to stop and run omni connect instead — it's idempotent and reuses anything already created.omni_sk_… API key in ~/.omni/config.json is read by genie agent register automatically; never echo it back to the operator or include it in commit messages.--skip-omni warning).genie omni start hint), automagik-dev/omni#553 (deprecation nudges scaffolding).canonical-genie-omni-wiring — .genie/wishes/canonical-genie-omni-wiring/WISH.md./omni:omni-setup (covers omni install + channel connect; this skill picks up where that one ends).