severally-mcp 2.3.1 → 2.4.2

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.
Files changed (45) hide show
  1. package/README.ja.md +52 -17
  2. package/README.md +52 -16
  3. package/bin/severally-mcp.mjs +14 -2
  4. package/docs/install.ja.md +48 -20
  5. package/docs/install.md +48 -21
  6. package/package.json +15 -3
  7. package/plugins/severally/.claude-plugin/plugin.json +1 -1
  8. package/plugins/severally/.codex-plugin/plugin.json +1 -1
  9. package/plugins/severally/dist/severally-mcp.mjs +6573 -5978
  10. package/plugins/severally/skills/_template/reference.md.tmpl +2 -2
  11. package/plugins/severally/skills/antigravity/severally/reference.md +2 -2
  12. package/plugins/severally/skills/claude/severally/reference.md +2 -2
  13. package/plugins/severally/skills/codex/severally/reference.md +2 -2
  14. package/plugins/severally/skills/opencode/severally/reference.md +2 -2
  15. package/scripts/build.mjs +76 -68
  16. package/scripts/doctor.mjs +66 -20
  17. package/scripts/init-config.mjs +8 -6
  18. package/scripts/install.mjs +327 -90
  19. package/scripts/live-check.mjs +62 -23
  20. package/scripts/live-mcp-check.mjs +52 -16
  21. package/scripts/test.mjs +10 -4
  22. package/src/adapters/antigravity-sandbox.mjs +62 -28
  23. package/src/adapters/antigravity.mjs +111 -30
  24. package/src/adapters/claude-code.mjs +121 -28
  25. package/src/adapters/codex.mjs +125 -33
  26. package/src/adapters/opencode-sandbox.mjs +59 -22
  27. package/src/adapters/opencode.mjs +144 -30
  28. package/src/brief.mjs +148 -47
  29. package/src/consultants.mjs +255 -48
  30. package/src/cross-spawn-escape.d.ts +7 -0
  31. package/src/export.mjs +99 -18
  32. package/src/expose-paths.mjs +310 -50
  33. package/src/failures.mjs +31 -14
  34. package/src/jobs.mjs +863 -249
  35. package/src/jsonc.mjs +11 -3
  36. package/src/parse-result.mjs +172 -40
  37. package/src/platform.mjs +56 -8
  38. package/src/policy.mjs +245 -52
  39. package/src/redact.mjs +59 -16
  40. package/src/result-schema.mjs +13 -0
  41. package/src/run.mjs +225 -30
  42. package/src/schema.mjs +132 -27
  43. package/src/server.mjs +178 -81
  44. package/src/status.mjs +94 -13
  45. package/src/store.mjs +418 -35
package/README.ja.md CHANGED
@@ -83,8 +83,6 @@ flowchart TB
83
83
  - Node.js 22 以降
84
84
  - インストールしてログインした CLI(4 つのうち少なくとも 1 つ)。1 つで足り、Claude Code だけでも、新しい
85
85
  Claude Code のセッションに相談できます。
86
- - macOS と Linux では、npm のグローバルの実行ディレクトリが `PATH` にあること。既定のインストールは、Codex が
87
- 起動する `severally-mcp` コマンドをそこに置きます。`--manual` なら要りません。
88
86
 
89
87
  インストーラとサーバは Linux・macOS・Windows でテストしています。Claude Code と Codex のマーケットプレイスからの
90
88
  導入と、実際の CLI での動作を試したのは Linux だけです。
@@ -92,20 +90,57 @@ flowchart TB
92
90
  macOS、Linux、Windows(PowerShell またはコマンドプロンプト)のどれでも、次の 1 行で入れられます。
93
91
 
94
92
  ```bash
95
- npx -y severally-mcp@2.3.1 install
93
+ npx -y severally-mcp@2.4.2 install
96
94
  ```
97
95
 
98
96
  インストーラは、`PATH` で見つかった CLI のそれぞれに severally を登録します。末尾に `--dry-run` を付けると、何も
99
- 変えずに変更内容だけを表示します。終わったら、クライアントを再起動してください。動いているセッションは、新しい
100
- 登録を読み直しません。
97
+ 変えずに変更内容だけを表示します。
101
98
 
102
- Claude Code のプラグインマーケットプレイスから入れる方法、クローンから入れる方法、登録の確かめ方、インストーラが
103
- 変えるものは、[docs/install.ja.md](docs/install.ja.md) にあります。
99
+ macOS と Linux の既定のインストールは、`npm install -g` で `severally-mcp` コマンドを `PATH` に置きます。要るのは
100
+ Codex のプラグインだけです。npm がグローバルに入れられないとき(たとえば sudo が要る、npm のグローバルのフォルダが
101
+ `PATH` に無い)は、インストーラが代わりに Codex を直接登録し、そう表示します。ほかに必要なことはありません。
102
+
103
+ 終わったら、クライアントを再起動してください。動いているセッションは、新しい登録を読み直しません。相談を始めずに
104
+ 設定を確かめるには、次を実行します。
105
+
106
+ ```bash
107
+ npx -y severally-mcp@latest status
108
+ ```
109
+
110
+ 設定ファイル・この機械から使える相談相手・入っている写しの版・どのクライアントに登録されているか・各 CLI に
111
+ ログインしているかを表示します。ログインの確認は CLI 自身の状態確認コマンドを読むだけで、プロンプトは送りません。
112
+ 使用枠を使い切っていないかは確かめません。それは最初の相談で分かります。
113
+
114
+ Codex と Claude Code がある機械での出力の一部を示します。
115
+
116
+ ```text
117
+ config: ok
118
+
119
+ consultants:
120
+ codex: codex, <model> available
121
+ claude-code: claude-code, <model> available
122
+
123
+ clients:
124
+ Claude Code registered (listed by the client)
125
+ Codex registered (listed by the client)
126
+
127
+ login (out of quota is not checked; the first consultation shows it):
128
+ codex logged in
129
+ claude-code logged in
130
+ ```
131
+
132
+ ここまで済んだら、[使い方](#使い方)のようにエージェントに最初の相談を頼んでください。
133
+
134
+ Claude Code だけで使うなら、プラグインマーケットプレイスから入れることもできます。Claude Code で
135
+ `/plugin marketplace add coz-a/severally`、続けて `/plugin install severally@severally` を実行し、Claude Code を
136
+ 再起動します。見つかった CLI すべてに登録できる上の 1 行が基本の方法です。プラグインマーケットプレイスから入れる
137
+ 方法、クローンから入れる方法、登録の確かめ方、インストーラが変えるものは、[docs/install.ja.md](docs/install.ja.md)
138
+ にあります。
104
139
 
105
140
  ### コマンドライン
106
141
 
107
142
  ```bash
108
- npx -y severally-mcp@latest install [--dry-run] [--manual] [--force] [--skip-global]
143
+ npx -y severally-mcp@latest install [--dry-run] [--manual] [--force] [--skip-global] [--allow-local-tools]
109
144
  ```
110
145
 
111
146
  | オプション | すること |
@@ -114,12 +149,10 @@ npx -y severally-mcp@latest install [--dry-run] [--manual] [--force] [--skip-glo
114
149
  | `--manual` | プラグインを入れる代わりに、MCP サーバを登録して Skill を写す(Windows の既定) |
115
150
  | `--force` | すでに登録してあっても、そのままにせず登録し直す |
116
151
  | `--skip-global` | プラグイン方式で npm のグローバルなインストールを飛ばす。`PATH` 上の `severally-mcp` がすでにこのインストールを指しているときだけ使える |
152
+ | `--allow-local-tools` | severally の手元で完結する 5 つのツールを、確認なしで Claude Code の許可リストに足す。`consult_start` は確認を残す |
117
153
 
118
154
  方式ごとに何が変わるかは [docs/install.ja.md](docs/install.ja.md#2-つのインストール方式) にあります。
119
155
 
120
- `npx -y severally-mcp@latest status` を実行すると、相談を始めずに、設定ファイル・この機械から使える相談相手・
121
- 入っている写しの版・どのクライアントに登録されているかを表示します。
122
-
123
156
  ### 更新
124
157
 
125
158
  次の 1 行で、最新版に入れ替わります。バージョン番号を調べる必要はありません。
@@ -129,8 +162,8 @@ npx -y severally-mcp@latest install
129
162
  ```
130
163
 
131
164
  `@latest` を付けると、npx は毎回 npm に最新版を問い合わせます。手元に古い写しがあっても、それは使いません。
132
- 終わったら、クライアントを再起動してください。Claude Code のプラグインマーケットプレイスから入れた場合は、
133
- [docs/install.ja.md](docs/install.ja.md#更新) を見てください。版ごとの変更点は
165
+ Claude Code にマーケットプレイス版の severally が入っていれば、同じ 1 行でその写しも更新されます(詳しくは
166
+ [docs/install.ja.md](docs/install.ja.md#更新))。終わったら、クライアントを再起動してください。版ごとの変更点は
134
167
  [リリース](https://github.com/coz-a/severally/releases)にあります。
135
168
 
136
169
  ### アンインストール
@@ -303,13 +336,13 @@ API キーで呼び出すモデル(OpenRouter や、OpenAI 互換のほかの
303
336
  |---|---|---|---|---|---|
304
337
  | Codex | できる | パスで拒否(権限プロファイル)。`.env` のようなファイル名では拒否しない | ある。サンドボックスの中(コマンドは動くが、書き込みとネットワークはできない) | できない | できる(`network: "off"` のときを除く) |
305
338
  | Claude Code | できる(`Read` / `Glob` / `Grep`) | 拒否(権限の規則) | なし | できない | できる(`network: "off"` のときを除く) |
306
- | Antigravity | できる(`view_file`) | 拒否(ツールのフック) | なし | できない | できる(`network: "off"` のときを除く) |
339
+ | Antigravity | できる(`view_file`・`read_file`) | 拒否(ツールのフック) | なし | できない | できる(`network: "off"` のときを除く) |
307
340
  | OpenCode | できる(`read` / `glob` / `grep`) | 拒否(権限の規則) | なし(Code Mode の `execute` は拒否) | できない | できる(`network: "off"` のときを除く) |
308
341
 
309
342
  どの相談相手も、渡したファイルの写しだけが入った専用の作業ディレクトリで始まり、サーバはあなたのリポジトリの
310
- 場所を伝えません。それでも、あなたの
311
- ユーザーアカウントで読めるファイルは、表で「拒否」とした秘密のパスを除いて読めます。Codex はファイルの名前では
312
- 拒否しないので、あなたのリポジトリにある `.env` は Codex から読めます。
343
+ 場所を伝えません。それでも、あなたのユーザーアカウントで読めるファイルは、表で「拒否」とした秘密のパスを除いて
344
+ 読めます。例外は、ファイルを渡した相談での Claude Code です。そのときは、渡したファイルの写ししか読めません。
345
+ Codex はファイルの名前では拒否しないので、あなたのリポジトリにある `.env` は Codex から読めます。
313
346
 
314
347
  **ディスクを読めて Web も閲覧できる相談相手は、読んだ内容を URL に載せて外に持ち出せます**。開いたページに、
315
348
  そうするよう書かれていた場合などです。それを防ぎたいときは、エージェントが `network: "off"` を渡します。その回の
@@ -349,6 +382,8 @@ CLI ごとにどう守らせているかは [docs/how-it-works.ja.md](docs/how-i
349
382
 
350
383
  - `npm install` のあと `npm test` を実行します。テストは本物の代わりに用意した CLI を相手にオフラインで動き、
351
384
  実際の API は呼びません。
385
+ - CI では `npm run lint`・`npm run typecheck`・`npm run format:check` も確かめています。プルリクエストを出す前に
386
+ 実行してください。
352
387
  - ソースか Skill のテンプレートを変えたら、`npm run build` を実行してください。ビルド済みのサーバ
353
388
  (`plugins/severally/dist/`)と生成した Skill はコミットしてあり、古いままだと CI が失敗します。
354
389
  - `npm run live-check` と `npm run doctor` は、入っている CLI を相手に本物の相談を実行するので、実際の使用量がかかります。
package/README.md CHANGED
@@ -16,7 +16,7 @@ A plugin that lets your AI agent ask other coding agents for independent opinion
16
16
  The consultants are Codex, Claude Code, Antigravity and OpenCode. When the agent gets stuck in an investigation, or faces two options that look equally good, it asks the
17
17
  consultants for their opinions. It checks the findings that come back itself, and carries on from what it found.
18
18
  For an important decision, such as a change that is hard to reverse, it consults before asking you to approve it,
19
- and asks you only about what is yours to decide. You can also ask yourself: "ask Codex".
19
+ and asks you only about what is yours to decide. You can also ask for one yourself: "ask Codex".
20
20
 
21
21
  The plugin puts the question to several independent consultants, and returns each one's answer on its own
22
22
  instead of merging them into one, because a disagreement means something too. The agent checks why they disagree
@@ -85,8 +85,6 @@ What a consultant can read and do is under [What a consultant can see and do](#w
85
85
  - Node.js 22 or newer
86
86
  - At least one of the four CLIs, installed and logged in. One is enough: with only Claude Code, you can still ask a
87
87
  fresh Claude Code session.
88
- - On macOS and Linux, npm's global executable directory on `PATH`: the default install puts a `severally-mcp`
89
- command there for Codex to launch. `--manual` does without it.
90
88
 
91
89
  The installer and the server are tested on Linux, macOS and Windows; the Claude Code and Codex marketplace
92
90
  routes and the real CLIs have been tried on Linux only.
@@ -94,20 +92,56 @@ routes and the real CLIs have been tried on Linux only.
94
92
  One line, on macOS, Linux and Windows (PowerShell or Command Prompt):
95
93
 
96
94
  ```bash
97
- npx -y severally-mcp@2.3.1 install
95
+ npx -y severally-mcp@2.4.2 install
98
96
  ```
99
97
 
100
98
  The installer registers severally with each CLI it finds on `PATH`. Add `--dry-run` at the end to print what it
101
- would change without changing anything. Then restart the clients: a running session does not reload the new
102
- registration.
99
+ would change without changing anything.
103
100
 
104
- Installing from the Claude Code plugin marketplace or from a clone, checking the registration, and what the
105
- installer changes are in [docs/install.md](docs/install.md).
101
+ On macOS and Linux, the default install also runs `npm install -g` to put a `severally-mcp` command on `PATH`, which
102
+ only Codex's plugin needs. If npm cannot install it globally (for example it needs sudo, or npm's global folder is
103
+ not on `PATH`), the installer registers Codex directly instead and says so. Nothing else is needed.
104
+
105
+ Then restart the clients: a running session does not reload the new registration. To check the setup without
106
+ starting a consultation, run:
107
+
108
+ ```bash
109
+ npx -y severally-mcp@latest status
110
+ ```
111
+
112
+ It shows the config file, the consultants this machine can reach, the installed copies' versions, which clients
113
+ have severally registered and whether each CLI is logged in. The login check reads the CLI's own status command and
114
+ sends no prompt; running out of quota is not checked, and the first consultation shows it.
115
+
116
+ Part of the output on a machine with Codex and Claude Code:
117
+
118
+ ```text
119
+ config: ok
120
+
121
+ consultants:
122
+ codex: codex, <model> available
123
+ claude-code: claude-code, <model> available
124
+
125
+ clients:
126
+ Claude Code registered (listed by the client)
127
+ Codex registered (listed by the client)
128
+
129
+ login (out of quota is not checked; the first consultation shows it):
130
+ codex logged in
131
+ claude-code logged in
132
+ ```
133
+
134
+ Then ask your agent for a first consultation, as in [Usage](#usage).
135
+
136
+ If you use only Claude Code, you can install from its plugin marketplace instead: run `/plugin marketplace add coz-a/severally`
137
+ and then `/plugin install severally@severally` in Claude Code, and restart it. The one line above is the main route,
138
+ since it registers every CLI it finds. Installing from the marketplace or from a clone, checking the registration,
139
+ and what the installer changes are in [docs/install.md](docs/install.md).
106
140
 
107
141
  ### Command line
108
142
 
109
143
  ```bash
110
- npx -y severally-mcp@latest install [--dry-run] [--manual] [--force] [--skip-global]
144
+ npx -y severally-mcp@latest install [--dry-run] [--manual] [--force] [--skip-global] [--allow-local-tools]
111
145
  ```
112
146
 
113
147
  | Option | What it does |
@@ -116,12 +150,10 @@ npx -y severally-mcp@latest install [--dry-run] [--manual] [--force] [--skip-glo
116
150
  | `--manual` | registers the MCP server and copies the Skill instead of installing the plugin (the default on Windows) |
117
151
  | `--force` | registers again where severally is already registered, instead of leaving it as it is |
118
152
  | `--skip-global` | skips the global npm install in plugin mode, when `severally-mcp` on `PATH` is already this install |
153
+ | `--allow-local-tools` | adds severally's five local tools to Claude Code's allow list without asking; `consult_start` still asks |
119
154
 
120
155
  What each mode changes is in [docs/install.md](docs/install.md#two-install-modes).
121
156
 
122
- `npx -y severally-mcp@latest status` shows what is set up without starting a consultation: the config file, the
123
- consultants this machine can reach, the installed copies' versions and which clients have severally registered.
124
-
125
157
  ### Updating
126
158
 
127
159
  This line replaces your install with the latest version, with no version number to look up:
@@ -131,8 +163,8 @@ npx -y severally-mcp@latest install
131
163
  ```
132
164
 
133
165
  With `@latest`, npx asks npm for the newest version every time, so an older copy it already has is not used.
134
- Then restart the clients. Installed from the Claude Code plugin marketplace: see
135
- [docs/install.md](docs/install.md#updating). What changed in each version is in the
166
+ If Claude Code has severally from its plugin marketplace, the same line updates that copy too (details in
167
+ [docs/install.md](docs/install.md#updating)). Then restart the clients. What changed in each version is in the
136
168
  [releases](https://github.com/coz-a/severally/releases).
137
169
 
138
170
  ### Uninstall
@@ -310,11 +342,13 @@ history is never sent. No consultant can:
310
342
  |---|---|---|---|---|---|
311
343
  | Codex | yes | blocked by path (permission profile), not by file name such as `.env` | yes, in its sandbox (commands run, but cannot write or reach the network) | no | yes, unless `network: "off"` |
312
344
  | Claude Code | yes (`Read` / `Glob` / `Grep`) | blocked (permission rules) | none | no | yes, unless `network: "off"` |
313
- | Antigravity | yes (`view_file`) | blocked (tool hook) | none | no | yes, unless `network: "off"` |
345
+ | Antigravity | yes (`view_file`, `read_file`) | blocked (tool hook) | none | no | yes, unless `network: "off"` |
314
346
  | OpenCode | yes (`read` / `glob` / `grep`) | blocked (permission rules) | none (its Code Mode `execute` is refused) | no | yes, unless `network: "off"` |
315
347
 
316
348
  Every consultant starts in a working directory of its own that holds only copies of the files you handed it, and
317
- the server does not tell it where your repository is. It can still read any file your user account can read, except the credential paths the table marks blocked.
349
+ the server does not tell it where your repository is. It can still read any file your user account can read, except
350
+ the credential paths the table marks blocked. The one exception is Claude Code in a consultation that exposes files:
351
+ it can then read only those copies.
318
352
  Codex does not block by file name, so a `.env` in your repository is readable to it.
319
353
 
320
354
  **A consultant that can both read your disk and browse could carry what it read out in a URL**, for example if a
@@ -354,6 +388,8 @@ a large change, open an issue first so we can talk it over. Everyone taking part
354
388
  [Code of Conduct](CODE_OF_CONDUCT.md).
355
389
 
356
390
  - `npm install`, then `npm test`. The tests run offline against stand-in CLIs and make no real API calls.
391
+ - CI also runs `npm run lint`, `npm run typecheck` and `npm run format:check`. Run them before you open a pull
392
+ request.
357
393
  - After changing the source or the Skill template, run `npm run build`. The built server in
358
394
  `plugins/severally/dist/` and the generated Skills are committed, and CI fails when they are out of date.
359
395
  - `npm run live-check` and `npm run doctor` run real consultations against the CLIs you have installed, and spend
@@ -1,6 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import fs from 'node:fs';
3
- import { main } from '../src/server.mjs';
3
+
4
+ // Checked before anything else loads, so an older Node says what to do
5
+ // instead of failing somewhere inside the server or the installer.
6
+ const major = Number(process.versions.node.split('.')[0]);
7
+ if (major < 22) {
8
+ process.stderr.write(
9
+ `severally: Node.js 22 or newer is needed (this is ${process.versions.node}); update Node.js and run it again\n`,
10
+ );
11
+ process.exit(1);
12
+ }
4
13
 
5
14
  // `npx -y severally-mcp@latest install` runs the installer, so installing and
6
15
  // updating name the package once. Only the npm package has the installer
@@ -10,7 +19,9 @@ import { main } from '../src/server.mjs';
10
19
  if (process.argv[2] === 'install') {
11
20
  const installer = new URL('../scripts/install.mjs', import.meta.url);
12
21
  if (!fs.existsSync(installer)) {
13
- process.stderr.write('severally: this is the installed server, not the installer; run: npx -y severally-mcp@latest install\n');
22
+ process.stderr.write(
23
+ 'severally: this is the installed server, not the installer; run: npx -y severally-mcp@latest install\n',
24
+ );
14
25
  process.exit(1);
15
26
  }
16
27
  process.argv.splice(2, 1);
@@ -19,6 +30,7 @@ if (process.argv[2] === 'install') {
19
30
  const { status } = await import('../src/status.mjs');
20
31
  process.exitCode = status();
21
32
  } else {
33
+ const { main } = await import('../src/server.mjs');
22
34
  main().catch((err) => {
23
35
  process.stderr.write(`severally: fatal: ${err?.stack ?? err}\n`);
24
36
  process.exit(1);
@@ -12,8 +12,10 @@ npx はパッケージを自分のキャッシュに取ってきて、そこか
12
12
 
13
13
  README に書いた Node.js 22 以降とログイン済みの CLI のほかに、次の条件があります。
14
14
 
15
- - macOS / Linux では、npm のグローバルな実行ファイルのディレクトリが `PATH` に入っていること。既定のプラグイン方式
16
- (下記)は、Codex が起動する `severally-mcp` コマンドをそこに入れます。`--manual` を付ければ不要です。
15
+ - macOS / Linux では、npm のグローバルのフォルダについて必要なことはありません。既定のプラグイン方式(下記)は
16
+ `npm install -g` で、Codex のプラグインが起動する `severally-mcp` コマンドを `PATH` に置きます。npm がグローバルに
17
+ 入れられないとき(たとえば sudo が要る、npm のグローバルのフォルダが `PATH` に無い)は、インストーラが代わりに
18
+ Codex を直接登録します。ほかに必要なことはありません。`--manual` を付ければ、このコマンドは要りません。
17
19
  - Windows では、PowerShell かコマンドプロンプトからネイティブに動きます。WSL は要りません。CLI は `PATH` と
18
20
  `PATHEXT` から探します(`.exe`、`.cmd`、`.bat`、空白を含むパスにも対応します)。
19
21
 
@@ -44,7 +46,11 @@ node scripts/install.mjs
44
46
 
45
47
  `npx -y severally-mcp@latest status` を実行すると、相談を始めずに、まとめて確かめられます。設定ファイルが正しいか、
46
48
  この機械から使える相談相手(使えないものはその理由)、入っている写しの版がそろっているか、どのクライアントに
47
- severally が登録されているかを表示します。CLI にログインしているかは確かめません。それは最初の相談で分かります。
49
+ severally が登録されているか、各 CLI にログインしているかを表示します。ログインの確認は、各 CLI 自身の状態確認
50
+ コマンドを読むだけで、プロンプトは送りません。Claude Code は `claude auth status`、Codex は `codex login status` です。
51
+ OpenCode は `opencode auth list` で保存されている認証情報の数を見ます(環境変数のキーでも動くので、保存が無くても
52
+ 警告にとどめます)。Antigravity にはそうしたコマンドが無いので「not checked」と表示します。使用枠を使い切って
53
+ いないかは確かめません。それは最初の相談で分かります。
48
54
 
49
55
  クライアントごとに自分で確かめるときは、再起動したあとに次を実行します。持っていない CLI の行は飛ばしてください。
50
56
 
@@ -76,7 +82,8 @@ Node.js 22 以降が `PATH` に入っている必要があります。ツール
76
82
  Codex、Antigravity、OpenCode からも使うなら、クローンしてインストーラも実行します([クローンから入れる](#クローンから入れる)を参照)。
77
83
  インストーラはマーケットプレイス版を見つけると、Claude Code はそちらに任せます。マーケットプレイス版より先に
78
84
  インストーラを実行していた場合は、もう一度実行してください。そのままだと Claude Code が severally を二重に読み込みます。
79
- インストーラは、自分が以前に入れた Claude Code 用の写しと登録を、バックアップしてから取り除きます。
85
+ インストーラは、自分が以前に入れた Claude Code 用の写しと登録を、バックアップしてから取り除きます。マーケットプレイス版が
86
+ 入ったあとは、同じインストーラの実行でそれも更新されます([更新](#更新)を参照)。
80
87
 
81
88
  ## 2 つのインストール方式
82
89
 
@@ -95,9 +102,13 @@ Codex、Antigravity、OpenCode からも使うなら、クローンしてイン
95
102
 
96
103
  - サーバを依存パッケージごと `~/.severally/runtime/severally-mcp.mjs` に写します。どの登録も、クローンした
97
104
  フォルダではなく、この写しを指します。
98
- - プラグイン方式では、npm のグローバルなインストールも行います。これで、Codex が起動する `severally-mcp` コマンドが
99
- 入ります。`--skip-global` を付けるとこの手順を飛ばしますが、`PATH` 上の `severally-mcp` がすでに写した runtime を
100
- 指している場合しか受け付けません。手動方式ではグローバルなインストールは要りません。
105
+ - macOS / Linux のプラグイン方式では、runtime を `severally-runtime` というパッケージ名で npm のグローバルにも入れます。
106
+ これで、Codex のプラグインが起動する `severally-mcp` コマンドが入ります。以前のインストールが残した `severally-mcp`
107
+ という名前のグローバルなパッケージは、先に `npm uninstall -g severally-mcp` で取り除きます。npm がコマンドを
108
+ グローバルに入れられないとき、または `PATH` の先頭にないときも、インストーラは止まらず、代わりに Codex を直接
109
+ 登録して、そう表示します。登録は `--manual` と同じ `codex mcp add` で、長い `consult_get` の待ちも同じです。
110
+ `--skip-global` を付けるとグローバルなインストールを飛ばしますが、`PATH` 上の `severally-mcp` がすでに写した
111
+ runtime を指している場合しか受け付けません。手動方式ではグローバルなインストールは要りません。
101
112
  - クライアントの設定は、各 CLI のコマンド(`plugin add` / `mcp add`)だけで変えます。例外は手動で登録する Codex で、
102
113
  `config.toml` の `[mcp_servers.severally]` の表に `tool_timeout_sec = 660` の 1 行も書きます(Codex のプラグインと
103
114
  同じ長い待ちにするためで、`codex mcp add` では設定できません)。表にすでに `tool_timeout_sec` があれば、その値を
@@ -108,20 +119,28 @@ Codex、Antigravity、OpenCode からも使うなら、クローンしてイン
108
119
  - 方式を切り替えると、もう一方の方式で残った重複の登録を、バックアップしてから取り除きます。
109
120
  - Claude Code にマーケットプレイス版の severally がすでに入っていれば、Claude Code には登録しません。以前に
110
121
  インストーラが入れた Claude Code 用の写し(`~/.claude/skills/severally`)とユーザスコープの登録も取り除きます。
122
+ マーケットプレイス版の更新も行います([更新](#更新)を参照)。
123
+ - 最後に、Claude Code があり、`~/.claude/settings.json` が severally の手元で完結する 5 つのツールをまだ許可して
124
+ いなければ、足すかどうかを訊きます(次の節を参照)。このファイルのほかの部分は変えません。
111
125
  - Codex のマーケットプレイスのファイル `.agents/plugins/marketplace.json` は、このリポジトリから写します。
112
126
  公開されているマーケットプレイスは使いません。
113
127
 
114
128
  ## 外に何も送らないツールの許可の確認を省く
115
129
 
116
130
  `consult_start` 以外の 5 つのツールは手元で完結します。`consult_get`(相談が動いている間、繰り返し呼ぶ)、`consult_list`、
117
- `consult_cancel`、`consult_record`、`consult_export` です。どのクライアントにも許可リストに
118
- ツールを足すコマンドが無いので、インストーラは触りません。手で足してください。`consult_start` は確認を残します。
119
- ほかのベンダーに材料を送るのはこの呼び出しだからです。
131
+ `consult_cancel`、`consult_record`、`consult_export` です。`consult_start` は確認を残します。ほかのベンダーに材料を
132
+ 送るのはこの呼び出しなので、インストーラも足しません。
120
133
 
121
134
  - **Claude Code**: Skill が、呼ばれたターンの間はこの 5 つを許可します(`allowed-tools`)。そのため相談のポーリングで
122
- 毎回は確認が出ません。代わりに Skill 自体の承認を 1 度求められます。後のターン(判定の記録や追加質問)でも省くには、
123
- `~/.claude/settings.json` に書きます(プラグイン方式の場合。`--manual` では
124
- `mcp__plugin_severally_severally__` を `mcp__severally__` に読み替えます)。
135
+ 毎回は確認が出ません。代わりに Skill 自体の承認を 1 度求められます。後のターン(判定の記録や追加質問)でも省くために、
136
+ インストーラが足すかどうかを訊きます。インストールの最後に、Claude Code があり、`~/.claude/settings.json` が
137
+ この 5 つをまだ許可していなければ、端末で「Let Claude Code run ... without asking each time? [Y/n]」と訊きます
138
+ (既定は Y)。`--allow-local-tools` を付けると、訊かずに足します(スクリプトからのインストール向け)。端末が無く、
139
+ フラグも無いときは何も変えず、フラグを付けてやり直す方法を表示します。先に `settings.json` をバックアップし、
140
+ ほかの設定は残し、同じ規則を二重には足しません。規則の接頭辞は、プラグイン方式とマーケットプレイス版では
141
+ `mcp__plugin_severally_severally__`、手動方式では `mcp__severally__` です。手で足すときは、
142
+ `~/.claude/settings.json` に次を書きます(`--manual` では `mcp__plugin_severally_severally__` を
143
+ `mcp__severally__` に読み替えます)。
125
144
  ```json
126
145
  { "permissions": { "allow": [
127
146
  "mcp__plugin_severally_severally__consult_get", "mcp__plugin_severally_severally__consult_list",
@@ -139,6 +158,8 @@ Codex、Antigravity、OpenCode からも使うなら、クローンしてイン
139
158
  - **OpenCode** は、自分の `permission` の設定で変えていなければ、MCP ツールを確認なしで使います。
140
159
  - **Antigravity**: MCP ツールを 1 つずつ許可する規則の書き方を確かめていないので、ここでは扱いません。
141
160
 
161
+ インストーラは、Codex・Antigravity・OpenCode の許可には触りません。
162
+
142
163
  ### 相談の開始の確認も省く
143
164
 
144
165
  エージェントは自分から相談します(相談するかどうかを訊かないよう Skill が指示しています)。そのため `consult_start` の
@@ -161,11 +182,15 @@ Claude Code なら許可リストに `mcp__plugin_severally_severally__consult_s
161
182
  クローンしたフォルダそのものを登録していた古いバージョンで入れた場合は、一度だけ `--force` を付けてください。既存の登録が、
162
183
  写した runtime を指すように切り替わります。付けなければ、既存の登録はそのまま残ります。
163
184
 
164
- マーケットプレイスから入れた場合は、Claude Code で `/plugin marketplace update severally` を実行してから再起動します。
185
+ マーケットプレイスから入れた場合は、Claude Code にマーケットプレイス版の severally がすでに入っていれば、インストーラが
186
+ `claude plugin marketplace update severally` と `claude plugin update severally@<マーケットプレイス名>` も実行します。
187
+ そのため `npx -y severally-mcp@latest install` を 1 回実行すれば、すべての写しが同じバージョンになります。失敗したときは、
188
+ Claude Code の中で実行するコマンド `/plugin marketplace update severally` を表示します。そのあと Claude Code を
189
+ 再起動してください。Claude Code だけなら、インストーラの代わりにこのコマンドを自分で実行しても構いません。
165
190
  自動の更新は既定では無効です。有効にするには、`/plugin` の Marketplaces で severally を選び、Enable auto-update を
166
- 選びます。Codex、Antigravity、OpenCode からも使っている場合は、インストーラも実行し直してください。この 3 つは
167
- `~/.severally/runtime` にある別の写しを使い、どちらの写しも同じ `~/.severally/config.json` を読みます。設定の書き方が
168
- 変わるリリースでは、両方を同じバージョンにそろえてください。`~/.severally/runtime` か `~/.claude/skills/severally` の
191
+ 選びます。Codex、Antigravity、OpenCode は `~/.severally/runtime` にある別の写しを使い、どちらの写しも同じ
192
+ `~/.severally/config.json` を読みます。インストーラが両方を同じバージョンにそろえます。設定の書き方が変わる
193
+ リリースでは、これが大事になります。`~/.severally/runtime` か `~/.claude/skills/severally` の
169
194
  写しが、答えているサーバと違うバージョンなら、`consult_start` の応答の `stale_install` がそれを知らせます。中身は、
170
195
  それぞれの写しのバージョンと、そろえるためのコマンドです。
171
196
 
@@ -190,7 +215,8 @@ Remove-Item -LiteralPath "$HOME/.codex/skills/severally" -Recurse -Force
190
215
  Remove-Item -LiteralPath "$HOME/.gemini/config/skills/severally" -Recurse -Force
191
216
  Remove-Item -LiteralPath "$HOME/.config/opencode/skills/severally" -Recurse -Force
192
217
  Remove-Item -LiteralPath "$HOME/.severally/runtime" -Recurse -Force
193
- # 以前にグローバルなコマンドを入れていた場合だけ:
218
+ # 以前にグローバルなコマンドを入れていた場合だけ(古い名前は以前のインストール用):
219
+ npm.cmd uninstall -g severally-runtime
194
220
  npm.cmd uninstall -g severally-mcp
195
221
  ```
196
222
 
@@ -208,7 +234,8 @@ rm -rf ~/.gemini/config/skills/severally
208
234
  # "mcp" オブジェクトから "severally" の項目を手で消す):
209
235
  # ~/.config/opencode/opencode.json(c) を編集する
210
236
  rm -rf ~/.config/opencode/skills/severally
211
- npm uninstall -g severally-mcp
237
+ npm uninstall -g severally-runtime
238
+ npm uninstall -g severally-mcp # 以前のインストールが残していた場合だけ
212
239
  rm -rf ~/.severally/runtime ~/.severally/marketplace
213
240
  ```
214
241
 
@@ -222,7 +249,8 @@ agy mcp remove severally
222
249
  # "severally" の項目を手で消す
223
250
  rm -rf ~/.claude/skills/severally ~/.codex/skills/severally ~/.gemini/config/skills/severally \
224
251
  ~/.config/opencode/skills/severally
225
- # 以前にグローバルなコマンドを入れていた場合だけ:
252
+ # 以前にグローバルなコマンドを入れていた場合だけ(古い名前は以前のインストール用):
253
+ npm uninstall -g severally-runtime
226
254
  npm uninstall -g severally-mcp
227
255
  rm -rf ~/.severally/runtime ~/.severally/marketplace
228
256
  ```
package/docs/install.md CHANGED
@@ -12,8 +12,10 @@ into that cache, so it can be cleared afterwards.
12
12
 
13
13
  Beyond Node.js 22 or newer and a logged-in CLI, as in the README:
14
14
 
15
- - macOS/Linux: npm's global executable directory on `PATH`. The default (plugin mode, below) installs a
16
- `severally-mcp` command there for Codex to launch. `--manual` does without it.
15
+ - macOS/Linux: nothing about npm's global folder is required. The default (plugin mode, below) runs
16
+ `npm install -g` to put a `severally-mcp` command on `PATH` for Codex's plugin to launch. When npm cannot install
17
+ it globally (for example it needs sudo, or npm's global folder is not on `PATH`), the installer registers Codex
18
+ directly instead, and nothing else is needed. `--manual` does without the command.
17
19
  - Windows runs natively from PowerShell or Command Prompt; WSL is not required. CLIs are found through
18
20
  `PATH`/`PATHEXT` (`.exe`, `.cmd`, `.bat`, paths with spaces included).
19
21
 
@@ -44,8 +46,11 @@ run `npm run init-config` (see [Configuration](../README.md#configuration) in th
44
46
 
45
47
  `npx -y severally-mcp@latest status` shows it all at once, without starting a consultation: whether the config
46
48
  file is valid, which consultants this machine can reach (and why the others cannot), whether every installed copy
47
- is the same version, and which clients have severally registered. It does not check that a CLI is logged in; the
48
- first consultation shows that.
49
+ is the same version, which clients have severally registered, and whether each CLI is logged in. The login check
50
+ reads each CLI's own status command and sends no prompt: `claude auth status` for Claude Code, `codex login status`
51
+ for Codex, and for OpenCode the number of credentials saved by `opencode auth list` (keys in the environment also
52
+ work, so none saved is only a warning). Antigravity has no such command, so it shows "not checked". Running out of
53
+ quota is not checked; the first consultation shows that.
49
54
 
50
55
  To check one client yourself, after restarting it. Skip the lines for CLIs you don't have:
51
56
 
@@ -77,7 +82,8 @@ route has been tried on Linux only.
77
82
  To use severally from Codex, Antigravity or OpenCode as well, also run the installer from a clone
78
83
  ([From a clone](#from-a-clone)). It finds the marketplace plugin and leaves Claude Code to it. If you ran the installer before
79
84
  adding the marketplace plugin, run it once more: Claude Code would otherwise load severally twice, and the
80
- installer removes its own Claude Code copy and registration, backing them up first.
85
+ installer removes its own Claude Code copy and registration, backing them up first. Once the marketplace plugin is
86
+ there, the same installer run also updates it (see [Updating](#updating)).
81
87
 
82
88
  ## Two install modes
83
89
 
@@ -96,9 +102,13 @@ Windows. Pass `--manual` to use manual mode on macOS/Linux too.
96
102
 
97
103
  - It copies the server, with its dependencies, to `~/.severally/runtime/severally-mcp.mjs`. Every registration
98
104
  points at that copy, not at the cloned folder.
99
- - In plugin mode it also runs a global npm install, which provides the `severally-mcp` command that Codex
100
- launches. `--skip-global` skips that step and is accepted only when `severally-mcp` on `PATH` already points
101
- at the copied runtime. Manual mode needs no global install.
105
+ - In plugin mode on macOS/Linux it also runs a global npm install of the runtime under the package name
106
+ `severally-runtime`, which provides the `severally-mcp` command that Codex's plugin launches. A global package
107
+ named `severally-mcp` that an earlier install left is removed with `npm uninstall -g severally-mcp` first.
108
+ If npm cannot install the command globally, or it is not first on `PATH`, the installer does not stop: it
109
+ registers Codex directly, with the same `codex mcp add` registration and long `consult_get` wait as `--manual`,
110
+ and says so. `--skip-global` skips the global install and is accepted only when `severally-mcp` on `PATH` already
111
+ points at the copied runtime. Manual mode needs no global install.
102
112
  - It changes client settings only through each CLI's own commands (`plugin add` / `mcp add`), with one
103
113
  exception: for a manually registered Codex it also writes one line, `tool_timeout_sec = 660`, into
104
114
  `config.toml` under `[mcp_servers.severally]` (the same long wait the Codex plugin has; `codex mcp add` cannot
@@ -110,20 +120,29 @@ Windows. Pass `--manual` to use manual mode on macOS/Linux too.
110
120
  naming each backup after its original path.
111
121
  - Switching modes backs up and then removes the duplicate registration left by the other mode.
112
122
  - If Claude Code already has severally from the marketplace, the installer does not register it with Claude Code,
113
- and removes its own earlier Claude Code copy (`~/.claude/skills/severally`) and user-scope registration.
123
+ and removes its own earlier Claude Code copy (`~/.claude/skills/severally`) and user-scope registration. It also
124
+ updates the marketplace copy (see [Updating](#updating)).
125
+ - At the end, if Claude Code is present and `~/.claude/settings.json` does not yet allow severally's five local
126
+ tools, it offers to add them (see the next section). It changes nothing else in that file.
114
127
  - For Codex, the marketplace file `.agents/plugins/marketplace.json` is copied from this repository; no public
115
128
  listing is involved.
116
129
 
117
130
  ## Skipping the permission prompt for tools that send nothing out
118
131
 
119
132
  Every tool except `consult_start` stays on your machine: `consult_get` (called repeatedly while a
120
- consultation runs), `consult_list`, `consult_cancel`, `consult_record` and `consult_export`. None of the clients has a command that adds tools to its allowlist, so the installer
121
- leaves this to you. Keep `consult_start` prompting: it is the point where material leaves for another vendor.
133
+ consultation runs), `consult_list`, `consult_cancel`, `consult_record` and `consult_export`. Keep `consult_start` prompting: it is the point where
134
+ material leaves for another vendor, and the installer never adds it.
122
135
 
123
136
  - **Claude Code**: the Skill already allows these five tools (its `allowed-tools`) for the turn it is invoked in, so
124
137
  polling a consultation does not prompt each time; the Skill itself asks for approval once. For the later turns
125
- (recording verdicts, a follow-up), add them in `~/.claude/settings.json` (plugin installs; for `--manual` write
126
- `mcp__severally__` instead of `mcp__plugin_severally_severally__`):
138
+ (recording verdicts, a follow-up), the installer offers to add them. At the end of the install, if Claude Code is
139
+ present and `~/.claude/settings.json` does not yet allow the five tools, it asks at the terminal "Let Claude Code
140
+ run ... without asking each time? [Y/n]" (the default is yes). With `--allow-local-tools` it adds them without
141
+ asking, for scripted installs. Without a terminal and without the flag it changes nothing and prints how to rerun
142
+ with the flag. It backs up `settings.json` first, keeps every other setting, and never adds a rule twice. The
143
+ rules use the prefix `mcp__plugin_severally_severally__` in plugin mode or for a marketplace install, and
144
+ `mcp__severally__` in manual mode. To do it by hand, add this to `~/.claude/settings.json` (write
145
+ `mcp__severally__` instead of `mcp__plugin_severally_severally__` for `--manual`):
127
146
  ```json
128
147
  { "permissions": { "allow": [
129
148
  "mcp__plugin_severally_severally__consult_get", "mcp__plugin_severally_severally__consult_list",
@@ -141,6 +160,8 @@ leaves this to you. Keep `consult_start` prompting: it is the point where materi
141
160
  - **OpenCode** allows MCP tools without asking unless your own `permission` settings say otherwise.
142
161
  - **Antigravity**: not covered here; the rule syntax for a single MCP tool has not been checked.
143
162
 
163
+ The installer does not touch the permissions of Codex, Antigravity or OpenCode.
164
+
144
165
  ### Letting consultations start without the prompt too
145
166
 
146
167
  The agent consults on its own (the Skill tells it not to ask whether to), so with `consult_start` prompting, every
@@ -164,11 +185,14 @@ and marketplace files under `~/.severally/backups/` before replacing them. Then
164
185
  Installed with an older version that registered the cloned folder itself? Add `--force` once to switch the
165
186
  existing registrations to the copied runtime. Without it, existing registrations are left as they are.
166
187
 
167
- Installed from the marketplace: run `/plugin marketplace update severally` in Claude Code, then restart it.
168
- Automatic updates are off by default; to turn them on, select severally under Marketplaces in `/plugin`, then
169
- Enable auto-update. If Codex, Antigravity or OpenCode use severally too, run the installer again as well: they
170
- run their own copy in `~/.severally/runtime`, and both copies read the same `~/.severally/config.json`, so keep
171
- them on the same version when a release changes the config format. When the copy in `~/.severally/runtime` or
188
+ Installed from the marketplace: when Claude Code already has severally from the marketplace, the installer also
189
+ runs `claude plugin marketplace update severally` and `claude plugin update severally@<marketplace>`, so one
190
+ `npx -y severally-mcp@latest install` brings every copy to the same version. If that fails, it prints the command to
191
+ run inside Claude Code, `/plugin marketplace update severally`. Restart Claude Code afterwards. For Claude Code
192
+ alone you can also run that command yourself instead of the installer. Automatic updates are off by default; to
193
+ turn them on, select severally under Marketplaces in `/plugin`, then Enable auto-update. Codex, Antigravity and
194
+ OpenCode run their own copy in `~/.severally/runtime`, and both copies read the same `~/.severally/config.json`;
195
+ the installer keeps them on the same version, which matters when a release changes the config format. When the copy in `~/.severally/runtime` or
172
196
  `~/.claude/skills/severally` runs a different version from the server answering, `consult_start` says so under
173
197
  `stale_install`, with the copies' versions and the commands that bring them level.
174
198
 
@@ -193,7 +217,8 @@ Remove-Item -LiteralPath "$HOME/.codex/skills/severally" -Recurse -Force
193
217
  Remove-Item -LiteralPath "$HOME/.gemini/config/skills/severally" -Recurse -Force
194
218
  Remove-Item -LiteralPath "$HOME/.config/opencode/skills/severally" -Recurse -Force
195
219
  Remove-Item -LiteralPath "$HOME/.severally/runtime" -Recurse -Force
196
- # Only if you previously installed the global command:
220
+ # Only if you installed the global command earlier (the old name is for an earlier install):
221
+ npm.cmd uninstall -g severally-runtime
197
222
  npm.cmd uninstall -g severally-mcp
198
223
  ```
199
224
 
@@ -213,7 +238,8 @@ rm -rf ~/.gemini/config/skills/severally
213
238
  # so delete the "severally" entry from the "mcp" object by hand):
214
239
  # edit ~/.config/opencode/opencode.json(c)
215
240
  rm -rf ~/.config/opencode/skills/severally
216
- npm uninstall -g severally-mcp
241
+ npm uninstall -g severally-runtime
242
+ npm uninstall -g severally-mcp # only if an earlier install left it
217
243
  rm -rf ~/.severally/runtime ~/.severally/marketplace
218
244
  ```
219
245
 
@@ -227,7 +253,8 @@ agy mcp remove severally
227
253
  # ~/.config/opencode/opencode.json(c) by hand
228
254
  rm -rf ~/.claude/skills/severally ~/.codex/skills/severally ~/.gemini/config/skills/severally \
229
255
  ~/.config/opencode/skills/severally
230
- # Only if a global command was previously installed:
256
+ # Only if a global command was installed earlier (the old name is for an earlier install):
257
+ npm uninstall -g severally-runtime
231
258
  npm uninstall -g severally-mcp
232
259
  rm -rf ~/.severally/runtime ~/.severally/marketplace
233
260
  ```