agentsmesh 0.33.0 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.34.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d942093: A repo-wide bug hunt across the generation pipeline, canonical loader, CLI parser, MCP server, lessons memory, install routing and the per-target adapters. Several fixes change behaviour you may have been working around, so those are called out below.
8
+
9
+ **Fixed — silent data loss.** `agentsmesh generate` no longer deletes a hand-written `AGENTS.md`, `CLAUDE.md` or `.claudeignore` on its first run in a project: a static output is only evicted when the lock proves agentsmesh wrote it. Uninstalling the last pack now sweeps the files it generated and resets the lock, instead of leaving orphans that `agentsmesh check` reported as in sync. The lessons git merge driver no longer drops a captured rule when two branches mint the same lesson id. A `---` inside rule frontmatter no longer truncates the value and leaks the remainder into every generated file, and CRLF canonical sources stop reporting a permanent phantom diff.
10
+
11
+ **Fixed — a broken canonical file is no longer treated as an absent one.** A syntax error in `.agentsmesh/mcp.json`, `permissions.yaml` or `hooks.yaml` was caught and returned as "nothing here", so `generate` succeeded while every MCP server, permission or hook silently vanished from every tool. These now fail with the offending file path; `agentsmesh install` still skips a broken file in third-party content and warns.
12
+
13
+ **Fixed — CLI argument parsing.** `--flag=value` is honored everywhere; it was previously stored under a bogus key and ignored, so `agentsmesh generate --targets=cursor` wrote every target. Boolean flags no longer consume the following word, so `agentsmesh refresh --dry-run <pack>` previews instead of performing a real refresh, and `agentsmesh installs --global list` reports the global inventory. `--json` output stays parseable on a TTY, and `agentsmesh lessons --help` lists the implemented `--always`, `--session`, `--no-dedup`, `--ids` and `--scope` flags.
14
+
15
+ **Fixed — install and refresh.** `agentsmesh install <source> --global` writes to `~/.agentsmesh/` when the picker routes the install, and `--accept-hooks`, `--accept-permissions` and `--accept-mcp` now reach marketplace sub-packs. One invalid row in `installs.yaml` no longer truncates the file on the next write, GitLab SSH sources keep their org and repo, remote cache keys can no longer collide between two repositories, and an install lock whose holder is still running is not evicted.
16
+
17
+ **Fixed — per-target adapters.** Windsurf hook events survive a round trip instead of arriving as dead `session_start` keys in other tools, and an imported hook keeps its canonical matcher. Cursor command files carry their `description` as frontmatter, so it survives generate and import. An unscoped Codex rule embeds into the root `AGENTS.md` rather than creating a top-level directory Codex never reads. A lone `.mcp.json` no longer enrolls Deep Agents CLI in every Claude Code repository. A user-authored `UserPromptSubmit` hook now warns instead of disappearing on targets that cannot carry it.
18
+
19
+ **Changed — lessons recall precision.** Keyword triggers match whole tokens, so a rule keyed on `art` no longer fires on "start". Recall ranks by how precisely a trigger matched: an exact path beats a file class, which beats a subtree glob, which beats a keyword that only matched through the path's own tokens. `agentsmesh lessons add` rejects an empty rule and a command pattern that matches nearly every command, and `agentsmesh lessons validate` reports `BROAD_FILE_GLOB`, `BROAD_COMMAND_PATTERN` and `EMPTY_RULE` for graphs captured before those guardrails existed.
20
+
21
+ **Added — plugin descriptors.** `managedOutputs.supersededFiles` declares alternate instruction locations that your primary root replaces; they are evicted only when a run emits that root, which is how a legacy nested file is migrated without deleting user content. `agentsmesh.local.yaml` now merges `plugins`, `pluginTargets` and `collaboration` instead of dropping them, and warns about keys it does not handle.
22
+
3
23
  ## 0.33.0
4
24
 
5
25
  ### Minor Changes
package/README.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  # AgentsMesh
4
4
 
5
- ### One source for every AI coding tool with a shared agent memory that learns from your repo.
5
+ ### One config for every AI coding tool, with a shared memory that learns from your repo.
6
6
 
7
- <img src="https://raw.githubusercontent.com/sampleXbro/agentsmesh/master/assets/agentsmesh-banner.jpeg" alt="AgentsMesh One source. Every AI coding tool. Agents that learn." width="100%" />
7
+ <img src="https://raw.githubusercontent.com/sampleXbro/agentsmesh/master/assets/agentsmesh-banner.jpeg" alt="AgentsMesh: one source, every AI coding tool, agents that learn" width="100%" />
8
8
 
9
9
  [![CI](https://github.com/sampleXbro/agentsmesh/actions/workflows/ci.yml/badge.svg)](https://github.com/sampleXbro/agentsmesh/actions/workflows/ci.yml)
10
10
  [![npm version](https://img.shields.io/npm/v/agentsmesh.svg)](https://www.npmjs.com/package/agentsmesh)
@@ -16,90 +16,51 @@
16
16
 
17
17
  </div>
18
18
 
19
- Every AI coding assistant has its own config format — `CLAUDE.md`, `AGENTS.md`, `.cursor/rules/*.mdc`, `.github/copilot-instructions.md`, and more. Keeping the same rules, prompts, MCP servers, hooks, and permissions in sync across all of them by hand is tedious, and they drift apart fast.
19
+ Every AI coding assistant reads its own config: `CLAUDE.md`, `AGENTS.md`, `.cursor/rules/*.mdc`, `.github/copilot-instructions.md`, `.gemini/settings.json`, and more. Keeping rules, prompts, MCP servers, hooks, and permissions the same across Claude Code, Cursor, GitHub Copilot, Gemini CLI, Codex CLI, and the rest by hand does not scale, and the copies drift.
20
20
 
21
- **AgentsMesh is one canonical source for all of it.** Write your rules, commands, agents, skills, MCP servers, hooks, ignore patterns, and permissions once in `.agentsmesh/`, run `agentsmesh generate`, and every tool gets its native config — with cross-file links automatically rebased to each tool's paths. `agentsmesh import` pulls existing configs back into the one source, `agentsmesh convert` migrates straight from one tool to another, and `agentsmesh check` fails CI when anything drifts.
21
+ **AgentsMesh makes `.agentsmesh/` the one source.** Write rules, commands, agents, skills, MCP servers, hooks, ignore patterns, and permissions once. `agentsmesh generate` writes every tool's native files, `agentsmesh import` pulls existing configs back in without loss, and `agentsmesh check` fails CI when anything drifts.
22
22
 
23
- **And your agents learn from your repo.** With [lessons](#teach-your-agents-lessons), an agent saves a short rule whenever something goes wrong — a failing test, a review comment, a wrong assumption — and recalls it automatically before it touches the same files again. One shared memory, read and written by every AI tool you use.
23
+ **Your agents learn from your repo.** [Lessons](#teach-your-agents-lessons) give every agent, in every tool, one git-tracked memory: capture a rule after a failure, recall it before the next edit. Same mistake, never twice.
24
24
 
25
25
  > [!NOTE]
26
- > Full documentation, guides, and the per-tool reference live at **[samplexbro.github.io/agentsmesh](https://samplexbro.github.io/agentsmesh/)**.
27
-
28
- ## How AgentsMesh compares
29
-
30
- Most config tools stop at copying rule files into each assistant's folder. AgentsMesh is the only one that also gives your agents a **shared memory that learns**, round-trips **losslessly** in both directions, and lets anyone **add a new tool as a plugin** — no release required.
31
-
32
- | Capability | AgentsMesh | [Ruler](https://github.com/intellectronica/ruler) | [rulesync](https://github.com/dyoshikawa/rulesync) |
33
- |---|:---:|:---:|:---:|
34
- | Generate native config for many tools | ✅ | ✅ | ✅ |
35
- | Import existing tool config back to source | ✅ | — | ✅ |
36
- | **Lossless round-trip** (re-import restores originals) | ✅ | — | partial |
37
- | Convert one tool's config directly to another | ✅ | — | ✅ |
38
- | **Automatic cross-tool link rebasing** | ✅ | — | — |
39
- | **Lessons — a shared agent memory that learns** | ✅ | — | — |
40
- | **Plugins — add a target without a release** | ✅ | — | — |
41
- | Cross-target lint (warn before silent data loss) | ✅ | — | — |
42
- | CI drift gate + git-merge recovery | ✅ | partial | partial |
43
- | Self-serve MCP server (agent-operable config) | ✅ | — | — |
44
- | `--json` everywhere + typed programmatic API | ✅ | — | partial |
45
-
46
- <sub>Reflects the public projects as of June 2026 — see the [alternatives guide](https://samplexbro.github.io/agentsmesh/reference/alternatives/) for sources and detail. Corrections welcome.</sub>
47
-
48
- Built to be depended on: **8,000+ tests** run on Linux, macOS, and Windows CI (Node 22 & 24), configs are JSON-Schema-validated, npm releases ship with [provenance](https://docs.npmjs.com/generating-provenance-statements), and standalone binaries are published with SHA-256 checksums.
26
+ > Full documentation, guides, and the per-tool reference: **[samplexbro.github.io/agentsmesh](https://samplexbro.github.io/agentsmesh/)**
49
27
 
50
28
  ## Install
51
29
 
52
- Every install method ships the same CLI (`agentsmesh`, plus the shorter `amsh` alias) and the same TypeScript library.
30
+ Every method ships the same CLI (`agentsmesh`, alias `amsh`). The npm package also exposes the [TypeScript API](https://samplexbro.github.io/agentsmesh/reference/programmatic-api/).
53
31
 
54
32
  ```bash
55
- # Homebrew (macOS / Linux) no Node.js required
56
- brew tap samplexbro/agentsmesh
57
- brew install agentsmesh
33
+ # Homebrew (macOS / Linux), no Node.js required
34
+ brew install samplexbro/agentsmesh/agentsmesh
58
35
 
59
- # Standalone binary (Linux / macOS) no Node.js required
36
+ # Standalone binary (Linux / macOS), no Node.js required
60
37
  # Windows: download agentsmesh-windows-x64.exe from GitHub Releases
61
38
  curl -fsSL https://github.com/sampleXbro/agentsmesh/releases/latest/download/install.sh | sh
62
39
 
63
- # npm / pnpm / yarn requires Node.js 20+
40
+ # npm / pnpm / yarn, requires Node.js 20+
64
41
  npm install -g agentsmesh # or: pnpm add -g agentsmesh / yarn global add agentsmesh
65
- npm install -D agentsmesh # pin per-repo as a dev dependency (run with npx)
66
- npx agentsmesh --help # run once without installing
42
+ npm install -D agentsmesh # pin per repo as a dev dependency, then run with npx
67
43
  ```
68
44
 
69
- Standalone binaries are also on [GitHub Releases](https://github.com/sampleXbro/agentsmesh/releases/latest). The Node install additionally exposes the [typed programmatic API](https://samplexbro.github.io/agentsmesh/reference/programmatic-api/).
45
+ Binaries with SHA-256 checksums are on [GitHub Releases](https://github.com/sampleXbro/agentsmesh/releases/latest).
70
46
 
71
47
  ## 60-second quickstart
72
48
 
73
- Works on Linux, macOS, and Windows. After [installing](#install), `agentsmesh init` adapts to your repo:
74
-
75
- - **Already using AI tools?** It detects your existing `.cursor/`, `.claude/`, `.github/copilot-instructions.md`, and more, and offers to import them all into one `.agentsmesh/` source — nothing rewritten by hand. (`agentsmesh init --yes` does it non-interactively.)
76
- - **Starting fresh?** It scaffolds a minimal `.agentsmesh/` to grow from.
77
-
78
49
  ```bash
79
- agentsmesh init # detect & import existing configs, or scaffold fresh
50
+ agentsmesh init # detect and import existing tool configs, or scaffold fresh
80
51
  agentsmesh generate # write each tool's native config from the one source
81
- agentsmesh check # CI-friendly drift gate against .agentsmesh/.lock
52
+ agentsmesh check # CI drift gate against .agentsmesh/.lock
82
53
  ```
83
54
 
84
- On an interactive terminal, **`init` runs a short wizard** nothing is written until you finish, so `Ctrl-C` cancels cleanly:
55
+ On a terminal, `init` runs a short wizard: pick targets, import detected configs (`.cursor/`, `.claude/`, `.github/copilot-instructions.md`, and more), enable lessons, and optionally generate right away. Nothing is written until you finish. Use `--yes` for the non-interactive default, `--global` for your user-level config under `~/.agentsmesh/`, and `npx agentsmesh` if you installed it as a dev dependency.
85
56
 
86
- 1. **Targets** — multi-select which tools to generate for (recommended ones first; nothing is pre-selected).
87
- 2. **Import** if it detects existing configs (`.cursor/`, `.claude/`, `.github/copilot-instructions.md`, …), it offers to import them all into `.agentsmesh/`.
88
- 3. **Lessons** — enable the shared agent memory (default **yes**).
89
- 4. **Generate** — optionally run `generate` right away.
90
-
91
- `--global` runs the same wizard for user-level config (global-capable targets only, no Lessons step). Pass `--yes`, `--json`, or run in a non-TTY/CI shell to skip the wizard and keep the scripted behavior. `init` also seeds the [self-serve MCP server](#why-developers-use-agentsmesh) into `mcp.json`.
92
-
93
- - **`generate`** writes `CLAUDE.md`, `AGENTS.md`, `.cursor/`, `.github/copilot-instructions.md`, and the rest — rewriting canonical file references to each tool's native paths so cross-file links keep working.
94
- - **`check`** exits non-zero when generated files drift from `.agentsmesh/.lock` — drop it into CI.
95
-
96
- Skipped lessons during setup? Add them later (on a fresh or existing repo) with `agentsmesh init --lessons`. Installed as a dev dependency? Prefix each command with `npx`.
57
+ > [!TIP]
58
+ > Commit both `.agentsmesh/` and the generated tool files, like a lockfile: the tools read the generated files directly, and `agentsmesh check` keeps the two from drifting.
97
59
 
98
60
  ## Before / After
99
61
 
100
- **Before — fragmented, assistant-native config in one repo:**
101
-
102
62
  ```text
63
+ # Before: one copy of the same intent per tool
103
64
  CLAUDE.md
104
65
  AGENTS.md
105
66
  .cursor/rules/*.mdc
@@ -110,22 +71,21 @@ AGENTS.md
110
71
  .kiro/steering/*.md
111
72
  ```
112
73
 
113
- **After — one canonical source, generated everywhere:**
114
-
115
74
  ```text
75
+ # After: one canonical source, generated everywhere
116
76
  .agentsmesh/
117
77
  rules/_root.md # the root rule every tool projects
118
78
  commands/ # reusable slash-style prompts
119
79
  agents/ # agent definitions
120
- skills/ # composable skills (+ supporting files)
80
+ skills/ # composable skills with supporting files
121
81
  mcp.json # MCP server definitions
122
82
  hooks.yaml # pre/post tool hooks
123
83
  permissions.yaml # allow/deny rules
124
84
  ignore # paths the assistant must not touch
125
- lessons/ # optional recall/capture memory
85
+ lessons/ # optional shared agent memory
126
86
  ```
127
87
 
128
- Edit canonical sources, run `agentsmesh generate`, and every native file above is (re)written for you — always in sync. Alongside the directory, `agentsmesh.yaml` selects which targets and features are enabled, `agentsmesh.local.yaml` holds per-developer overrides (gitignored), and `.agentsmesh/.lock` records both the canonical-source and generated-output checksums that `agentsmesh check` enforces.
88
+ `agentsmesh.yaml` selects targets and features, `agentsmesh.local.yaml` holds per-developer overrides (gitignored), and `.agentsmesh/.lock` records the checksums that `check` enforces. Cross-file links are rewritten to each tool's own paths on the way out.
129
89
 
130
90
  <div align="center">
131
91
  <img src="https://raw.githubusercontent.com/sampleXbro/agentsmesh/master/assets/generate-demo.gif" alt="agentsmesh detects existing tool configs, imports them into one source, and generates native config for every tool" width="100%" />
@@ -133,71 +93,68 @@ Edit canonical sources, run `agentsmesh generate`, and every native file above i
133
93
 
134
94
  ## Teach your agents: lessons
135
95
 
136
- This is the part no other config-sync tool has. Lessons give your AI agents a **memory of past mistakes** read *before* they touch anything, written *after* something goes wrong, so the same mistake doesn't happen twice in any tool. It's what turns a static pile of rules into an agent that gets better at *your* codebase over time.
96
+ No other config-sync tool has this. Lessons are a memory of past mistakes that every agent reads before it acts and writes after something goes wrong, so a lesson one agent learns today helps every teammate's agent tomorrow, in any tool.
137
97
 
138
98
  <div align="center">
139
- <img src="https://raw.githubusercontent.com/sampleXbro/agentsmesh/master/assets/lessons-demo.gif" alt="an AI agent captures a lesson after a failure, then recalls it before editing the same file — triggered by file, command, or keyword" width="100%" />
99
+ <img src="https://raw.githubusercontent.com/sampleXbro/agentsmesh/master/assets/lessons-demo.gif" alt="an AI agent captures a lesson after a failure, then recalls it before editing the same file" width="100%" />
140
100
  </div>
141
101
 
142
- The memory is one git-tracked file, `.agentsmesh/lessons/lessons.json`, and every agent talks to it through two commands:
143
-
144
- - **Recall** — before an edit or a state-changing command, the agent runs `agentsmesh lessons query --file <path> --cmd <command> --session auto` and follows the rules that match (`--session auto` suppresses rules already shown this session; `--no-dedup` re-shows them).
145
- - **Capture** — right after a failure (red test, lint error, review comment, wrong assumption), it saves the rule with `agentsmesh lessons add "<rule>" --topic <id> --trigger-file <glob>`.
146
-
147
- Rules can be **scoped** (fire only on a matching file, command, or keyword) or **always-on** (`--scope always`) for universal standards that apply to every task — delivered on each task automatically, no trigger needed.
148
-
149
- Opt in with `AGENTSMESH_LESSONS_TELEMETRY=1` and agentsmesh goes a step further — it tracks whether a recalled lesson actually **prevented** the repeat, quietly down-ranks rules that never help, and flags them in `agentsmesh lessons validate`. Off by default and per-machine; the shared graph is your rules, the effectiveness is your own history.
150
-
151
- In practice:
102
+ The memory is one git-tracked file, `.agentsmesh/lessons/lessons.json`, driven by two commands:
152
103
 
153
104
  ```bash
154
- # An agent breaks the Windows build, finds the cause, and writes the lesson down:
105
+ # After a failure, the agent writes the rule down with a trigger:
155
106
  agentsmesh lessons add "Normalize CLI display paths to forward slashes" \
156
107
  --topic windows-paths --trigger-file "src/cli/**/*.ts"
157
108
 
158
- # Days later, any agent in any tool — about to touch that path recalls it first:
159
- agentsmesh lessons query --file src/cli/output.ts
160
- # "Normalize CLI display paths to forward slashes"
109
+ # Before the next edit, any agent in any tool recalls it:
110
+ agentsmesh lessons query --file src/cli/output.ts --session auto
111
+ # -> "Normalize CLI display paths to forward slashes"
161
112
  ```
162
113
 
163
- ```bash
164
- agentsmesh init --lessons && agentsmesh generate # wire the recall/capture loop once
165
- ```
114
+ `agentsmesh init --lessons` wires the loop once: an always-on rule in `_root.md`, a `lessons` skill where supported, recall and capture hooks on hook-capable tools, and matching MCP tools (`lessons_query`, `lessons_add`) for agents without shell access. Rules can be scoped by file, command, or keyword, or always-on with `--scope always`.
166
115
 
167
- `init --lessons` drops a small always-on rule into `.agentsmesh/rules/_root.md` (so every target gets the habit), seeds the full operating manual as a `lessons` skill where supported, and wires a recall hook on hook-capable tools — a `PreToolUse` first-touch guard (escalating with the covering rule when the exact action has already failed repeatedly) plus a `PostToolUse` fallback for file/command scope, a `UserPromptSubmit` pass so conceptual (`keyword`) and always-on lessons recall against the **task text**, a `PostToolUseFailure` advisory nudge to capture at the moment something breaks, and a `SessionStart` reset so recall re-surfaces lessons a long chat has summarized away. Agents without shell access use the matching MCP tools (`lessons_query` / `lessons_add`). Because the graph is a normal git-tracked file, a lesson one agent learns today helps every teammate's agent tomorrow, and every change is reviewable like any other diff.
116
+ Full walkthrough: [Teach your AI agents with lessons](https://samplexbro.github.io/agentsmesh/guides/lessons/) · [`agentsmesh lessons` reference](https://samplexbro.github.io/agentsmesh/cli/lessons/)
168
117
 
169
- Full walkthrough: [Teach your AI agents with lessons](https://samplexbro.github.io/agentsmesh/guides/lessons/) · [`agentsmesh lessons` reference](https://samplexbro.github.io/agentsmesh/cli/lessons/).
118
+ ## How AgentsMesh compares
170
119
 
171
- ## Why developers use AgentsMesh
120
+ Most sync tools stop at copying rule files into each assistant's folder. AgentsMesh also round-trips losslessly, rebases cross-tool links, lints before a tool would silently drop content, and lets anyone add a new tool as a plugin.
172
121
 
173
- - **Bidirectional and loss-free** `import` reads existing tool configs into `.agentsmesh/`; `generate` projects them back out. When a tool has no native slot for a feature, AgentsMesh embeds it with round-trip metadata instead of dropping it, so re-import restores the original canonical files. [Managed embedding →](https://samplexbro.github.io/agentsmesh/reference/managed-embedding/)
174
- - **Automatic link rebasing** — canonical references like `.agentsmesh/skills/api-gen/template.hbs` are rewritten to each tool's native path (`.claude/skills/api-gen/template.hbs`, `.cursor/skills/api-gen/template.hbs`, …) in every generated file, so cross-file links stay valid; literal prose and embedded payloads are left untouched. [Generation pipeline →](https://samplexbro.github.io/agentsmesh/reference/generation-pipeline/)
175
- - **Agents that learn** the optional [lessons memory](#teach-your-agents-lessons) recalls past-mistake rules before each edit and captures new ones after each failure, shared across every tool and teammate.
176
- - **Safe adoption** already have `.cursor/`, `.claude/`, or `.github/copilot-instructions.md`? Run `import` `diff` → `generate` → `check`; nothing is overwritten blind. [Existing-project guide →](https://samplexbro.github.io/agentsmesh/guides/existing-project/)
177
- - **Migrate between tools** `convert --from <a> --to <b>` rewrites one tool's config directly into another's native format. [convert →](https://samplexbro.github.io/agentsmesh/cli/convert/)
178
- - **Global mode** `~/.agentsmesh/` syncs your personal config to `~/.claude/`, `~/.cursor/`, `~/.codex/`, and more. Every config command accepts `--global`. [Global paths →](https://samplexbro.github.io/agentsmesh/reference/supported-tools/#global-mode)
179
- - **Team-safe and CI-ready** — `check` is a drift gate against `.agentsmesh/.lock`, `diff` previews changes, `merge` rebuilds the lock after a 3-way Git conflict, and `collaboration.strategy: lock` + `lock_features` prevent accidental overrides. `lint` adds cross-target warnings (`silent-drop-guard`, `hook-script-references`, `rule-scope-inversion`) for content a tool would silently mishandle. [check →](https://samplexbro.github.io/agentsmesh/cli/check/) · [lint →](https://samplexbro.github.io/agentsmesh/cli/lint/)
180
- - **Community packs and `extends`** — install shared rules, skills, agents, and commands from any git repo (`install`, `--sync`, `refresh`, remote `extends`); a multi-signal classifier auto-detects Anthropic-style skill packs. Elevated artifacts (hooks, permissions, MCP) from remote sources are stripped unless you opt in with `--accept-*` on `install`, or `accept:` on a remote `extends` entry. [Install reference →](https://samplexbro.github.io/agentsmesh/cli/install/)
181
- - **Plugins add a tool without waiting for a release** ship support for a new AI tool as a standalone npm package, with full parity to built-in targets (project + global, conversions, lint hooks, hook post-processing). When a tool ships or changes its format, you don't file an issue and wait on the maintainer you publish a plugin. [Build a plugin →](https://samplexbro.github.io/agentsmesh/guides/building-plugins/)
182
- - **Schema-validated configs** each config ships a JSON Schema, so editors give you autocomplete and validation out of the box. [JSON schemas →](https://samplexbro.github.io/agentsmesh/reference/json-schemas/)
183
- - **Typed programmatic API** drive `generate` / `import` / `lint` / `diff` / `check` from scripts or CI via `agentsmesh`, `/engine`, `/canonical`, `/targets`, `/lessons`. [API reference →](https://samplexbro.github.io/agentsmesh/reference/programmatic-api/)
184
- - **Self-serve MCP server** — `agentsmesh mcp` (seeded by `init`) exposes canonical config as MCP tools so agents can introspect rules, commands, and skills and trigger `generate` in-conversation. [MCP server →](https://samplexbro.github.io/agentsmesh/reference/mcp-server/)
185
- - **Scriptable everywhere** — every command speaks `--json`, emitting a single `{ success, command, data?, error? }` envelope for CI and tooling.
122
+ | Capability | AgentsMesh | [Ruler](https://github.com/intellectronica/ruler) | [rulesync](https://github.com/dyoshikawa/rulesync) |
123
+ |---|:---:|:---:|:---:|
124
+ | Generate native config for many tools | | | |
125
+ | Import existing tool config back to source | | | |
126
+ | **Lossless round-trip** (re-import restores originals) | | | partial |
127
+ | Convert one tool's config directly to another | | | |
128
+ | **Automatic cross-tool link rebasing** | | | |
129
+ | **Lessons: a shared agent memory that learns** | | ||
130
+ | **Plugins: add a target without a release** | | ||
131
+ | Cross-target lint (warn before silent data loss) | | | |
132
+ | CI drift gate + git-merge recovery | | partial | partial |
133
+ | Self-serve MCP server (agent-operable config) | | | |
134
+ | `--json` output + typed programmatic API | | | partial |
186
135
 
187
- > [!TIP]
188
- > Commit **both** `.agentsmesh/` and the generated tool files, the same way you commit `package-lock.json`: they're deterministic build output that the AI tools read directly, and `agentsmesh check` guards the two from drifting.
136
+ <sub>Reflects the public projects as of June 2026. Sources and detail in the [alternatives guide](https://samplexbro.github.io/agentsmesh/reference/alternatives/); corrections welcome.</sub>
189
137
 
190
- ## Why not Ruler, rulesync, or just `AGENTS.md`?
138
+ Built to be depended on: 12,000+ tests on Linux, macOS, and Windows CI, JSON-Schema-validated configs, npm releases with [provenance](https://docs.npmjs.com/generating-provenance-statements), and a per-file coverage floor in the test gate.
191
139
 
192
- **vs. `AGENTS.md`** — [`AGENTS.md`](https://agents.md) is a great shared instruction file, and AgentsMesh emits it natively wherever a tool supports it. But a single markdown file isn't enough on its own: most assistants expose configuration *beyond* it — Cursor's `.cursor/rules/*.mdc` and MCP config, Claude Code's agents/skills/commands/hooks/permissions, Copilot's `.github/instructions/`, Gemini's `.gemini/settings.json`, and so on — and those surfaces don't overlap. AgentsMesh canonicalizes all of them so you never have to pick one tool's surface as the lowest common denominator.
140
+ ## Highlights
193
141
 
194
- **vs. other sync tools** — [Ruler](https://github.com/intellectronica/ruler) and [rulesync](https://github.com/dyoshikawa/rulesync) solve the rules-distribution half well. AgentsMesh goes further on the parts that are hardest to keep in sync: a shared [lessons](#teach-your-agents-lessons) memory your agents learn from, lossless two-way [import](https://samplexbro.github.io/agentsmesh/cli/import/), automatic cross-tool [link rebasing](https://samplexbro.github.io/agentsmesh/reference/generation-pipeline/), [plugins](https://samplexbro.github.io/agentsmesh/guides/building-plugins/) so a new tool ships without a release, and [lint](https://samplexbro.github.io/agentsmesh/cli/lint/) that warns before a tool would silently drop content. See the [full comparison](#how-agentsmesh-compares) and the [alternatives guide](https://samplexbro.github.io/agentsmesh/reference/alternatives/).
142
+ - **Lossless two-way sync.** When a tool has no native slot for a feature, it is embedded with round-trip metadata instead of dropped. [Managed embedding](https://samplexbro.github.io/agentsmesh/reference/managed-embedding/)
143
+ - **Automatic link rebasing.** `.agentsmesh/skills/api-gen/template.hbs` becomes `.claude/skills/...` or `.cursor/skills/...` in each generated file. [Generation pipeline](https://samplexbro.github.io/agentsmesh/reference/generation-pipeline/)
144
+ - **Safe adoption.** `import`, then `diff`, then `generate`, then `check`; nothing is overwritten blind. [Existing-project guide](https://samplexbro.github.io/agentsmesh/guides/existing-project/)
145
+ - **Migrate between tools.** `convert --from <a> --to <b>` rewrites one tool's config directly into another's. [convert](https://samplexbro.github.io/agentsmesh/cli/convert/)
146
+ - **Global mode.** `~/.agentsmesh/` syncs personal config to `~/.claude/`, `~/.cursor/`, `~/.codex/`, and more; config commands accept `--global`. [Global paths](https://samplexbro.github.io/agentsmesh/reference/supported-tools/#global-mode)
147
+ - **CI-ready.** `check` gates drift, `diff` previews, `merge` rebuilds the lock after a Git conflict, and `lint` warns about content a tool would mishandle. [check](https://samplexbro.github.io/agentsmesh/cli/check/) · [lint](https://samplexbro.github.io/agentsmesh/cli/lint/)
148
+ - **Community packs and `extends`.** Install rules, skills, agents, and commands from any git repo; hooks, permissions, and MCP from remote sources stay off until you opt in. [install](https://samplexbro.github.io/agentsmesh/cli/install/)
149
+ - **Plugins.** Ship a new tool as an npm package with full parity to built-in targets. [Build a plugin](https://samplexbro.github.io/agentsmesh/guides/building-plugins/)
150
+ - **Schema-validated configs.** Every config ships a JSON Schema for editor autocomplete. [JSON schemas](https://samplexbro.github.io/agentsmesh/reference/json-schemas/)
151
+ - **Scriptable.** A typed API for `generate`, `import`, `lint`, `diff`, and `check`, `--json` envelopes on every command except `watch`, and an MCP server so agents can operate the config themselves. [API](https://samplexbro.github.io/agentsmesh/reference/programmatic-api/) · [MCP server](https://samplexbro.github.io/agentsmesh/reference/mcp-server/)
195
152
 
196
153
  ## Commands
197
154
 
198
155
  | Command | What it does |
199
156
  |---|---|
200
- | `init` | Scaffold `.agentsmesh/` + config (interactive wizard on a TTY) |
157
+ | `init` | Scaffold `.agentsmesh/` and config (interactive wizard on a TTY) |
201
158
  | `generate` | Write native config for every enabled tool |
202
159
  | `check` | Fail when generated files drift from `.agentsmesh/.lock` (CI gate) |
203
160
  | `diff` | Preview what the next `generate` would change |
@@ -206,19 +163,19 @@ Full walkthrough: [Teach your AI agents with lessons](https://samplexbro.github.
206
163
  | `lint` | Validate canonical config against target constraints |
207
164
  | `watch` | Regenerate target files on save |
208
165
  | `merge` | Rebuild `.agentsmesh/.lock` after a Git merge conflict |
209
- | `matrix` | Print the feature/target support matrix |
166
+ | `matrix` | Print the feature and target support matrix |
210
167
  | `install` · `uninstall` · `installs` | Add, remove, and list community packs |
211
168
  | `refresh` | Re-fetch installed packs from their sources |
212
169
  | `plugin` | Add, list, or remove plugin-provided targets |
213
170
  | `target` | Scaffold a new target's source skeleton (for contributors) |
214
- | `lessons` | Query and capture agent memory (recall / capture) |
171
+ | `lessons` | Query and capture agent memory |
215
172
  | `mcp` | Start the AgentsMesh MCP server (stdio) |
216
173
 
217
- Every command accepts `--json` (machine-readable output). The config commands also accept `--global` (operate on `~/.agentsmesh/`); `lessons` rejects it — lessons live in the project tree — and `mcp`, `plugin` and `target` have no scope of their own. Run `agentsmesh <command> --help` for flags, or see the [CLI reference](https://samplexbro.github.io/agentsmesh/cli/).
174
+ Run `agentsmesh <command> --help` for flags, or see the [CLI reference](https://samplexbro.github.io/agentsmesh/cli/).
218
175
 
219
176
  ## Supported tools
220
177
 
221
- AgentsMesh generates native config for every major AI coding assistant plus plugin targets you can ship as standalone npm packages. Native vs. embedded support per feature is tracked in the [supported-tools matrix](https://samplexbro.github.io/agentsmesh/reference/supported-tools/).
178
+ AgentsMesh generates native config for every major AI coding assistant, plus plugin targets. Native, embedded, and partial support per feature is tracked in the [supported-tools matrix](https://samplexbro.github.io/agentsmesh/reference/supported-tools/).
222
179
 
223
180
  <!-- agentsmesh:tool-list -->
224
181
  - **CLI agents:** [Aider](https://aider.chat), [Amp](https://ampcode.com), [Claude Code](https://www.anthropic.com/claude-code), [Codebuff](https://github.com/CodebuffAI/freebuff), [Codex CLI](https://github.com/openai/codex), [Crush](https://github.com/charmbracelet/crush), [Deep Agents CLI](https://github.com/langchain-ai/deepagents), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [Goose](https://block.github.io/goose), [Kimi Code CLI](https://moonshotai.github.io/kimi-code/en/), [OpenCode](https://opencode.ai), [OpenHands](https://docs.openhands.dev), [Pi Agent](https://github.com/earendil-works/pi), [Qwen Code](https://github.com/QwenLM/qwen-code), [Rovo Dev](https://www.atlassian.com/solutions/devops/rovo-dev), [Warp](https://www.warp.dev).
@@ -258,20 +215,14 @@ AgentsMesh generates native config for every major AI coding assistant — plus
258
215
  | Permissions | Partial | Embedded | Partial | Native | Native | Native | Partial | Partial | Native | Native | Partial | Native | Native | Embedded | Native | Native | Native | — | Native | Native | Native | Native | Native | Partial | Native | Native | — | Partial | Native | Partial | Native | Partial | Native |
259
216
  <!-- /agentsmesh:support-matrix:global -->
260
217
 
261
- See the [full feature matrix](https://samplexbro.github.io/agentsmesh/reference/supported-tools/) for native vs. embedded details and per-tool global paths.
262
-
263
218
  ## Documentation
264
219
 
265
- - **[Getting Started](https://samplexbro.github.io/agentsmesh/getting-started/installation/)** install and first run
266
- - **[Canonical config](https://samplexbro.github.io/agentsmesh/canonical-config/)** rules, commands, agents, skills, MCP, hooks, ignore, permissions
267
- - **[CLI reference](https://samplexbro.github.io/agentsmesh/cli/)** every command and flag
268
- - **[Guides](https://samplexbro.github.io/agentsmesh/guides/existing-project/)** adopting in an existing repo · teaching agents with lessons · sharing config · building plugins
269
- - **[Reference](https://samplexbro.github.io/agentsmesh/reference/supported-tools/)** supported tools · generation pipeline · managed embedding · programmatic API
270
-
271
- ## Contributing
272
-
273
- Contributions welcome — edit canonical `.agentsmesh/` sources, never the generated files. See **[CONTRIBUTING.md](CONTRIBUTING.md)** to get set up.
220
+ - [Getting started](https://samplexbro.github.io/agentsmesh/getting-started/installation/): install and first run
221
+ - [Canonical config](https://samplexbro.github.io/agentsmesh/canonical-config/): rules, commands, agents, skills, MCP, hooks, ignore, permissions
222
+ - [CLI reference](https://samplexbro.github.io/agentsmesh/cli/): every command and flag
223
+ - [Guides](https://samplexbro.github.io/agentsmesh/guides/existing-project/): adopting in an existing repo, lessons, sharing config, plugins
224
+ - [Reference](https://samplexbro.github.io/agentsmesh/reference/supported-tools/): supported tools, generation pipeline, managed embedding, API
274
225
 
275
- ## License
226
+ ## Contributing and license
276
227
 
277
- [MIT](LICENSE)
228
+ Contributions welcome: edit canonical `.agentsmesh/` sources, never the generated files. See [CONTRIBUTING.md](CONTRIBUTING.md). Released under the [MIT license](LICENSE).