Multi-agent orchestration for GitHub Copilot CLI. Drop a curated payload of specialist agents, auto-triggered skills, an MCP state server, and safety guardrails into any repo with a single command.
Quick start · What's inside · Workflows · Architecture · Verification · Reference · Changelog
GitHub Copilot CLI gives you one general-purpose model. Real engineering work isn't general-purpose — it's planning, then critique, then tests-first, then implementation, then verification. Each phase needs different prompts, different guardrails, and different shared state.
omcc ships a battle-tested multi-agent payload — ported from oh-my-claudecode (MIT) and rewritten for the Copilot CLI tool surface — so you get this structure for free in any repo, with one command:
npx oh-my-github-copilot-cli initNo build step. No native dependencies. No vendor lock-in — everything lands as plain markdown + a small Node MCP server inside your repo's .github/, fully diffable and editable.
| Capability | Count | Where it lands | What it does |
|---|---|---|---|
| 🤖 Custom agents | 24 | .github/agents/*.agent.md |
Specialist roles — planner, critic, tester, implementer, verifier, security-reviewer, architect, debugger, tracer, code-reviewer, … Invoke with task or --agent. |
| 🪄 Auto-triggered skills | 42 | .github/skills/<name>/SKILL.md |
Workflow recipes auto-loaded by prompt match — autopilot, workflow-spec / workflow-tdd / workflow-critique / workflow-verify, debug, release, deep-dive, trace, remember, … |
🧠 MCP state server (omcc-mcp) |
14 tools | bundled, registered in ~/.copilot/mcp-config.json |
Cross-agent shared state: PRD/stories, workflow phase, long-form memory, k/v scratch, model routing. Backed by Node 22's built-in node:sqlite — zero native deps. |
| 🛡️ SDK hook extensions | 3 | .github/extensions/*/extension.mjs |
omcc-guardrails (block rm -rf /, secret commits, force-push to protected branches), omcc-autoinject-skills (best-match skill body injected on user prompt), omcc-statusline (passive status writer). |
⚙️ omcc CLI |
5 commands | omcc + oh-my-github-copilot-cli bins |
init · setup · doctor · upgrade · adopt. JSONC-aware merge that only ever touches the omcc-mcp entry. |
| 🧪 Tests | 50 | tests/ (vitest) |
Frontmatter validator, installer idempotency, guardrails, MCP server contracts. CI matrix: macOS + Ubuntu + Windows × Node 22. |
Highlighted skills:
autopilot(full SPEC → PLAN → CRITIQUE → TDD → IMPL → VERIFY in one go),workflow-tdd(refuses to start without SPEC.md + PLAN.md),release(cuts versioned releases per repo's rules),ccg(orchestrates Claude · Codex · Gemini in parallel via host CLIs).
# 1. Install
npm install -g oh-my-github-copilot-cli
# 2. Scaffold into any repo
cd your-project
omcc init
# 3. Verify
omcc doctor
# 4. Use it
copilot # GitHub Copilot CLI
> /agents # 24 specialists are now listed
> autopilot: build a CLI that converts CSV → JSONomcc init is idempotent and non-destructive: re-runs skip files that already exist (use --force to overwrite). The MCP server entry is merged into your existing ~/.copilot/mcp-config.json without touching unrelated servers.
npx oh-my-github-copilot-cli initomcc init Scaffold .github/{agents,skills,extensions}/ + register MCP server
omcc setup Alias of init
omcc doctor Verify install: copilot CLI on PATH, MCP server boots,
frontmatter validates, MCP entry registered uniquely
omcc upgrade Re-run init with --force, preserving user-edited files via mtime
omcc adopt <p> Bootstrap an existing repo with sensible defaults
Common flags:
--scope project|user Target this repo (default) or ~/.copilot
--target <path> Project root (default: cwd)
--force Overwrite existing files / mcp-config entry
--dry-run Print what would happen without writing
> autopilot: build a token-bucket rate limiter in src/lib/ratelimit.ts with tests
autopilot orchestrates: planner writes SPEC.md + PLAN.md → critic red-teams the plan → tester writes failing tests → implementer makes them pass → verifier runs lint/typecheck/tests/grep-TODO. Refuses to declare done if anything is red.
> workflow-tdd implement OAuth refresh token rotation
Hard-gates the phases: refuses to write implementation code until SPEC.md and PLAN.md exist; refuses to mark "done" until the done-checker agent shows raw-output green from your repo's lint/test commands.
> critique my plan in PLAN.md
Invokes the critic sub-agent — concrete findings only (missing edge cases, wrong assumptions, perf cliffs, security holes). Cannot edit files.
> ccg: should we use Postgres advisory locks or Redis SETNX for this?
Fans the question out to Claude, Codex, and Gemini via their host CLIs in parallel, then synthesizes their answers.
your-repo/
├── .github/
│ ├── agents/ 24 *.agent.md ─┐
│ ├── skills/ 42 SKILL.md ├─ Read by Copilot CLI
│ ├── extensions/ 3 SDK hooks ─┘ (auto-discovered)
│ └── copilot-instructions.md Repo-wide AGENTS.md addendum
│
~/.copilot/
└── mcp-config.json ← omcc-mcp entry merged in (jsonc-aware)
command: node …/mcp-server/dist/index.js
14 omcc_* tools, sqlite-backed state
Tool surface (Copilot CLI native): every agent and skill uses view / edit / create / grep / glob / bash / task — no Claude Code-isms, no cross-IDE shims. The frontmatter validator (scripts/validate-frontmatter.mjs) rejects naming collisions with Copilot CLI built-ins (/plan, /clear, /help, /setup, /model, …) at install time.
Storage: the MCP server uses the node:sqlite builtin (Node ≥ 22). Nothing native compiles, nothing downloads at install — the published tarball is ~230 KB.
Smoke-test a fresh install in an isolated prefix (no globals touched):
mkdir /tmp/omcc-e2e && cd /tmp/omcc-e2e
npm install --prefix . oh-my-github-copilot-cli@latest
# CLI bins are wired
./node_modules/.bin/omcc --version
# Doctor: 4 green checks
mkdir testproj && cd testproj && git init
../node_modules/.bin/omcc init
../node_modules/.bin/omcc doctor
# MCP server boots cleanly
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"e2e","version":"1"}}}' \
| node ../node_modules/oh-my-github-copilot-cli/mcp-server/dist/index.jsomcc doctor confirms: ✅ Copilot CLI on PATH · ✅ MCP server boots without errors · ✅ all agent/skill frontmatter validates · ✅ MCP entry registered uniquely.
| Min | Notes | |
|---|---|---|
| GitHub Copilot CLI | 1.0.34 |
copilot --version |
| Node.js | 22.0.0 |
Uses built-in node:sqlite — no native deps |
| OS | macOS · Linux · Windows | CI runs all three on every commit |
docs/REFERENCE.md— every agent, skill, and MCP tool with its trigger surface; slash-command collision matrix.docs/ATTRIBUTION.md— per-file provenance and upstream commit pin.CHANGELOG.md— versioned release notes.AGENTS.md— cross-tool ground rules for any agent (Copilot, Claude Code, Codex, Gemini, …) working in this repo.CONTRIBUTING.md— how to add an agent or skill, the validator's expectations, and CI gates.
PRs welcome. Local dev loop:
git clone https://github.com/pranav2579/oh-my-github-copilot-cli
cd oh-my-github-copilot-cli
npm install
npm run build # compile mcp-server
npm run validate # frontmatter + slash-command collision check
npm test # vitestRequired for any agent/skill PR: filename matches name: in frontmatter, name is unique, slash-name doesn't collide with a Copilot CLI built-in. The validator enforces all three; CI blocks merges that fail.
MIT — see LICENSE.
This project ports content from Yeachan-Heo/oh-my-claudecode (MIT, commit pinned in docs/ATTRIBUTION.md) and is design-inspired by jmstar85/oh-my-githubcopilot. Upstream copyright notices are preserved in LICENSE-THIRD-PARTY.md and licenses/.
Built with ❤️ for the GitHub Copilot CLI community by @pranav2579.
If omcc saves you time, please ⭐ the repo.