Copilot

Agentby Tori @gettoriApache-2.0Bundled
Verified against
copilot 1.0.94Measured Oct 9, 2026
Platforms
macOS, Linux, Windows
Install
Tori installs it with npmnpm install -g @github/copilot
Needs Tori
26.1009.0 or newer
Schema
Version 3
Id
copilot
Source file
agents/copilot.toml ↗gettori/packs on GitHub

Add it in Tori

  1. Open Settings with the gear in the title bar.
  2. Go to Agents.
  3. Copilot is already there: it ships inside Tori. When the catalog has a newer version, Add an agent lists it with Update.

Adding writes one file and runs nothing. Installing it with npm is a separate click on its card.

Use it without the catalog

Download the file and drop it in the folder below. Tori loads it the next time it starts.

Download file copilot.toml
~/.config/tori/packs/agents/

Chat and accounts

ChatChat over ACP

Tori opens a chat pane next to the terminal and talks to Copilot through the Agent Client Protocol.

AccountsOne account

Tori uses whichever account the agent is signed in to.

Usage readoutsNot available

The agent does not report usage, so Tori shows none.

The file

copilot.tomlRead only
1schema_version = 32id = "copilot"3label = "Copilot"4description = "GitHub Copilot CLI, with chat over ACP"5license = "Apache-2.0"6contributor = { name = "Tori", github = "gettori" }7icon = "copilot"89# Measured with `node dev/acp-probe.mjs --agent copilot` as far as the10# handshake: 1.0.94 starts with `--acp` and answers `initialize`, but the11# measuring account has no Copilot CLI access, so `session/new` was refused with12# a 403. Everything past the handshake (models, modes, permission prompts) is13# read from the agent at runtime, which is why the handshake is the part this14# file can be wrong about.15verified_against = "copilot 1.0.94"16verified_on = "2026-10-09"1718[launch]19program = "copilot"20base_args = []21# Copilot CLI's own "approve every tool". From its documentation, untested22# like everything here.23yolo_args = ["--allow-all-tools"]24# Empty: the UI reads this as "this agent's sessions can't be resumed" rather25# than mis-resuming. See opencode.toml for why an ACP row's id is Tori's own.26resume_args = []2728# No [discovery], [parser] or [running]: a protocol-backed adapter reaches its29# sessions through ACP, never through files. See opencode.toml.3031[capabilities]32pty_quiet_ms = 200033# Not claimed, and here not measurable at all until the CLI is installed.34needs_you = false35hooks = false3637[chat]38transport = "acp"39# `copilot --acp` is the Copilot CLI's first-party ACP mode.40base_args = ["--acp"]4142# All empty for the same reason as opencode's: ACP carries sessions, models and43# modes in the protocol rather than on the command line.44session_id_args = []45resume_args = []46fork_args = []47model_args = []48effort_args = []49mode_args = []50add_dir_args = []5152# No [[chat.models]]: whatever this agent advertises on its handshake is what53# the picker will show. Declaring a table here would be a guess that overrides54# nothing (the live catalogue wins) until the day it is the only list, which is55# exactly the day it would be wrong.5657[chat.acp]58# Left at the safe default, like every unmeasured ACP adapter.59serve_client_fs = false6061[install]62# `npm install -g @github/copilot` is the one documented install that covers63# every platform (Node 22+). The docs also offer brew and a curl script; npm is64# chosen because it names the same package this adapter's launch is read from.65program = "npm"66args = ["install", "-g", "@github/copilot"]67# npm's own semantics: `install -g` on an installed package moves it to the68# latest published version, so the update verb is the install command again,69# and `uninstall -g` is its documented removal.70update_args = ["install", "-g", "@github/copilot"]71uninstall_args = ["uninstall", "-g", "@github/copilot"]7273[accounts]74# `copilot login` is the CLI's first-party OAuth command: browser flow on a75# local terminal, device code on a remote one. From the CLI reference76# (2026-08), untested like the rest of this file.77login_args = ["login"]78# No whoami_args: the reference documents no non-interactive status command,79# so sign-in state stays unknown rather than guessed. No logout_args either:80# `/logout` exists only inside the interactive session.81#82# No supports_isolation: `COPILOT_HOME` is documented to relocate config and83# state, but nobody has measured two simultaneous logins through it.