You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
No harness relies on npm `postinstall` hooks. See `openspec/changes/cross-harness-plugin-installer/design.md` and `openspec/changes/cross-harness-plugin-installer/specs/installation-and-auth.md` for the full design rationale.
16
16
@@ -19,28 +19,30 @@ No harness relies on npm `postinstall` hooks. See `openspec/changes/cross-harnes
Skills are canonical in `packages/core/skills/`. Claude, Codex, and Antigravity receive materialized skill copies only when `pnpm plugin:artifacts` generates self-contained release/local-install artifacts under `dist/`. Pi receives materialized skills only during package `prepack`.
36
+
Skills are canonical in the repository-root `skills/` directory. The repo root is also the GitHub-installable plugin payload for Claude, Codex, and Antigravity. Pi and the npm CLI package receive materialized skills during package `prepack`.
|**Claude**|Root plugin| Native marketplace/plugin install; `setup` for auth |
41
+
|**Codex**|Root plugin| Native marketplace/plugin install; `setup` for auth |
42
+
|**Antigravity**|Root plugin|`agy plugin install <repo-url>`; `setup` for auth |
40
43
|**Pi**| Pi npm package (`pi.skills`) | Pi package owns skills; `setup` writes auth/MCP config |
41
44
|**OpenCode**| CLI-only harness copy |`setup` authenticates and copies skills/MCP config locally; `install` is no-browser fallback |
42
45
43
-
Codex artifacts currently include both a root `.codex-plugin/plugin.json` local marketplace container and a nested `plugins/nsolid-plugin/` plugin package. Both declare `skills: './skills/'` and both get materialized skill copies.
44
46
45
47
## Quick start
46
48
@@ -85,35 +87,39 @@ On setup:
85
87
86
88
## Per-harness install
87
89
88
-
The commands below use local pre-release artifact directories generated by `pnpm plugin:artifacts`. Released native artifacts are `.tgz` files; extract an archive to a plugin-root directory before passing it to a harness CLI:
90
+
The GitHub marketplace flow installs from the repository root.
91
+
92
+
The setup step requires the `nsolid-plugin` CLI on your PATH:
89
93
90
94
```bash
91
-
mkdir -p ./nsolid-claude-plugin
92
-
tar -xzf nsolid-claude-plugin.tgz -C ./nsolid-claude-plugin --strip-components=1
93
-
claude plugin marketplace add ./nsolid-claude-plugin
95
+
npm i -g nsolid-plugin# stable release
96
+
# during pre-release:
97
+
npm i -g nsolid-plugin@next
94
98
```
95
99
100
+
Or invoke it once-off with `npx -y nsolid-plugin setup --harness <harness>` (`npx -y nsolid-plugin@next ...` during pre-release).
101
+
96
102
### Claude Code
97
103
98
104
```bash
99
-
pnpm plugin:artifacts
100
-
claude plugin marketplace add ./dist/plugins/claude/nsolid-plugin
101
-
claude plugin install nsolid-plugin@nodesource-local
105
+
claude plugin marketplace add NodeSource/nsolid-plugin
106
+
claude plugin install nsolid-plugin@nodesource
102
107
nsolid-plugin setup --harness claude
103
108
```
104
109
105
-
Claude installs plugins through marketplaces, including local marketplace directories. The generated artifact root includes `.claude-plugin/marketplace.json`, so a downloaded/unpacked artifact can be added as a local marketplace before installing `nsolid-plugin@nodesource-local`. If marketplace/local plugin install is unavailable, `nsolid-plugin install --harness claude` is the fallback direct installer and does not open a browser.
110
+
Claude installs plugins through marketplaces. The repository root includes `.claude-plugin/marketplace.json`, so GitHub install works directly. If marketplace/local plugin install is unavailable, `nsolid-plugin install --harness claude` is the fallback direct installer and does not open a browser.
111
+
112
+
> `nsolid-plugin` must be available on your PATH. Once published, install it globally (`npm i -g nsolid-plugin`) or invoke it via npx (`npx -y nsolid-plugin setup --harness claude`). During the pre-release window, use the prerelease tag (`npx -y nsolid-plugin@next ...` or `npm i -g nsolid-plugin@next`).
Codex is marketplace/artifact-owned. A NodeSource-owned Git/local marketplace can be used as fallback if OpenAI curation is unavailable. Authentication remains explicit through `nsolid-plugin setup --harness codex`.
122
+
Codex is marketplace-owned. A NodeSource-owned Git/local marketplace can be used as fallback if OpenAI curation is unavailable. Authentication remains explicit through `nsolid-plugin setup --harness codex` (or `npx -y nsolid-plugin setup --harness codex`).
117
123
118
124
### OpenCode
119
125
@@ -128,18 +134,17 @@ Use `nsolid-plugin install --harness opencode` only as a no-browser fallback/rep
Antigravity uses artifact-owned skills and MCP wrappers from`~/.gemini/antigravity-cli/plugins/nsolid-plugin/`. The generated native install script stages the artifact bundle and prints the explicit setup command; it does not start auth.
141
+
Antigravity installs the repository root as a native plugin and stages skills/MCP wrappers under`~/.gemini/antigravity-cli/plugins/nsolid-plugin/`. Install does not start auth.
137
142
138
143
### Pi Agent
139
144
140
145
```bash
141
146
# 1. Install the Pi package (skills are package-owned)
142
-
pi install npm:@nodesource/pi-plugin
147
+
pi install npm:nsolid-pi-plugin
143
148
144
149
# 2. Authenticate and write Pi MCP config
145
150
nsolid-plugin setup --harness pi
@@ -190,16 +195,16 @@ pnpm lint # Lint all packages
190
195
### Bundle and plugin asset sync checks
191
196
192
197
```bash
193
-
pnpm --filter @nodesource/plugin-core bundle:check # Check if core bundle.json is in sync
194
-
pnpm --filter @nodesource/plugin-core bundle:sync # Copy root bundle.json into core
198
+
pnpm --filter nsolid-plugin bundle:check # Check if core bundle.json is in sync
199
+
pnpm --filter nsolid-plugin bundle:sync # Copy root bundle.json into core
195
200
pnpm plugin:check # Check generated manifests/configs and verify no package skill copies are committed
pnpm plugin:materialize # Copy core skills into plugin packages for pack/release artifacts
198
-
pnpm plugin:artifacts# Generate Claude/Codex/Antigravity plugin dirs and .tgz archives
199
-
pnpm plugin:artifacts:check # Verify generated plugin artifacts are current
202
+
pnpm plugin:materialize # Copy root skills into the Pi package for pack/release
203
+
pnpm plugin:root# Refresh root marketplace/plugin manifests from bundle.json
204
+
pnpm plugin:root:check # Fail if committed root manifests drift from bundle.json
200
205
```
201
206
202
-
Run `pnpm plugin:check` in CI and before release. The source tree keeps one canonical skill copy under `packages/core/skills/`; package-local `skills/` directories are materialized only for pack/release artifacts and cleaned afterward by package `postpack` scripts.
207
+
Run `pnpm plugin:check` in CI and before release. The source tree keeps one canonical skill copy under root `skills/`; package-local `skills/` directories are materialized only for npm package release and cleaned afterward by package sync scripts.
`nsolid-plugin install --harness <harness>` is a no-browser fallback/direct installer. Claude, Codex, and Antigravity should normally use their generated native artifacts. OpenCode uses `nsolid-plugin setup --harness opencode` as its primary onboarding command because it authenticates and then performs the direct install; `install --harness opencode` is for repair/offline staging. Pi is package-owned: `pi install npm:@nodesource/pi-plugin` installs skills, while `nsolid-plugin install/setup --harness pi` only writes Pi MCP config.
265
+
`nsolid-plugin install --harness <harness>` is a no-browser fallback/direct installer. Claude, Codex, and Antigravity should normally use native GitHub plugin install from the repository root. OpenCode uses `nsolid-plugin setup --harness opencode` as its primary onboarding command because it authenticates and then performs the direct install; `install --harness opencode` is for repair/offline staging. Pi is package-owned: `pi install npm:nsolid-pi-plugin` installs skills, while `nsolid-plugin install/setup --harness pi` only writes Pi MCP config.
Copy file name to clipboardExpand all lines: docs/antigravity-research.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,7 @@
1
1
# Antigravity CLI — Plugin Research (Task 38)
2
2
3
+
> **Amendment (2026-06-24):** The shared core was renamed `@nodesource/plugin-core` → `nsolid-plugin`. The `scripts/install.js` approach described here was superseded — Antigravity now installs directly from the GitHub repository root. See `docs/qa-guide.md` §9.
4
+
3
5
**Status:** Complete (June 2026).
4
6
**Verdict:** Antigravity has no install-time/session-start hook, so the plugin must ship a one-time `scripts/install.js` that the user runs manually. That script copies the plugin directory for discovery and invokes the shared core installer so auth, MCP config, and skills work consistently with the other harnesses.
0 commit comments