Upgrading from v0.90.0
Stop running agnostic-ai sync --watch processes before changing the installation or project configuration. Complete the applicable changes below before installing, since package install hooks can run sync.
- Review empty target lists.
targets: []now makes sync warn and keep generated files. Add a target to resume sync, or runagnostic-ai sync --allow-empty-targetswhen you intend to remove generated files.sync --checkfails while generated files remain; a missing sync state also needs the explicit removal command before a plain check can confirm the result. See sync and cleanup. - Fix repeated YAML keys. Repeated keys in nested maps now produce a parse error with a line number. Remove the duplicate and keep the value you intend. An empty local key or model tier keeps the shared value; use an empty object to clear a group where supported. See configuration.
- Check shared skill folders. Qwen now imports
.agents/skills/. Agents written as skills by Amp, Crush, Warp, or Zed stop when Qwen is selected; set the other tool'soutputs.<tool>.skills-dirto a separate folder if you need those agents. See Qwen output. - Update Kimi MCP executors. Remove
x-kimi.executor: kaosor chooselocalfor a server that should run locally. Sync now rejects unsupported executors. See Kimi MCP settings. - Choose Vibe sampling for existing global servers. If an earlier sync adopted a server with
sampling_enabled: truefrom a spec that omitted sampling, setx-vibe.sampling_enabledtotrueto keep it orfalseto disable it before global sync. See Vibe global sync.
Install through your existing package manager. For a global npm installation:
npm install -g agnostic-ai@0.91.0
Run agnostic-ai upgrade --requires from the project to update its requirement and schema URL, then sync. A minimum remains a minimum, an exact requirement remains exact, and a range becomes a minimum. Review the generated changes and run agnostic-ai sync --check before restarting watch. See upgrade options.
What agnostic-ai changed
Keep files and surface unsafe input
Plain sync and every watch pass keep generated files when the configured target list is empty. Removing one tool from a nonempty list still cleans up that tool's recorded output. Sync reports unreadable JSON settings and state-write failures instead of silently replacing or losing data. Git ignore files are written whole, and failed pack fetches keep the installed content. See sync behavior and packs.
Review context and configure tools in the browser
Run agnostic-ai serve --open and open Context > Context size to see what each source contributes at startup, inspect a file's scoped context, and copy a review prompt. Settings > Coding tools saves shared or personal target selections for the next sync. Settings also offers editor links, and Open global settings can create the global folder when needed. See the web interface.
Preserve more settings on import and sync
Cline agent settings and OpenHands agent skills survive native import followed by sync. Gemini MCP OAuth options, including private-network opt-in, also round-trip without placing literal credentials in specs. Kiro settings can write a workspace default model to chat.defaultModel; global voice settings now cover Qwen, Gemini, Grok, Vibe, Kiro, and Warp where supported. See Cline, OpenHands, and settings by target.
Check hooks and MCP servers more reliably
MCP server listing respects its timeout when a detached child keeps stderr open. Hook commands preserve home, environment-variable, and absolute paths, and Windows hook timeouts report the correct result. Import and sync retain Crush's supported lifecycle events and reject invalid matchers. See hook reference and MCP configuration.
See the full release notes for the remaining fixes.
What changed in the targets
Project defaults and imported agents
Kiro's settings reference, checked November 1, documents a default model and workspace settings. This release writes a settings spec's Kiro model to .kiro/settings/cli.json; use a model ID Kiro accepts.
Cline v4.1.26's agent parser, released October 26, accepts tools, skills, provider, model, and iteration settings. Import now preserves those settings for sync. OpenHands documents named skills in file-based agents; import now retains those skill names as well. Both sources were checked November 1. The released Cline parser and OpenHands SDK 1.59.0, released October 28, were tested against import and sync output.
Shared skill paths and workspace rules
Qwen Code's skill guide, checked November 1, documents project and user skill locations. This release imports the shared .agents/skills/ path as well as .qwen/skills/.
Antigravity's current rules guide, checked November 1, says it does not load rules below the workspace folder. A scoped rule emitted in a descendant folder needs a workspace rooted at that scoped directory. Its plugin guide documents mcp_config.json at the plugin root; this release corrects the guidance and note for that path. Native discovery was not tested in this audit.
Junie's CLI reference documents a custom guidelines filename. Qoder CLI and its IDE extension describe different skill conflict precedence. The target guidance now names the relevant surface; native precedence was not tested.
Native hooks and OAuth
Crush v0.99.0, released October 29, documents 13 lifecycle hooks, which this release can import and sync. Gemini CLI v0.66.0, released October 27, documents oauth.allowPrivateNetwork as an explicit MCP server opt-in; this release preserves non-secret native OAuth options through import and sync. See the Crush release and Gemini CLI release.