Upgrading from v0.86.0
Stop any running agnostic-ai watch process before updating the installation or project config.
Projects using lint --strict now fail on overlay files that no tool reads, such as .agnostic-ai/overlays/gemini.settings.json. Rename or remove those files after checking the supported overlays. Dot files, dot folders, and top-level README files are skipped.
Existing commands now produce skill files on qualifying targets. Review sync's notes when tools share a skills folder: a tool that reads another tool's copy can see it even when excluded from the command's targets. Except for Codex, command conversion requires that no other enabled tool writes the same skills folder. See tools without commands.
Install through your existing package manager. For a global npm installation:
npm install -g agnostic-ai@0.87.0
For an exact project pin, agnostic-ai upgrade --requires updates requires and the schema URL, then syncs. It also replaces minimum or range requirements and local overrides. To keep a deliberate range or minimum, retain that requirement and update the schema URL to v0.87.0 yourself. This release needs no spec-format migration from v0.86.0. See upgrade options.
Run agnostic-ai sync, review the generated diff, and run agnostic-ai sync --check before restarting watch. Release binaries use Go 1.27.3, which includes the certificate verification fix GO-2026-6809.
What agnostic-ai changed
Run commands as skills in more tools
Codex, Copilot, Zed, Windsurf, and Crush can receive a command as a skill you start yourself. Create a command with the existing workflow:
agnostic-ai new command review-changes
agnostic-ai sync
Codex writes the skill under .agents/skills/ with its invocation policy in agents/openai.yaml. Copilot uses .github/skills/. Zed, Windsurf, and Crush write their native invocation fields. Codex keeps its earlier command output when outputs.codex.commands-dir is set.
A skill spec or hand-written native skill with the same name wins over the command. These skills treat the text after the name as arguments; they do not perform native $ARGUMENTS or $1 substitution. Sync names those limits. The command reference covers invocation, native paths, and collisions.
Find why Claude cannot see a synced skill
doctor reports synced skills hidden, disabled, or reduced to a name by skillOverrides. For an existing skill, inspect the matching settings entries:
agnostic-ai doctor
agnostic-ai explain .agnostic-ai/skills/deploy/SKILL.md
The report checks project-local, shared project, and user settings, and marks entries a higher file overrules. Managed settings and command-line --settings are outside these readers. Invalid JSON and rejected values are reported. doctor --fix can ask to remove matching entries from project-local settings; it leaves user and shared settings alone. See Claude skill overrides.
Keep deliberate Windsurf invocation edits
When no other enabled target writes a Windsurf skills folder, removing triggers from its native skill file and running agnostic-ai import windsurf --overwrite now survives the next sync. The permission changes for Windsurf only; other tools keep the portable user-only restriction. A shared folder keeps the restriction because sync omits triggers there too. Import also reads outputs.windsurf.skills-dir when configured. See Windsurf skills.
Claude MCP permission names also keep their intended server scope when a name contains __ or ends in _. Hook lint no longer rejects SessionEnd matchers on Claude Code or Codex. The full release notes cover the smaller fixes and documentation changes.
What changed in the targets
The following documentation was checked on October 22, 2026.
- Claude Code sandbox exceptions have a user-settings boundary. In v2.1.305 and later,
sandbox.allowNestedUserNamespaces: trueis ignored in project settings. It can count from user, managed, or command-line settings, and lets sandboxed code escape the sandbox. This release corrects the guide; it does not add a portable permission. Claude sandbox setting. - Ellipsis reviews can use Gemini CLI. The current schema names the engine
gemini, with modelsgemini-4-argonorgemini-3.8-flash. v0.87.0 writes and importsx-ellipsis.reviewer.gemini. These sessions use Ellipsis credits; Ellipsis lists skills as unsupported for this engine. See the Ellipsis reviewer mapping, review schema, and Gemini CLI limits.