Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions docs/src/content/docs/docs/reference/clients.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,38 @@ runtime-generated `.gitignore`. A modified `.gitignore` or any unrelated file
retains the root and reports a partial removal instead of recursively deleting
unknown content.

### GitHub Copilot CLI

Copilot global profiles require GitHub Copilot CLI 1.0.74 or newer. AllAgents
sets `COPILOT_HOME` to an owned configuration root and
`COPILOT_CACHE_HOME` to a sibling owned cache directory. The generated launcher
preserves its arguments and current working directory, so Copilot continues to
discover the active project's instructions, agents, skills, settings, and MCP
configuration normally.

File installation writes personal skills, agents, hooks, and
`copilot-instructions.md` beneath the selected `COPILOT_HOME`. Profile settings
are written to `settings.json`; MCP servers are written to `mcp-config.json`
with runtime `${ENV_VAR}` references preserved. AllAgents also includes the
declarative plugin and marketplace settings that Copilot's native lifecycle
requires, preventing the runtime from rewriting an untracked settings file.

Native installation resolves one plugin identity from authoritative marketplace
metadata, materializes a missing marketplace registration, and delegates install,
targeted update, and uninstall to Copilot. A native plugin cannot declare a skill filter.
Copilot's marketplace command cannot pin a Git ref, so a native declaration
with `ref` fails before mutation instead of installing an unverified revision.
Use file installation when a pinned source or selected skills are required.

Removal uninstalls managed native plugins and releases managed marketplace
registrations before recursively deleting only an AllAgents-created client
root. A root that existed before installation is referenced rather than owned;
unrelated or conflicting files are preserved and reported instead of adopted.
Copilot's operating-system credential store and enterprise policy remain
outside `COPILOT_HOME`, so this is configuration isolation, not a security
sandbox. See GitHub's [Copilot CLI configuration directory
reference](https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-config-dir-reference).

## Provider-Specific Clients

These clients use their own skills directory. As above, Hooks lists
Expand Down
44 changes: 42 additions & 2 deletions docs/src/content/docs/docs/reference/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -119,15 +119,36 @@ profiles:
plugins:
- source: ./review-tools
install: file

copilot-review:
clients:
- name: copilot
launcher: copilot-review
settings:
autoUpdate: false
remote: "off"
remoteExport: false
ide.autoConnect: false
plugins:
- source: EveryInc/compound-engineering-plugin
install: native
- source: ./review-tools
install: file
skills: [review]
mcpServers:
review:
command: review-mcp
env:
REVIEW_TOKEN: ${REVIEW_TOKEN}
```

| Field | Required | Description |
|-------|----------|-------------|
| `profiles.<name>.clients` | Yes | One or more object-form profile clients |
| `clients[].name` | Yes | Supported profile client; currently `pi`, `omp`, or `opencode` |
| `clients[].name` | Yes | Supported profile client; currently `pi`, `omp`, `opencode`, or `copilot` |
| `clients[].install` | No | Default plugin mode, `file` by default; OpenCode rejects `native` because its CLI lacks a complete inspect/update/remove lifecycle |
| `clients[].launcher` | No | Safe command basename written to the configured user bin directory |
| `clients[].settings` | No | Strict client settings object; Pi and OMP accept no settings, while OpenCode accepts its documented scalar profile settings |
| `clients[].settings` | No | Strict client settings object; Pi and OMP accept no settings, while OpenCode and Copilot accept their documented profile settings |
| `profiles.<name>.plugins` | No | Profile plugin declarations; defaults to an empty list |
| `plugins[].source` | Yes | npm, GitHub, marketplace, or local source supported by the selected adapter |
| `plugins[].ref` | No | Requested Git ref for a GitHub source |
Expand All @@ -154,6 +175,25 @@ still merge with normal global and project configuration; they are not a strict
runtime sandbox. `${ENV_VAR}` MCP references are serialized to OpenCode's
runtime `{env:ENV_VAR}` syntax without resolving the value.

Copilot profiles require GitHub Copilot CLI 1.0.74 or newer. Their launchers set
both `COPILOT_HOME` and `COPILOT_CACHE_HOME`; the selected configuration and
cache roots are isolated while normal current-project discovery remains active.
Copilot profile settings accept `model`, `theme`, `autoUpdate`,
`autoUpdatesChannel`, `banner`, `askUser`, `includeCoAuthoredBy`, `stream`,
`streamerMode`, `toolSearch`, `updateTerminalTitle`, `respectGitignore`,
`disableAllHooks`, `experimental`, `bashEnv`, `keepAlive`,
`commandHistoryMaxSize`, `compactPaste`, `mouse`, `terminalProgress`, `remote`,
`remoteExport`, `ide.autoConnect`, `shellShortcut`,
`customAgents.defaultLocalOnly`, `storeTokenPlaintext`, `disabledMcpServers`,
and `enabledMcpServers`. All other keys fail validation. MCP declarations are
written to the selected root's `mcp-config.json`, retain `${ENV_VAR}` references,
and expose their declared tools to Copilot.

Copilot native plugins must resolve to exactly one authoritative marketplace
entry. Native skill filters and native Git refs are rejected because Copilot
cannot enforce either constraint. File installation supports skill selection
and pinned Git sources instead.

Install profiles explicitly with `allagents profile install <name> --yes`.
Ordinary `allagents update` reconciles installed, still-declared profiles;
repeat `--profile <name>` to select only installed profiles. Removing a
Expand Down
2 changes: 1 addition & 1 deletion src/cli/metadata/profile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ const profilePlanOutput = {

export const profileInstallMeta: AgentCommandMeta = {
command: 'profile install',
description: 'Install a declared global Pi or OMP profile',
description: 'Install a declared global agent profile',
whenToUse:
'When you want AllAgents to materialize one user profile, its client resources, and its launchers from the user workspace declaration',
examples: [
Expand Down
Loading