GitHub Copilot CLI
ACT supports GitHub Copilot CLI by installing generated Copilot-compatible skills, generated custom agents, and portable hooks under ~/.copilot.
Install
Section titled “Install”cd ~/.agentic-coding-toolkit && ./scripts/install.sh --tool copilotTo install into a non-default Copilot home, set COPILOT_HOME:
COPILOT_HOME=~/.copilot-work ./scripts/install.sh --tool copilotWhat Gets Installed
Section titled “What Gets Installed”| Location | Includes |
|---|---|
~/.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.
Verify
Section titled “Verify”Start or restart Copilot CLI after installing ACT, then run:
/skillsConfirm ACT skills appear in the list. You can also invoke ACT skills directly, for example:
/act-help/act-create-issues ai_specs/0001-feature/spec.md/act-implement ai_specs/0001-feature/work-items/01-first-work-item.mdTo use an ACT research agent, select it with /agent:
/agent act-codebase-researcherSkills
Section titled “Skills”Copilot skills are generated into:
~/.copilot/skills/<skill-name>/SKILL.mdGenerated 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 reloadIf skills still look stale, restart Copilot CLI.
Agents
Section titled “Agents”Copilot agents are generated into:
~/.copilot/agents/<agent-name>.agent.mdSelect an installed ACT agent with /agent, for example:
/agent act-flutter-docs-researcherACT 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.jsonSession logging is controlled by the shared ACT setting enableLogging in ~/.config/agentic-coding-toolkit/act-settings.json.
Permissions
Section titled “Permissions”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.
Permission rules
Section titled “Permission rules”Saved approvals are written to Copilot’s permissions config file:
~/.copilot/permissions-config.jsonFor 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:
# Allow common Git commands but still block pushescopilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'
# Let Copilot read, search, edit, and run selected Git commands, but avoid web accesscopilot --available-tools='bash,edit,view,grep,glob' --allow-tool='shell(git:*)' --deny-tool='shell(git push)'DSP / yolo equivalent
Section titled “DSP / yolo equivalent”Copilot CLI supports permissive modes:
copilot --allow-all-toolscopilot --allow-allcopilot --yoloInside an interactive session, Copilot also supports:
/allow-all/yoloUse 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-toolsTroubleshooting
Section titled “Troubleshooting”- Check
copilot --versionand upgrade if it is older than1.0.63. - Run
/skills reloadafter reinstalling ACT for Copilot. - Restart Copilot CLI if
/skills reloaddoes not show refreshed ACT skills. - If you used
COPILOT_HOMEduring install, use the same value when updating or uninstalling. - If permission prompts behave unexpectedly, inspect
~/.copilot/permissions-config.jsonor run/reset-allowed-toolsin 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.