agnostic-ai v0.87.0: run portable commands as skills Agnostic-ai released version 0.87.0, which lets Codex, Copilot, Zed, Windsurf, and Crush receive commands as skills users invoke themselves, with Codex writing skills under `.agents/skills/` and Copilot under `.github/skills/`. The release requires no spec-format migration from v0.86.0, but projects using `lint --strict` now fail on overlay files no tool reads, and release binaries use Go 1.27.3 to include the certificate verification fix GO-2026-6809. The update also adds a `doctor` report for skills hidden or disabled by Claude's `skillOverrides` and preserves deliberate Windsurf `triggers` edits through `agnostic-ai import windsurf --overwrite`. 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 https://agnostic-ai.org/docs/spec-format/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 https://agnostic-ai.org/docs/spec-format/commands/ 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 https://agnostic-ai.org/docs/cli-reference/upgrades/ upgrade . 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 https://pkg.go.dev/vuln/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 https://agnostic-ai.org/docs/spec-format/commands/ tools-without-commands 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 https://agnostic-ai.org/docs/cli-reference/check/ 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 https://agnostic-ai.org/docs/targets/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 https://github.com/Chemaclass/agnostic-ai/releases/tag/v0.87.0 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: true is 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 https://code.claude.com/docs/en/settings-reference sandbox-allownestedusernamespaces . - Ellipsis reviews can use Gemini CLI. The current schema names the engine gemini , with models gemini-4-argon or gemini-3.8-flash . v0.87.0 writes and imports x-ellipsis.reviewer.gemini . These sessions use Ellipsis credits; Ellipsis lists skills as unsupported for this engine. See the Ellipsis reviewer mapping https://agnostic-ai.org/docs/targets/ellipsis/ first-review , review schema https://www.ellipsis.dev/docs/code-review/schema , and Gemini CLI limits https://www.ellipsis.dev/docs/harnesses/gemini .