Chat with GitHub Copilot from your terminal.
copilotchat is a Rust TUI chat app. You connect your own GitHub Copilot account once, pick a model, and chat with streaming replies like a normal assistant app.
Auth stays in local app files under ~/.copilotchat/. No Keychain/system secret-store prompt path is used.
- browser-to-localhost permissions were too brittle for the main product path
- CLI keeps auth local
- install is simple
- chat feels fast and direct
Use any supported package manager:
npm i -g @dhruv2mars/copilotchatbun install -g @dhruv2mars/copilotchatpnpm add -g @dhruv2mars/copilotchatFirst run downloads the native binary into ~/.copilotchat/bin/.
copilotchatFirst run flow:
- open
copilotchat - approve the GitHub device code
- search/select a model
- send a prompt
- resume the thread later
copilotchat
copilotchat auth login
copilotchat auth status
copilotchat auth logout
copilotchat models
copilotchat chat "indian capital city?"
copilotchat updateEntersendShift+EnternewlineTab/Shift+Tabmove focusCtrl+Kfocus modelsCtrl+Jfocus threadsCtrl+Mfocus composerCtrl+Nnew chatCtrl+LlogoutEscstop stream or clear searchqquit
npm,bun,pnpm, andyarninstalls all use the same JS launcher- the launcher downloads the right native binary on first run
- no postinstall is required, so Bun global installs are usable without trusting scripts
copilotchat updateupgrades with the same package manager used for install when possible
GitHub Releases publish:
darwin-arm64darwin-x64linux-arm64linux-x64win32-arm64win32-x64
bun install
bun run cli
bun run test
bun run check
bun run buildReal manual verify:
cargo run -p copilotchat-cli -- auth login
cargo run -p copilotchat-cli -- models
cargo run -p copilotchat-cli -- chat "indian capital city?"
cargo run -p copilotchat-cli --bunx changeset
bun run release:version
TAG="v$(node -p \"require('./packages/cli/package.json').version\")"
git tag "$TAG"
git push origin "$TAG"Tags trigger:
- GitHub Release creation
- cross-platform binary builds
- npm publish