Skip to content

[enhancement] Bundle GitHub Copilot CLI for Zero-Config Installation Experience #11

@github-actions

Description

@github-actions

Background

Recent work in the Copilot SDK has focused on bundling the GitHub Copilot CLI binary to simplify distribution and eliminate manual installation steps:

  • Go SDK bundling support: PR #414 by Quim Muntal (merged Feb 12, 2026) introduces embedding the CLI binary directly in Go applications. The PR describes a mechanism for embedding, unpacking, versioning, file locking, and hash validation.
  • Python wheel fix: PR #419 by Steve Sanderson (Feb 10, 2026) ensures the bundled CLI binary has executable permissions.
  • Cross-platform bundling: The v0.1.23 release notes highlight "Bundling" (PR #382) as a key feature across SDKs.

Commit references:

  • f1d8cc1 - Go bundling implementation
  • 4dc5629 - Python executable permissions

Proposal

Adopt the CLI bundling approach for Planeteer's Node.js/TypeScript distribution. This would eliminate the current requirement for users to separately install @github/copilot CLI and authenticate before using Planeteer.

Implementation approach:

  1. Investigate if the TypeScript/JavaScript SDK supports bundling (or if it requires custom packaging)
  2. If supported: Add bundling configuration to package.json build scripts
  3. If not yet supported: Create a postinstall script that downloads the correct CLI binary for the user's platform (similar to Electron's approach)
  4. Update src/services/copilot.ts to check for bundled CLI first, falling back to system-installed CLI
  5. Handle auto-updates: Check CLI version on startup and download newer versions if available
  6. Update README prerequisites to remove the manual CLI installation step

Benefit

  • Zero-config experience: Users can run npm install -g planeteer && planeteer without manual CLI setup
  • Version consistency: Bundling ensures Planeteer uses a CLI version that's been tested with the SDK version
  • Distribution simplicity: Single npm package contains everything needed
  • Reduced support burden: Eliminates "CLI not found" errors and authentication confusion
  • Onboarding speed: New users can start using Planeteer in seconds, not minutes

Acceptance Criteria

  • Bundled CLI binary included in npm package for Linux, macOS, and Windows
  • src/services/copilot.ts detects bundled CLI location and uses it by default
  • Fallback logic: if bundled CLI missing/corrupt, attempt to use system-installed CLI
  • Version check on startup compares bundled CLI version with latest available
  • Auto-update mechanism downloads newer CLI versions to user's home directory cache
  • File locking prevents concurrent update attempts (if multiple Planeteer instances run)
  • Hash validation ensures downloaded binaries aren't corrupted
  • README prerequisites section updated to reflect zero-config installation
  • Build script generates platform-specific packages or uses universal bundling approach
  • Integration test verifies bundled CLI works on fresh system without pre-installed CLI

AI generated by Weekly Enhancement Suggestions

Metadata

Metadata

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions