# agnostic-ai v0.81.0: one memory every AI tool shares

> Source: <https://agnostic-ai.org/updates/2026-10-07-v0.81.0/>
> Published: 2026-10-06 22:00:00+00:00

## Upgrading from v0.80.0

Install it the way you installed the previous one, then fix the two new checks before you sync.

1. **MCP plain values.**`lint` and`sync` stop on an MCP`env` or`headers` value that is neither a`${VAR}` reference nor marked`!literal` . Run`agnostic-ai migrate --only secrets` , then fix the values it leaves to you ([secrets and plain settings](https://agnostic-ai.org/docs/spec-format/mcps/#plain-settings) ).
2. **Claude agent names.** Sync stops on an agent whose name starts with`-` or contains`:` , because Claude Code skips that agent. Rename it, or set a valid`x-claude.name` .

Then run this from the project root:

```
agnostic-ai upgrade --requires
```

It pins `requires` and the schema URL to 0.81.0 and syncs. If you keep a range or minimum in `requires`, keep it and run `agnostic-ai sync` instead.

If you turn on memory, also upgrade the `agnostic-ai` on your PATH, not only a copy pinned in the project. The session-start hook runs the one on PATH, and an older one loads no memory.

## What agnostic-ai changed

### One memory for every tool

Add the `memory` built-in and sync once:

```
requires: ">=0.81.0"
builtins: [handoff, memory]
```

Each tool now loads two short lists of facts when a session starts: project memory in `.agnostic-ai/memory/`, committed for the team, and personal memory in `.agnostic-ai/local/memory/`, kept out of Git. A rule tells each tool to save your preferences and corrections to personal memory, and to propose team facts before it saves them. Claude Code's own memory saves into the same folder. If Codex learns that CI runs only on Ubuntu, Claude Code and Cursor know it next session.

Claude Code imports the lists, OpenCode and Kilo Code list them in their config, Codex, Copilot, Cursor, Gemini CLI, Qoder, and Factory load them with a hook, and every other tool reads them through the rule. See [Shared memory](https://agnostic-ai.org/docs/memory/).

### One personal memory across worktrees

By default each checkout keeps its own personal memory, and removing a worktree deletes what it saved. Set this in `agnostic-ai.local.yaml` to share one folder across every worktree of the repository:

```
memory:
  personal: repo
```

Sync gives Codex, Gemini CLI, Qoder, and the Cursor CLI write access to that folder, and works when `~/.agnostic-ai` is a link to another folder. Tools that only get the rule find it with `agnostic-ai memory path`:

``` bash
$ agnostic-ai memory path
project   ~/code/app/.agnostic-ai/memory
personal  ~/.agnostic-ai/local/memory/app-fbcd84e8
```

See [One store per repository](https://agnostic-ai.org/docs/memory/#one-store-per-repository) for which tools need the managed `.gitignore` block.

### Check and repair memory

`agnostic-ai memory lint`, `index`, and `list` check, rebuild, and list memory. `lint` and `doctor` flag a list over 100 lines, a broken link, and text that looks like a secret.

### Fixes

- Sync keeps hooks you wrote by hand on Claude Code, Codex, Cursor, Gemini CLI, Qoder, and Factory when it adds its own.
- `.cursor/cli.json` now always has both`allow` and`deny` . The Cursor CLI refused a file with only one, so its rules never loaded.
- A Copilot hook with a Windows command runs on Windows.
- `lint` counts the`AGENTS.md` that`CLAUDE.md` imports in Claude Code's word total.

Full list: [v0.81.0 release notes](https://github.com/Chemaclass/agnostic-ai/releases/tag/v0.81.0).

## What changed in the targets

**Claude Code skips agents with some names.** Its [subagents page](https://code.claude.com/docs/en/sub-agents) (checked 2026-10-07) says a name that starts with `-`, contains `:`, or is longer than 256 characters makes Claude Code skip the file and log an error. Claude Code 2.1.292 added the length limit. This release stops sync on such a name instead of writing an agent that never loads.

**Kilo Code ignores project-listed files outside the project.** In Kilo v7.8.8, `instructions` entries from a project `kilo.jsonc` cannot read files outside the project root, and a blocked file is dropped without a warning ([source](https://github.com/Kilo-Org/kilocode/blob/v7.8.8/packages/opencode/src/session/instruction.ts)). With repo mode, sync no longer lists the personal folder there; Kilo finds it through the rule, or you add it to `~/.config/kilo/kilo.jsonc`. Kilo v7.8.7 also added a `memory_model` setting, which a settings spec can already set through `x-kilo`.

**Antigravity retires current workflows on October 19, 2026.** Its [workflows page](https://antigravity.google/docs/ide/workflows) (checked 2026-10-07) says current workflows stop working on that date. agnostic-ai emits no Antigravity workflows, so synced output does not change; move any workflow you wrote by hand before then.
