Skip to content

GitHub Copilot CLI

ACT supports GitHub Copilot CLI by installing generated Copilot-compatible skills, generated custom agents, and portable hooks under ~/.copilot.

Terminal window
cd ~/.agentic-coding-toolkit && ./scripts/install.sh --tool copilot

To install into a non-default Copilot home, set COPILOT_HOME:

Terminal window
COPILOT_HOME=~/.copilot-work ./scripts/install.sh --tool copilot
LocationIncludes
~/.copilot/skills/Generated Copilot-compatible ACT skill copies, with non-Markdown files symlinked from canonical ACT skill directories
~/.copilot/agents/Generated Copilot custom agents
~/.copilot/hooks/Copied ACT hook core scripts, Copilot adapters, and ACT hook config
~/.config/agentic-coding-toolkit/Shared ACT settings and copied runtime helper

If COPILOT_HOME is set, ACT uses that directory instead of ~/.copilot.

Start or restart Copilot CLI after installing ACT, then run:

/skills

Confirm ACT skills appear in the list. You can also invoke ACT skills directly, for example:

Terminal window
/act-help
/act-create-issues ai_specs/0001-feature/spec.md
/act-implement ai_specs/0001-feature/work-items/01-first-work-item.md

To use an ACT research agent, select it with /agent:

/agent act-codebase-researcher

Copilot skills are generated into:

~/.copilot/skills/<skill-name>/SKILL.md

Generated Copilot skills remove unsupported Claude/OpenCode wording where ACT’s transformer covers it. Re-run the Copilot installer after updating ACT so these generated skill copies are refreshed.

Non-Markdown auxiliary files are symlinked from the canonical ACT skill directory into the generated Copilot skill directory. Markdown reference files are generated copies.

After reinstalling, run:

/skills reload

If skills still look stale, restart Copilot CLI.

Copilot agents are generated into:

~/.copilot/agents/<agent-name>.agent.md

Select an installed ACT agent with /agent, for example:

/agent act-flutter-docs-researcher

ACT installs Copilot hooks for:

  • session logging
  • prompt logging
  • supported tool-use logging
  • error and session-end logging
  • Dart formatting after supported Copilot file edits

The ACT-owned hook config is installed at:

~/.copilot/hooks/act-hooks.json

Session logging is controlled by the shared ACT setting enableLogging in ~/.config/agentic-coding-toolkit/act-settings.json.

For the strategy comparison, see Permissions & Safety.

Copilot CLI allows read-only operations automatically, then prompts before potentially destructive actions such as shell commands, file edits, URL access, and other tool calls that can modify your environment.

You can approve tool use when prompted, allow similar requests for the current location, or start Copilot with explicit permission flags.

Saved approvals are written to Copilot’s permissions config file:

~/.copilot/permissions-config.json

For a typical ACT setup, add permissions like this for the project location where you run Copilot:

{
"locations": {
"/Users/YOUR-USER/path/to/your-project": {
"tool_approvals": [
{
"kind": "commands",
"commandIdentifiers": [
"git:*",
"flutter:*",
"dart:*",
"node:*",
"gh:*"
]
},
{
"kind": "read"
},
{
"kind": "write"
}
],
"allowed_directories": [
"/Users/YOUR-USER/.pub-cache"
]
}
}
}

For Flutter projects, this grants access to ~/.pub-cache, which many apps need for dependency resolution and tooling.

The location key must match the permission scope Copilot uses for the current session. For Git repositories, this is usually the Git root. A parent directory entry is not inherited by a nested Git repository.

Command identifiers are exact unless you use Copilot’s documented :* suffix. For example, flutter matches only the bare flutter command, while flutter:* is intended to match flutter, flutter doctor, and other Flutter subcommands.

Command-line flags such as --allow-tool and --deny-tool apply only to the current session. They are not written to permissions-config.json.

Deny rules take precedence over allow rules, including saved approvals and permissive modes.

permissions-config.json does not support persisted deny rules. If you want to allow common commands but block a risky command for a session, use --deny-tool when starting Copilot.

Useful examples for ACT sessions:

Terminal window
# Allow common Git commands but still block pushes
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'
# Let Copilot read, search, edit, and run selected Git commands, but avoid web access
copilot --available-tools='bash,edit,view,grep,glob' --allow-tool='shell(git:*)' --deny-tool='shell(git push)'

Copilot CLI supports permissive modes:

Terminal window
copilot --allow-all-tools
copilot --allow-all
copilot --yolo

Inside an interactive session, Copilot also supports:

/allow-all
/yolo

Use these only from an isolated environment, such as a dedicated non-sudo account, remote machine, container, or devcontainer. Do not alias Copilot to always start with permissive flags.

To clear permissions granted during the current session and saved approvals for the current location, run:

/reset-allowed-tools
  • Check copilot --version and upgrade if it is older than 1.0.63.
  • Run /skills reload after reinstalling ACT for Copilot.
  • Restart Copilot CLI if /skills reload does not show refreshed ACT skills.
  • If you used COPILOT_HOME during install, use the same value when updating or uninstalling.
  • If permission prompts behave unexpectedly, inspect ~/.copilot/permissions-config.json or run /reset-allowed-tools in the current session.
  • If a saved command approval does not apply, choose the “don’t ask again” option once and inspect which location key and command identifier Copilot saved.