Skip to content

feat(clients): add GitHub Copilot CLI - #1

Merged
emmanuelm41 merged 4 commits into
mainfrom
feat/copilot-cli-support
May 27, 2026
Merged

feat(clients): add GitHub Copilot CLI#1
emmanuelm41 merged 4 commits into
mainfrom
feat/copilot-cli-support

Conversation

@0xPxt

@0xPxt 0xPxt commented May 20, 2026

Copy link
Copy Markdown
Member

Value

  • Adds GitHub Copilot CLI as a 7th supported AI client — users running copilot from GitHub's standalone CLI can now register MCP servers via this installer.
  • Generalises the writer so future clients with schema quirks (required fields, allowlists) plug in via a per-client entryDefaults slot instead of forking the writer.

Technical

  • src/writer.tsServerEntry gains optional type?: string and tools?: string[] fields. JSON writer passes them through unchanged.
  • src/clients.tsClientDef gains optional entryDefaults?: Partial<ServerEntry>. New 7th entry for GitHub Copilot CLI with entryDefaults: { type: 'local', tools: ['*'] }, userPath honouring COPILOT_HOME, projectPath: null (Copilot CLI does not natively support a project-scoped config), detectInstalled checks ~/.copilot.
  • src/index.tsinstall() merges client.entryDefaults into the entry before writing; caller-supplied entry fields take precedence.
  • src/__tests__/clients.test.ts — count 6→7; new assertions for Copilot's projectPath: null, entryDefaults shape, and user-path behaviour with and without COPILOT_HOME.
  • src/__tests__/writer.test.ts — verifies type + tools flow through to JSON.
  • README.md — supports-clients table row + COPILOT_HOME env var documented + note that Copilot entries are written with type: "local" and tools: ["*"] per its schema.

CI fix (incidental)

The original failure that surfaced this PR was unrelated to Copilot CLI: pnpm latest (via mise) had silently rolled to 11.x, which removed the onlyBuiltDependencies key in pnpm-workspace.yaml and replaced it with allowBuilds. Migrated the workspace config to the new syntax.

We did not mirror kunobi-frontend's response to the same upstream change (#1459, #1497 there), which pinned pnpm_version: "10" everywhere to stay on v10. Rationale:

  • This repo's pnpm-workspace.yaml has a single entry (esbuild) — migrating to allowBuilds is a one-line change with no maintenance footprint.
  • Pinning to pnpm 10 freezes future fixes (security, perf, npm-OIDC support) behind a workaround that has to be carried forward.
  • The kunobi-frontend pin was driven by an aqua-registry packaging bug on macOS, not by config-schema concerns; we don't hit that bug because this repo's CI is Linux-only.

Compatibility

  • Fully backward-compatible — new fields are optional, existing 6 clients write the same shape as before.
  • Verified by linking this branch into @kunobi/mcp locally and running its full test suite (90/90 passing).

Verification

  • pnpm check (biome) — clean
  • pnpm typecheck — clean
  • pnpm test — 41/41 passing
  • pnpm build — clean

Sequence

Part 1 of 3 for adding Copilot CLI to Kunobi. After this releases, kunobi-ninja/mcp bumps its dep + ships a new version, then Zondax/kunobi-frontend updates its settings UI.

Related: Zondax/kunobi-frontend#1672 (parent issue), kunobi-ninja/mcp#6 (downstream README), Zondax/kunobi-frontend#1723 (UI side).
Blocked on: Zondax/_workflows#90 (publish job currently red until that lands and v6 is forwarded).

@emmanuelm41 emmanuelm41 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI is failing @0xPxt. Can we fix it?

@0xPxt

0xPxt commented May 26, 2026

Copy link
Copy Markdown
Member Author

CI is failing @0xPxt. Can we fix it?

We need to merge Zondax/_workflows#90

@chcmedeiros

Copy link
Copy Markdown
Member

@0xPxt I think we can fix ci ?

@0xPxt

0xPxt commented May 27, 2026

Copy link
Copy Markdown
Member Author

done @chcmedeiros @emmanuelm41 , passed cleanly after merging the _workflows PR

@chcmedeiros
chcmedeiros self-requested a review May 27, 2026 09:14
@chcmedeiros
chcmedeiros requested a review from emmanuelm41 May 27, 2026 09:15
@emmanuelm41
emmanuelm41 merged commit abd95ad into main May 27, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants