agentsmesh 0.38.0 → 0.40.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,66 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.40.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 4fbf6a6: **Fixed — lessons over MCP no longer require an initialized project.** `lessons_query` and the other lessons tools rejected every call in a directory without `agentsmesh.yaml` with `NO_PROJECT`, while the CLI did the opposite: `agentsmesh lessons query` printed a setup hint and exited 0, and `lessons add` created the graph. Since MCP is the documented path for an agent with no shell — and the only path a Claude Code plugin has — the feature was unreachable for exactly the callers it was meant to serve. All five lessons tools now fall back to the working directory. Config tools such as `generate` still require a project and still report `NO_PROJECT`.
8
+
9
+ ### Patch Changes
10
+
11
+ - 5989d1f: **Fixed — a slash command in prose is no longer rewritten as a path.** `/plugin`, `/config`, `/memory` and friends are indistinguishable from a one-segment root-absolute path, and reference resolution is existence-gated, so the corruption appeared only once a repository grew a directory of that name: a repo with `plugin/` saw every `/plugin` in its skills and rules silently rewritten to `plugin` on the next `generate`. Directory names like `config`, `docs`, `test` and `build` make this likely in an ordinary project, and agent-facing documentation is full of slash commands.
12
+
13
+ A root-absolute token now has to look like a path to be treated as one — a further segment, a file extension, or a trailing slash. `/docs/x.md`, `/AGENTS.md` and `/docs/` still rewrite; `/docs` is left alone. Write `/docs/` or `docs/` when you mean the directory.
14
+
15
+ - 5e8ef3b: **Added — the recall log records which action it was for.** `lessons stats` reports a held-rate and correctly calls it a weak upper bound, because a delivery with no recorded repeat is not proof of prevention. The missing piece was exposure: the log proved a recall happened but not for which action, so occurrences per action could not be counted and no before/after rate was computable.
16
+
17
+ Each recall record now carries the normalized `contextKey` the outcome log already stores (`file:src/x.ts`, `cmd:git commit`, or `none` for a keyword-only query), so this adds no content the logs did not already hold and never records a raw command. Telemetry remains opt-in and off by default. Records written before this change have no key and are reported as such rather than silently skewing an average.
18
+
19
+ - ead5625: AgentsMesh can now be listed in the official MCP registry. The published package declares `mcpName`, the field the registry reads to confirm that the npm package and the registry entry share an owner — without it a submission is rejected outright. The registry manifest `server.json` also stops pinning an npm version, so it can no longer advertise a release that has been superseded, and its remaining version field is written by `changeset version` instead of by hand.
20
+
21
+ ## 0.39.0
22
+
23
+ ### Minor Changes
24
+
25
+ - 8205c68: **Changed — `init` enables the tools you use, not every tool it supports.** A non-interactive `agentsmesh init` in a repo with no tool config enabled all 32 starter targets, so the next `generate` wrote 47 files and roughly thirty dot-directories into a project that had asked for none of them. That is a poor first impression and a real foot-gun for scripted and CI adoption. Target selection now follows evidence of intent, strongest first: `--targets a,b`, then `--all-targets`, then tool config found in the project, then tools installed on this machine, then a minimal set of `claude-code`, `cursor` and `copilot`. The same empty repo now produces 9 files. Unless you passed a flag, `init` prints how many targets it enabled, which rule chose them, and the flag that changes them.
26
+
27
+ Machine detection reuses each target's own global detection paths (`~/.claude/`, `~/.cursor/`, `~/.config/zed/`, …), so a new target participates by declaring its descriptor rather than by being added to a list. Nothing is ever imported out of your home directory; the paths only inform which targets to enable. A target that opts out of bulk scaffolding via `excludeFromStarterInit` is never auto-enabled by `--all-targets` or by machine detection, but naming it in `--targets` or committing its config in the project still enables it.
28
+
29
+ **Added — `agentsmesh init --targets <csv>` and `agentsmesh init --all-targets`.** `--targets` enables exactly the listed IDs and rejects an unknown one instead of silently narrowing the run. `--all-targets` restores the previous full-starter-set behavior in one flag.
30
+
31
+ **Changed — the interactive wizard pre-selects the same targets** the non-interactive path would have chosen, instead of starting from an empty selection. Both entry points now agree on what a sensible default looks like, and the choice is still entirely the user's to change.
32
+
33
+ - 15bd2c4: **Changed — the generation-contract block is 56% shorter.** The managed block agentsmesh injects into every target's root instruction ran to 85 words, enumerating every canonical filename (`rules/_root.md`, `commands/*.md`, `skills/*/SKILL.md`, …) and most of the CLI surface (`init`, `import`, `install`, `diff`, `lint`, `check`, `watch`, `matrix`, `merge`, `refresh`). That text is projected into `CLAUDE.md`, `AGENTS.md`, `.cursor/rules/`, `.github/copilot-instructions.md` and every other root file, so every agent in every tool re-read all of it on every turn — a cost paid per session, per tool, per developer.
34
+
35
+ It now carries only the part an agent cannot infer for itself: generated files are not the source, edit `.agentsmesh` (or `agentsmesh.yaml` for targets and features), then run `agentsmesh generate`. Canonical filenames are discoverable by listing the directory, and the command surface by `--help`.
36
+
37
+ The previous wording joins the legacy ladder, so an existing root file is upgraded in place on the next `generate` and stripped correctly on import — no duplicate contract blocks and no stale text left behind.
38
+
39
+ - 95032aa: **Fixed — the recurrence gate could not tell one recurring problem from unrelated failures.** It escalated with `RECURRENT FAILURE: this exact action has failed N× before`, but the action key is deliberately a class: `cat a.txt` and `cat b.txt` are both `cmd:cat`. Six unrelated errors under one program therefore looked identical to the same error six times, which is how an ordinary read came to be announced as a recurring defect.
40
+
41
+ The gate was designed around a coarse error signature to prevent exactly this, and the signature had never worked. Harnesses report a failed call in different places: some send a plain `tool_error` string, while Claude Code sends a structured `tool_response`. The extractor accepted only a plain string, so every failure this project has ever recorded carried no error class at all. Failure text is now read from either shape, trying conventional fields (`stderr`, `error`, `message`, `stdout`) in specificity order rather than per harness.
42
+
43
+ With a signature available, escalation requires the **same error** to have recurred, not merely the same program. Where the harness reports no error text, nothing is claimed and the gate stays silent, because without a signature there is no evidence that one problem repeated. The message now states what was measured.
44
+
45
+ **Fixed — the truncation notice named a setting that could not help.** Hook recall injects at most five rules per call, a ceiling that overrides the configured recall limit, so on any sizeable graph the count is what truncates. The notice nevertheless told the reader to raise `recallMaxTokens`, which changes nothing in that case. It now names whichever cap actually bound.
46
+
47
+ - a5460c9: **Fixed — a second tool's root rule no longer erases the first.** `.agentsmesh/rules/_root.md` is the one canonical slot every target's root instruction collapses into, and it was last-import-wins like every other path. On the most common adoption path — a repo holding both `CLAUDE.md` and an always-apply `.cursor/rules/*.mdc`, then `agentsmesh init --yes` — both imports were reported as successful while only the second survived, and the next `generate` wrote that survivor back over the user's own `CLAUDE.md`. Root-rule bodies now accumulate: the second import appends instead of replacing, and `import` and `init` both say the root rule was merged so the combination is never silent. Every other canonical path (commands, agents, skills, hooks, permissions, ignore) keeps last-import-wins, because a name collision there means two descriptions of the same entity, while two tools' root rules are different rules that merely share a destination.
48
+
49
+ The merge is content-addressed, so repeated imports stay stable: re-importing unchanged content changes nothing, and re-importing a source that gained lines upstream replaces the shorter body rather than appending a near-duplicate. The placeholder `init` scaffolds into an empty root rule is treated as unwritten, so the first real import replaces it instead of keeping it above every imported rule. Content removed from a tool's root file upstream is the one case the importer cannot resolve — it is kept, because deleting canonical rules on a guess is worse than leaving a line to delete by hand.
50
+
51
+ ### Patch Changes
52
+
53
+ - a583963: **Corrected — the comparison table overstated what is unique to AgentsMesh.** Every row was re-verified against each project's own source and documentation on 2026-09-19, and two claims were wrong: rulesync ships a self-serve MCP server and a documented programmatic API with a global `--json` envelope, both of which the table marked as absent or partial. It also credited Ruler and rulesync with tool counts neither project advertises. Those rows are fixed, the counts are now counted from source and labelled as such, and the table says plainly that rulesync supports more tools than AgentsMesh and releases more often.
54
+
55
+ The rows that survived verification are stated more precisely: cross-file link rewriting (no tool in the category does it), a lossless round-trip across every feature rather than one target's permissions, a lockfile-verified drift gate with git-merge recovery, target plugins, and lessons. "Plugins" is now "target plugins" throughout, because the Agent Plugins specification has since claimed the bare word for a bundle of skills and MCP servers. Two newer adjacent projects, capa and Sentry's dotagents, are named with an accurate description of what they actually do instead of being scored against a grid built for config transpilers.
56
+
57
+ - b483bb1: **Changed — the package description says what this is before it says what it does.** The `agentsmesh` name collides in search with an unrelated AI agent platform, so the description now opens with "AI coding config sync CLI" rather than leading with the mechanism. Same content otherwise.
58
+ - f32a5e2: **Changed — removed ~2,700 lines of duplicated and dead code.** A repo-wide over-engineering pass collapsed machinery that had drifted into copies of itself, with no change to the published API surface. The canonical `.agentsmesh/` layout is now declared once in `src/core/canonical-paths.ts` instead of 163 per-target constants holding 9 distinct literals; 24 byte-identical target rule linters, 32 no-op generator stubs, 35 duplicate `{ path, content }` output interfaces, 26 capability-gap lint functions and 11 identical embedded-root-rule generators now route through one shared helper each. Helpers that had been copy-pasted across the tree — `isRecord` (14×), `emptyCanonical` (4×), `canonicalDocument` (6×), `toStringArray`, `stringList`, `todayIso`, `union`, `shortHash` — collapsed to single exports. Dead code removed: the legacy `TargetGenerators` registry, the unused plugin link-format override registry, `logger.table`, `auditReachability`, `TARGET_CATALOG`, and the `src/lessons/recurrence/` retrieval-eval harness (moved to `tests/harness/`, it had no production importer).
59
+
60
+ **Removed — the `repairTriggers` lessons config key.** Capture-time trigger repair was opt-in, defaulted to `false`, and was never enabled outside its own tests; the warn-only capture guardrails it enforced are unchanged. Setting `repairTriggers` in `.agentsmesh/lessons/config.json` is now ignored, and the `NARROWED_GLOB`, `KEYWORD_VARIANT_ADDED` and `DROPPED_KEYWORD` capture warnings no longer occur.
61
+
62
+ **Changed — rule `globs:` matching now uses standard glob semantics.** The hand-rolled glob-to-regex engine was replaced by `picomatch`, already a runtime dependency. Two degenerate patterns change meaning to match bash and every other glob implementation: a comma outside a brace group is now a literal (`a,b` matches the file `a,b`, not `a` or `b`), and a single-element brace group is a literal (`{foo}` matches `{foo}`, not `foo`). Ordinary patterns — `**`, `*`, `?`, character classes and multi-element brace groups like `src/*.{ts,tsx}` — are unaffected.
63
+
3
64
  ## 0.38.0
4
65
 
5
66
  ### Minor Changes
package/README.md CHANGED
@@ -20,7 +20,11 @@ Every AI coding assistant reads its own config: `CLAUDE.md`, `AGENTS.md`, `.curs
20
20
 
21
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
- **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.
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. No other config-sync tool has this.
24
+
25
+ <div align="center">
26
+ <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%" />
27
+ </div>
24
28
 
25
29
  > [!NOTE]
26
30
  > Full documentation, guides, and the per-tool reference: **[samplexbro.github.io/agentsmesh](https://samplexbro.github.io/agentsmesh/)**
@@ -47,13 +51,15 @@ Binaries with SHA-256 checksums are on [GitHub Releases](https://github.com/samp
47
51
  ## 60-second quickstart
48
52
 
49
53
  ```bash
50
- agentsmesh init # detect and import existing tool configs, or scaffold fresh
54
+ agentsmesh init # detect the tools you use, import their configs, or scaffold fresh
51
55
  agentsmesh generate # write each tool's native config from the one source
52
56
  agentsmesh check # CI drift gate against .agentsmesh/.lock
53
57
  ```
54
58
 
55
59
  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.
56
60
 
61
+ `init` enables the tools you actually use, not all of them: whatever this project already has config for, else whatever is installed on your machine, else a minimal set of Claude Code, Cursor and Copilot. It prints what it picked. Pass `--targets a,b` to choose, or `--all-targets` for everything.
62
+
57
63
  > [!TIP]
58
64
  > 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.
59
65
 
@@ -93,11 +99,7 @@ AGENTS.md
93
99
 
94
100
  ## Teach your agents: lessons
95
101
 
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.
97
-
98
- <div align="center">
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%" />
100
- </div>
102
+ 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.
101
103
 
102
104
  The memory is one git-tracked file, `.agentsmesh/lessons/lessons.json`, driven by two commands:
103
105
 
@@ -117,23 +119,25 @@ Full walkthrough: [Teach your AI agents with lessons](https://samplexbro.github.
117
119
 
118
120
  ## How AgentsMesh compares
119
121
 
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.
122
+ [Ruler](https://github.com/intellectronica/ruler) and [rulesync](https://github.com/dyoshikawa/rulesync) both cover the common ground well, and rulesync supports more tools than AgentsMesh does. What is left to differentiate is what survives translation: links rewritten per target, a round-trip that loses nothing, a lockfile-backed drift gate, new tools addable without a core release, and a memory that learns.
121
123
 
122
- | Capability | AgentsMesh | [Ruler](https://github.com/intellectronica/ruler) | [rulesync](https://github.com/dyoshikawa/rulesync) |
124
+ | Capability | AgentsMesh | Ruler | rulesync |
123
125
  |---|:---:|:---:|:---:|
124
126
  | Generate native config for many tools | ✅ | ✅ | ✅ |
127
+ | Tools supported (counted from source) | 33 | ~31 | ~50 |
125
128
  | Import existing tool config back to source | ✅ | — | ✅ |
126
- | **Lossless round-trip** (re-import restores originals) | ✅ | — | partial |
127
129
  | Convert one tool's config directly to another | ✅ | — | ✅ |
128
- | **Automatic cross-tool link rebasing** | ✅ | — | — |
130
+ | CI drift gate (non-zero exit on drift) | ✅ | partial | ✅ |
131
+ | Lint before a target silently drops content | ✅ | partial | partial |
132
+ | Self-serve MCP server (agent-operable config) | ✅ | — | ✅ |
133
+ | `--json` output + typed programmatic API | ✅ | — | ✅ |
134
+ | **Lossless round-trip** (re-import restores originals) | ✅ | — | partial |
135
+ | **Cross-file links rewritten per target** | ✅ | — | — |
136
+ | **Lockfile-verified drift + git-merge recovery** | ✅ | — | — |
137
+ | **Target plugins: add a tool without a core release** | ✅ | — | — |
129
138
  | **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 |
135
139
 
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>
140
+ <sub>Verified against each project's source and docs on 2026-09-19. Tool counts are counted from source, not marketing claims, and differ by how variants are tallied. Two newer projects solve adjacent problems rather than this one: [capa](https://github.com/infragate/capa) is a package manager and MCP gateway, and [Sentry's dotagents](https://github.com/getsentry/dotagents) manages skill and MCP dependencies without emitting instruction files. Detail and sources in the [alternatives guide](https://samplexbro.github.io/agentsmesh/reference/alternatives/); corrections welcome.</sub>
137
141
 
138
142
  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.
139
143
 
@@ -141,14 +145,14 @@ Built to be depended on: 12,000+ tests on Linux, macOS, and Windows CI, JSON-Sch
141
145
 
142
146
  - **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
147
  - **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/)
148
+ - **Safe adoption.** `import`, then `diff`, then `generate`, then `check`; nothing is overwritten blind. When several tools have a root rule, they are merged into one `_root.md` rather than the last one winning. [Existing-project guide](https://samplexbro.github.io/agentsmesh/guides/existing-project/)
145
149
  - **Output directory safety.** `generate` and `convert` reject output directories that resolve outside the project (or home directory with `--global`), checked before any write and under `--dry-run` too. Stale-file cleanup enforces the same boundary.
146
150
  - **Safe updates.** Explicitly empty Claude permission, hook, and MCP configurations clear their generated entries. MCP edits preserve untouched server fields and reject malformed files; skill updates validate supporting files before writing.
147
151
  - **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/)
148
152
  - **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)
149
153
  - **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/)
150
154
  - **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/)
151
- - **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/)
155
+ - **Target 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/)
152
156
  - **Schema-validated configs.** Every config ships a JSON Schema for editor autocomplete. [JSON schemas](https://samplexbro.github.io/agentsmesh/reference/json-schemas/)
153
157
  - **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/)
154
158
 
@@ -187,6 +191,9 @@ AgentsMesh generates native config for every major AI coding assistant, plus plu
187
191
 
188
192
  ### Project scope (`agentsmesh generate`)
189
193
 
194
+ <details>
195
+ <summary>Per-feature support for all 33 tools</summary>
196
+
190
197
  <!-- agentsmesh:support-matrix:project -->
191
198
  | Feature | Aider | Amazon Q Developer | Amp | Antigravity | Augment Code | Claude Code | Cline | Codebuff | Codex CLI | Continue | GitHub Copilot | Crush | Cursor | Deep Agents CLI | Factory Droid | Gemini CLI | Goose | Jules | Junie | Kilo Code | Kimi Code CLI | Kiro | OpenCode | OpenHands | Pi Agent | Qwen Code | Replit Agent | Roo Code | Rovo Dev | Trae | Warp | Windsurf | Zed |
192
199
  |---|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|
@@ -201,8 +208,13 @@ AgentsMesh generates native config for every major AI coding assistant, plus plu
201
208
  | Permissions | Partial | Embedded | Partial | Partial | Native | Native | Partial | Partial | Native | — | — | Native | Native | Partial | Native | Partial | Partial | Partial | Partial | Native | Partial | Embedded | Native | Partial | Native | Native | Partial | Native | — | — | Partial | Partial | — |
202
209
  <!-- /agentsmesh:support-matrix:project -->
203
210
 
211
+ </details>
212
+
204
213
  ### Global scope (`agentsmesh generate --global`)
205
214
 
215
+ <details>
216
+ <summary>Per-feature support for all 33 tools in global mode</summary>
217
+
206
218
  <!-- agentsmesh:support-matrix:global -->
207
219
  | Feature | Aider | Amazon Q Developer | Amp | Antigravity | Augment Code | Claude Code | Cline | Codebuff | Codex CLI | Continue | GitHub Copilot | Crush | Cursor | Deep Agents CLI | Factory Droid | Gemini CLI | Goose | Jules | Junie | Kilo Code | Kimi Code CLI | Kiro | OpenCode | OpenHands | Pi Agent | Qwen Code | Replit Agent | Roo Code | Rovo Dev | Trae | Warp | Windsurf | Zed |
208
220
  |---|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|:-----------:|
@@ -217,6 +229,8 @@ AgentsMesh generates native config for every major AI coding assistant, plus plu
217
229
  | 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 |
218
230
  <!-- /agentsmesh:support-matrix:global -->
219
231
 
232
+ </details>
233
+
220
234
  ## Documentation
221
235
 
222
236
  - [Getting started](https://samplexbro.github.io/agentsmesh/getting-started/installation/): install and first run