@bountyporte/ai-studio 0.25.0 → 0.26.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/INSTALL.md +37 -22
- package/Makefile +6 -2
- package/README.md +63 -13
- package/backend/pyproject.toml +1 -1
- package/backend/uv.lock +2 -2
- package/distribution/cli.mjs +3 -3
- package/docs/DISTRIBUTION.md +27 -15
- package/frontend/package.json +1 -1
- package/hooks/pyproject.toml +1 -1
- package/hooks/uv.lock +1 -1
- package/install.ps1 +7 -1
- package/install.sh +60 -9
- package/integrations/plugins/ai-studio/.claude-plugin/plugin.json +1 -1
- package/integrations/plugins/ai-studio/.codex-plugin/plugin.json +1 -1
- package/integrations/plugins/ai-studio/plugin.json +1 -1
- package/opencode-plugin/package.json +1 -1
- package/package.json +1 -1
- package/pyproject.toml +1 -1
package/INSTALL.md
CHANGED
|
@@ -17,13 +17,17 @@ AI Studio doit être installé **sur la même machine que Claude Code (et Codex)
|
|
|
17
17
|
Donc : installe AI Studio là où tu développes. Pour une machine virtuelle,
|
|
18
18
|
installe AI Studio, Claude Code et tes projets **dans la VM**.
|
|
19
19
|
|
|
20
|
-
## Lanceur npm et
|
|
20
|
+
## Lanceur npm et choix des intégrations
|
|
21
21
|
|
|
22
|
-
Le paquet npm et les
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
Le paquet npm et les plugins Claude Code/Codex sont publiés. Lance
|
|
23
|
+
`npx @bountyporte/ai-studio install` dans un terminal interactif pour choisir
|
|
24
|
+
Claude Code, Codex et/ou OpenCode. Le programme ne configure que les intégrations
|
|
25
|
+
choisies. OpenCode doit déjà être installé avec Bun; il n'est pas nécessaire si
|
|
26
|
+
tu n'utilises pas OpenCode.
|
|
27
|
+
|
|
28
|
+
Dans un terminal sans interaction, l'installation conserve le comportement
|
|
29
|
+
historique : Claude Code et ses hooks sont configurés, Codex et OpenCode restent
|
|
30
|
+
désactivés. Utilise `--no-prompt` pour expliciter ce mode.
|
|
27
31
|
|
|
28
32
|
## Installation automatique
|
|
29
33
|
|
|
@@ -38,21 +42,27 @@ git clone https://github.com/badrtairlbahrepro/AI-STUDIO.git
|
|
|
38
42
|
cd AI-STUDIO && ./install.sh --start
|
|
39
43
|
```
|
|
40
44
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
les
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
Dans un terminal interactif, le script demande quels outils connecter :
|
|
46
|
+
Claude Code, Codex et/ou OpenCode. Il installe les clients Claude/Codex manquants
|
|
47
|
+
si tu les sélectionnes. OpenCode et Bun doivent déjà être installés pour activer
|
|
48
|
+
son plugin. Sans intégration, AI Studio s'installe quand même, mais n'a pas de
|
|
49
|
+
sessions d'agents à afficher. Sous Linux, le script peut demander ton mot de
|
|
50
|
+
passe (`sudo`) pour les paquets système. Avec `--start`, le serveur démarre
|
|
51
|
+
ensuite dans ce terminal ; `Ctrl+C` l’arrête.
|
|
46
52
|
|
|
47
53
|
| Option | Effet |
|
|
48
54
|
|---|---|
|
|
49
|
-
| `--with-codex` | installe aussi Codex |
|
|
55
|
+
| `--with-codex` | installe/configure aussi Codex, sans afficher le choix interactif |
|
|
56
|
+
| `--with-opencode` | active OpenCode (CLI et Bun doivent déjà être installés) |
|
|
57
|
+
| `--no-opencode` | laisse OpenCode désactivé |
|
|
50
58
|
| `--start` | installe puis lance le serveur dans ce terminal (ou utilise le service avec `--service`) |
|
|
51
59
|
| `--service` | démarre AI Studio automatiquement à l'ouverture de session |
|
|
52
|
-
| `--no-claude` | n'installe pas Claude Code
|
|
60
|
+
| `--no-claude` | n'installe/configure pas Claude Code |
|
|
53
61
|
| `--no-hooks` | ne connecte pas Claude Code à AI Studio |
|
|
62
|
+
| `--no-prompt` | désactive les questions interactives; garde le choix historique Claude par défaut |
|
|
54
63
|
|
|
55
64
|
Exemple : `./install.sh --with-codex --service`
|
|
65
|
+
OpenCode seul, sans Claude : `./install.sh --no-claude --with-opencode`
|
|
56
66
|
|
|
57
67
|
### Windows
|
|
58
68
|
|
|
@@ -66,7 +76,10 @@ Debian ; l'interface s'ouvre dans ton navigateur Windows habituel.
|
|
|
66
76
|
```powershell
|
|
67
77
|
powershell -ExecutionPolicy Bypass -File .\install.ps1
|
|
68
78
|
```
|
|
69
|
-
|
|
79
|
+
En mode interactif, les mêmes choix d'intégration sont proposés dans Debian
|
|
80
|
+
WSL. Options : `-WithCodex`, `-WithOpenCode`, `-NoClaude`, `-NoHooks`,
|
|
81
|
+
`-Service`, `-Start` (installe puis lance). OpenCode et Bun doivent être
|
|
82
|
+
installés dans WSL pour activer son plugin.
|
|
70
83
|
3. **Première fois seulement** : si WSL n'était pas installé, le script
|
|
71
84
|
l'installe, puis te demande de redémarrer Windows, d'ouvrir l'application
|
|
72
85
|
**Debian** une fois pour créer ton utilisateur Linux, et de relancer
|
|
@@ -90,8 +103,8 @@ http://localhost:8000.
|
|
|
90
103
|
|
|
91
104
|
## Première ouverture (une seule fois)
|
|
92
105
|
|
|
93
|
-
1. Connecte
|
|
94
|
-
|
|
106
|
+
1. Connecte le ou les agents sélectionnés : `claude`, `codex login`, ou
|
|
107
|
+
redémarre OpenCode pour charger son plugin.
|
|
95
108
|
2. Dans AI Studio, ouvre **Réglages → Connexions** et autorise Claude et/ou
|
|
96
109
|
Codex ainsi que **les dossiers de tes projets**. Sans cela, les workspaces
|
|
97
110
|
et les agents ne peuvent pas y travailler.
|
|
@@ -179,16 +192,18 @@ Ce que fait `install.sh`, étape par étape :
|
|
|
179
192
|
| git, curl, make | — | macOS : `xcode-select --install` · Debian : `sudo apt install git curl make build-essential python3` |
|
|
180
193
|
| Node.js | 20.9 ou plus (22 conseillé) | macOS : `brew install node@22` ou https://nodejs.org · Debian 12 fournit Node 18, trop ancien : utilise NodeSource (`curl -fsSL https://deb.nodesource.com/setup_22.x \| sudo -E bash -` puis `sudo apt install nodejs`) |
|
|
181
194
|
| uv | dernière | `curl -LsSf https://astral.sh/uv/install.sh \| sh` (il télécharge Python 3.13 tout seul) |
|
|
182
|
-
| Claude Code | dernière | `curl -fsSL https://claude.ai/install.sh \| bash` |
|
|
195
|
+
| Claude Code (facultatif) | dernière | `curl -fsSL https://claude.ai/install.sh \| bash` |
|
|
183
196
|
| Codex (facultatif) | dernière | `npm install -g @openai/codex` |
|
|
197
|
+
| OpenCode (facultatif) | dernière + Bun | [installer OpenCode](https://opencode.ai/docs) et [Bun](https://bun.sh/docs/installation) avant de choisir cette intégration |
|
|
184
198
|
|
|
185
199
|
Puis, dans le dossier du projet :
|
|
186
200
|
|
|
187
|
-
1. `make install` — dépendances du serveur, de l'interface et des hooks ;
|
|
188
|
-
2. `cd hooks && ./install.sh` — connecte Claude Code
|
|
189
|
-
ajoute `--strip-prefixes "-home-$USER-"`
|
|
190
|
-
3. `make
|
|
191
|
-
4.
|
|
201
|
+
1. `make install-base` — dépendances du serveur, de l'interface et des hooks ;
|
|
202
|
+
2. si Claude Code est choisi, `cd hooks && ./install.sh` — connecte Claude Code
|
|
203
|
+
à AI Studio (sous Linux, ajoute `--strip-prefixes "-home-$USER-"`) ;
|
|
204
|
+
3. si OpenCode est choisi, `make opencode-install` — construit et relie son plugin ;
|
|
205
|
+
4. `make build-static` — construit l'interface, servie par le serveur ;
|
|
206
|
+
5. `./start.sh` — lance le tout sur http://localhost:8000.
|
|
192
207
|
|
|
193
208
|
## Désinstaller
|
|
194
209
|
|
package/Makefile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.PHONY: install install-all dev backend frontend simulate checkall lint fmt test typecheck gen-types \
|
|
1
|
+
.PHONY: install install-base opencode-deps install-all dev backend frontend simulate checkall lint fmt test typecheck gen-types \
|
|
2
2
|
hooks-install hooks-uninstall hooks-reinstall hooks-status hooks-logs hooks-logs-follow hooks-logs-clear \
|
|
3
3
|
hooks-debug-on hooks-debug-off clean clean-db clean-all \
|
|
4
4
|
opencode-install opencode-uninstall opencode-reinstall opencode-build \
|
|
@@ -12,10 +12,14 @@
|
|
|
12
12
|
PKG_MGR := $(shell command -v bun >/dev/null 2>&1 && echo "bun" || echo "npm")
|
|
13
13
|
PKG_INSTALL := $(shell command -v bun >/dev/null 2>&1 && echo "bun install" || echo "npm install")
|
|
14
14
|
|
|
15
|
-
install:
|
|
15
|
+
install: install-base opencode-deps # Install all component dependencies (developer setup)
|
|
16
|
+
|
|
17
|
+
install-base: # Install AI Studio, frontend and Claude hook dependencies
|
|
16
18
|
cd backend && uv sync
|
|
17
19
|
cd frontend && $(PKG_INSTALL)
|
|
18
20
|
cd hooks && uv sync
|
|
21
|
+
|
|
22
|
+
opencode-deps: # Install optional OpenCode plugin dependencies
|
|
19
23
|
cd opencode-plugin && $(PKG_INSTALL)
|
|
20
24
|
|
|
21
25
|
install-all: install hooks-install opencode-install # Install everything including hooks and plugins
|
package/README.md
CHANGED
|
@@ -28,6 +28,7 @@ demo button. See [setup, supported event formats and limits](docs/CODEX.md).
|
|
|
28
28
|
* [What's New](#whats-new)
|
|
29
29
|
* [Features](#features)
|
|
30
30
|
* [Quick Start](#quick-start)
|
|
31
|
+
* [npm installation and AI plugins](#npm-installation-and-ai-plugins)
|
|
31
32
|
* [Prerequisites](#prerequisites)
|
|
32
33
|
* [Installation](#installation)
|
|
33
34
|
* [Development](#development)
|
|
@@ -148,16 +149,56 @@ For the full release history, see [CHANGELOG.md](CHANGELOG.md).
|
|
|
148
149
|
|
|
149
150
|
## Quick Start
|
|
150
151
|
|
|
151
|
-
|
|
152
|
-
|
|
152
|
+
### Install the published package (recommended)
|
|
153
|
+
|
|
154
|
+
With Node.js 20.9 or newer and npm, install AI Studio with:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npx @bountyporte/ai-studio install
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
The installer sets up the local server and its dependencies. On macOS and Linux,
|
|
161
|
+
the app is stored outside npm's cache. On Windows, the server and agent tools run
|
|
162
|
+
inside Debian on WSL; complete WSL's first-time setup if prompted, then rerun the
|
|
163
|
+
same command. The browser stays on Windows. See
|
|
164
|
+
[Windows and WSL details](docs/DISTRIBUTION.md#windows).
|
|
165
|
+
|
|
166
|
+
In an interactive terminal, the installer asks which agent integrations to set
|
|
167
|
+
up: Claude Code, Codex, and/or OpenCode. OpenCode is optional and requires its
|
|
168
|
+
CLI and Bun to be installed already. If no agent is selected, AI Studio still
|
|
169
|
+
installs and runs, but has no live agent sessions to display. Use `--no-prompt`
|
|
170
|
+
for scripted installs; that mode keeps the legacy Claude Code default.
|
|
171
|
+
|
|
172
|
+
To start the server later, or check its setup:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
npx @bountyporte/ai-studio start
|
|
176
|
+
npx @bountyporte/ai-studio doctor
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Install the AI Studio plugin in either host CLI when you want to manage workspaces
|
|
180
|
+
and missions from Claude Code or Codex:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
npx @bountyporte/ai-studio plugins claude
|
|
184
|
+
npx @bountyporte/ai-studio plugins codex
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Run the command for the CLI you use. Start a new Claude Code or Codex session
|
|
188
|
+
after installation so it loads the plugin and its MCP tools. The plugin can list
|
|
189
|
+
workspaces and missions, create a mission draft, and launch it when requested.
|
|
190
|
+
See [plugin tools and security](docs/DISTRIBUTION.md#plugin-contents).
|
|
191
|
+
|
|
192
|
+
### Install from a source checkout
|
|
193
|
+
|
|
194
|
+
Alternatively, install from this repository on macOS or Linux:
|
|
153
195
|
|
|
154
196
|
```bash
|
|
155
197
|
./install.sh --start
|
|
156
198
|
```
|
|
157
199
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
WSL configured, use `install.ps1 -Start`.
|
|
200
|
+
On Windows with WSL configured, use `install.ps1 -Start`. For development, clone
|
|
201
|
+
the repository and use the developer setup below.
|
|
161
202
|
|
|
162
203
|
Diagnose a missing session, hook or server with **`./doctor.sh`** (also
|
|
163
204
|
`scripts/ai-studio doctor` or `make doctor`). It is read-only, never executes a
|
|
@@ -176,20 +217,29 @@ make dev-tmux
|
|
|
176
217
|
|
|
177
218
|
Then open [http://localhost:3000](http://localhost:3000) and run any Claude Code command to see it visualized.
|
|
178
219
|
|
|
179
|
-
|
|
220
|
+
## npm installation and AI plugins
|
|
221
|
+
|
|
222
|
+
The public package is [`@bountyporte/ai-studio`](https://www.npmjs.com/package/@bountyporte/ai-studio).
|
|
223
|
+
The launcher supports `install`, `start`, `update`, `doctor`, `plugins`, and
|
|
224
|
+
`mcp`. `update` refreshes an npm-managed installation; it does not overwrite a
|
|
225
|
+
linked Git checkout. On Windows, AI Studio runs in Debian WSL, while native
|
|
226
|
+
Windows Claude Code or Codex can connect through the installed plugin.
|
|
227
|
+
|
|
228
|
+
For an existing checkout, link it so the plugin uses that installation:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
npx @bountyporte/ai-studio link /absolute/path/to/AI-STUDIO
|
|
232
|
+
```
|
|
180
233
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
install a reviewed local `.tgz` archive before publication. See
|
|
184
|
-
[distribution and Windows/WSL setup](docs/DISTRIBUTION.md), which also covers
|
|
185
|
-
plugin registration, persistent data, MCP tools and release verification.
|
|
234
|
+
See [distribution, plugin setup, and Windows/WSL instructions](docs/DISTRIBUTION.md)
|
|
235
|
+
for storage paths, update behavior, MCP tools, and troubleshooting.
|
|
186
236
|
|
|
187
237
|
## Prerequisites
|
|
188
238
|
|
|
189
239
|
- Python 3.13+
|
|
190
240
|
- Node.js 20+ (Bun auto-detected if available)
|
|
191
241
|
- uv (Python package manager)
|
|
192
|
-
- Claude Code
|
|
242
|
+
- An agent CLI for live sessions (optional during installation): Claude Code or Codex can be installed by the wizard; [OpenCode](https://opencode.ai) and Bun must already be installed to select it
|
|
193
243
|
|
|
194
244
|
## Installation
|
|
195
245
|
|
|
@@ -276,7 +326,7 @@ make dev
|
|
|
276
326
|
|
|
277
327
|
### OpenCode Integration
|
|
278
328
|
|
|
279
|
-
This fork adds support for [OpenCode](https://opencode.ai) as an alternative to Claude Code CLI. The `opencode-plugin/` directory contains a plugin that sends OpenCode lifecycle events to the same backend API.
|
|
329
|
+
This fork adds support for [OpenCode](https://opencode.ai) as an alternative to Claude Code CLI. The `opencode-plugin/` directory contains a plugin that sends OpenCode lifecycle events to the same backend API. The standard user installer asks before installing its dependencies or registering the plugin; OpenCode is not required for Claude Code or Codex users.
|
|
280
330
|
|
|
281
331
|
> **⚠ Breaking in v0.24.0:** a non-localhost `AI_STUDIO_API_URL` is now clamped to the local default unless `AI_STUDIO_ALLOW_REMOTE=1` is set (the Claude Code hooks always did this). If your backend runs on another host, set `AI_STUDIO_ALLOW_REMOTE=1` or events will silently post to localhost.
|
|
282
332
|
|
package/backend/pyproject.toml
CHANGED
package/backend/uv.lock
CHANGED
|
@@ -4,7 +4,7 @@ requires-python = ">=3.13"
|
|
|
4
4
|
|
|
5
5
|
[[package]]
|
|
6
6
|
name = "ai-studio-backend"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.26.0"
|
|
8
8
|
source = { editable = "." }
|
|
9
9
|
dependencies = [
|
|
10
10
|
{ name = "ai-studio-hooks" },
|
|
@@ -82,7 +82,7 @@ dev = [
|
|
|
82
82
|
|
|
83
83
|
[[package]]
|
|
84
84
|
name = "ai-studio-hooks"
|
|
85
|
-
version = "0.
|
|
85
|
+
version = "0.26.0"
|
|
86
86
|
source = { editable = "../hooks" }
|
|
87
87
|
dependencies = [
|
|
88
88
|
{ name = "defusedxml" },
|
package/distribution/cli.mjs
CHANGED
|
@@ -12,8 +12,8 @@ export function windowsPlan(command, args, payload, distro = 'Debian') {
|
|
|
12
12
|
if (!/^[A-Za-z0-9_.-]+$/.test(distro)) throw new Error('Invalid WSL distribution name.');
|
|
13
13
|
if (['install', 'update'].includes(command)) {
|
|
14
14
|
const mapped = args.map((arg) => {
|
|
15
|
-
const flag = { '--with-codex': '-WithCodex', '--service': '-Service', '--no-claude': '-NoClaude', '--no-hooks': '-NoHooks', '--start': '-Start' }[arg];
|
|
16
|
-
if (!flag) throw new Error('Unsupported Windows installer option. Use --with-codex, --service, --no-claude or --no-hooks.');
|
|
15
|
+
const flag = { '--with-codex': '-WithCodex', '--with-opencode': '-WithOpenCode', '--no-opencode': '-NoOpenCode', '--no-prompt': '-NoPrompt', '--service': '-Service', '--no-claude': '-NoClaude', '--no-hooks': '-NoHooks', '--start': '-Start' }[arg];
|
|
16
|
+
if (!flag) throw new Error('Unsupported Windows installer option. Use --with-codex, --with-opencode, --no-prompt, --service, --no-claude or --no-hooks.');
|
|
17
17
|
return flag;
|
|
18
18
|
});
|
|
19
19
|
return ['powershell.exe', ['-NoProfile', '-ExecutionPolicy', 'Bypass', '-File', path.join(payload, 'install.ps1'), '-PackageSource', ...(command === 'install' ? ['-Start'] : ['-NoClaude', '-NoHooks']), ...mapped]];
|
|
@@ -56,7 +56,7 @@ export async function materialize(source, destination) {
|
|
|
56
56
|
export async function main(args = process.argv.slice(2)) {
|
|
57
57
|
const [command = 'help', ...rest] = args;
|
|
58
58
|
if (['help', '--help', '-h'].includes(command)) {
|
|
59
|
-
console.log('AI Studio\n ai-studio install [
|
|
59
|
+
console.log('AI Studio\n ai-studio install [--with-codex|--with-opencode|--no-claude|--no-prompt]\n ai-studio start [--rebuild]\n ai-studio link /absolute/existing/AI-STUDIO\n ai-studio update\n ai-studio doctor [--json|--offline|--url URL]\n ai-studio plugins claude|codex\n ai-studio mcp\nInteractive installs ask which agent integrations to configure. OpenCode and Bun must already be installed.\nSources and data are stored outside the npm cache. On Windows, the server runs in Debian WSL (~/AI-STUDIO).');
|
|
60
60
|
return 0;
|
|
61
61
|
}
|
|
62
62
|
if (!commands.includes(command)) throw new Error('Unknown command. Run ai-studio --help.');
|
package/docs/DISTRIBUTION.md
CHANGED
|
@@ -1,28 +1,34 @@
|
|
|
1
1
|
# npm launcher and Claude/Codex plugins
|
|
2
2
|
|
|
3
|
-
## Current release
|
|
3
|
+
## Current release
|
|
4
4
|
|
|
5
|
-
The
|
|
6
|
-
|
|
7
|
-
is
|
|
8
|
-
registry availability. Registry access and ownership of that scope are required
|
|
9
|
-
for publication. No official plugin-directory listing is created automatically.
|
|
5
|
+
The public npm package is [`@bountyporte/ai-studio`](https://www.npmjs.com/package/@bountyporte/ai-studio).
|
|
6
|
+
Claude Code and Codex plugins are bundled. No official plugin-directory listing
|
|
7
|
+
is created automatically.
|
|
10
8
|
|
|
11
|
-
## Install from
|
|
9
|
+
## Install from npm
|
|
12
10
|
|
|
13
11
|
With Node.js 20.9+ and npm already available:
|
|
14
12
|
|
|
15
13
|
```sh
|
|
16
|
-
npx
|
|
14
|
+
npx @bountyporte/ai-studio install
|
|
17
15
|
```
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
In an interactive terminal, the installer asks whether to configure Claude Code,
|
|
18
|
+
Codex, and/or OpenCode. Only selected integrations are configured. OpenCode must
|
|
19
|
+
already be installed with Bun; AI Studio does not install either of them. If no
|
|
20
|
+
agent is selected, the server and interface still install, but no live sessions
|
|
21
|
+
will appear until an agent is connected. The package has no postinstall script or
|
|
22
|
+
npm dependencies; setup runs only when the user invokes `install`.
|
|
23
|
+
|
|
24
|
+
Non-interactive installs retain the legacy behavior (Claude Code and its hooks
|
|
25
|
+
on; Codex and OpenCode off). Select providers explicitly with `--with-codex`,
|
|
26
|
+
`--with-opencode`, or `--no-claude`; use `--no-prompt` to suppress questions.
|
|
27
|
+
`--with-opencode` requires the OpenCode CLI and Bun to be installed already.
|
|
28
|
+
Flags add to the legacy Claude default; for OpenCode alone, use
|
|
29
|
+
`npx @bountyporte/ai-studio install --no-claude --with-opencode`.
|
|
24
30
|
|
|
25
|
-
|
|
31
|
+
Other commands:
|
|
26
32
|
|
|
27
33
|
```sh
|
|
28
34
|
npx @bountyporte/ai-studio install
|
|
@@ -33,6 +39,9 @@ npx @bountyporte/ai-studio plugins claude
|
|
|
33
39
|
npx @bountyporte/ai-studio plugins codex
|
|
34
40
|
```
|
|
35
41
|
|
|
42
|
+
To test a local `.tgz`, use
|
|
43
|
+
`npx --package /absolute/path/to/package.tgz ai-studio install`.
|
|
44
|
+
|
|
36
45
|
On macOS/Linux, sources, environments and runtime data live in
|
|
37
46
|
`~/.local/share/ai-studio/app` (`$XDG_DATA_HOME/ai-studio/app` when set), outside
|
|
38
47
|
the npm cache. `AI_STUDIO_DATA_DIR` can choose another absolute data folder;
|
|
@@ -57,7 +66,10 @@ copied from the npm payload without requiring a Git checkout. An existing Git
|
|
|
57
66
|
checkout at `~/AI-STUDIO` is not overwritten by the npm importer. The server and
|
|
58
67
|
agent CLIs run inside WSL at `~/AI-STUDIO`; the browser remains on Windows.
|
|
59
68
|
|
|
60
|
-
On Windows,
|
|
69
|
+
On Windows, the installer asks the integration questions inside Debian WSL when
|
|
70
|
+
the terminal is interactive. OpenCode must be installed in WSL with Bun; the
|
|
71
|
+
native Windows OpenCode CLI is not connected by this WSL integration. Launcher
|
|
72
|
+
payload files live in `%LOCALAPPDATA%\AI-Studio\payload`.
|
|
61
73
|
The native `plugins claude` / `plugins codex` command installs into the CLI on
|
|
62
74
|
Windows; its Node MCP process delegates to Debian WSL, including key lookup from
|
|
63
75
|
`~/AI-STUDIO/backend`. To install into a CLI that itself runs inside WSL, run
|
package/frontend/package.json
CHANGED
package/hooks/pyproject.toml
CHANGED
package/hooks/uv.lock
CHANGED
package/install.ps1
CHANGED
|
@@ -4,16 +4,19 @@
|
|
|
4
4
|
# avec Debian ; l'interface s'ouvre dans ton navigateur Windows.
|
|
5
5
|
#
|
|
6
6
|
# Clic droit sur install.ps1 > "Executer avec PowerShell", ou dans PowerShell :
|
|
7
|
-
# powershell -ExecutionPolicy Bypass -File .\install.ps1 [-WithCodex] [-Service] [-Start]
|
|
7
|
+
# powershell -ExecutionPolicy Bypass -File .\install.ps1 [-WithCodex] [-WithOpenCode] [-Service] [-Start]
|
|
8
8
|
#
|
|
9
9
|
# Voir INSTALL.md.
|
|
10
10
|
|
|
11
11
|
param(
|
|
12
12
|
[switch]$WithCodex,
|
|
13
|
+
[switch]$WithOpenCode,
|
|
13
14
|
[switch]$Service,
|
|
14
15
|
[switch]$Start,
|
|
15
16
|
[switch]$NoClaude,
|
|
16
17
|
[switch]$NoHooks,
|
|
18
|
+
[switch]$NoOpenCode,
|
|
19
|
+
[switch]$NoPrompt,
|
|
17
20
|
[switch]$PackageSource
|
|
18
21
|
)
|
|
19
22
|
|
|
@@ -73,10 +76,13 @@ wsl.exe -d $Distro -- bash -c ($copy -replace "`r", "")
|
|
|
73
76
|
Step "Installation dans $Distro (ton mot de passe Linux peut etre demande)"
|
|
74
77
|
$options = @()
|
|
75
78
|
if ($WithCodex) { $options += "--with-codex" }
|
|
79
|
+
if ($WithOpenCode) { $options += "--with-opencode" }
|
|
76
80
|
if ($Service) { $options += "--service" }
|
|
77
81
|
if ($Start) { $options += "--start" }
|
|
78
82
|
if ($NoClaude) { $options += "--no-claude" }
|
|
79
83
|
if ($NoHooks) { $options += "--no-hooks" }
|
|
84
|
+
if ($NoOpenCode) { $options += "--no-opencode" }
|
|
85
|
+
if ($NoPrompt) { $options += "--no-prompt" }
|
|
80
86
|
wsl.exe -d $Distro -- bash -lc "cd ~/AI-STUDIO && ./install.sh $($options -join ' ')"
|
|
81
87
|
if ($LASTEXITCODE -ne 0) { throw "L'installation dans $Distro a echoue (voir les messages ci-dessus)." }
|
|
82
88
|
|
package/install.sh
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
#
|
|
6
6
|
# ./install.sh prerequisites, dependencies, hooks, interface
|
|
7
7
|
# ./install.sh --with-codex also install the Codex CLI
|
|
8
|
+
# ./install.sh --with-opencode install the OpenCode integration (CLI + Bun required)
|
|
8
9
|
# ./install.sh --start install, then start in this terminal
|
|
9
10
|
# ./install.sh --service also start AI Studio automatically at login
|
|
10
11
|
# ./install.sh --no-claude do not install Claude Code
|
|
@@ -17,21 +18,26 @@ set -euo pipefail
|
|
|
17
18
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
18
19
|
NODE_MAJOR=22
|
|
19
20
|
WITH_CODEX=0
|
|
21
|
+
WITH_OPENCODE=0
|
|
20
22
|
WITH_CLAUDE=1
|
|
21
23
|
WITH_HOOKS=1
|
|
22
24
|
WITH_SERVICE=0
|
|
23
25
|
WITH_START=0
|
|
24
26
|
SERVICE_STARTED=0
|
|
27
|
+
PROMPT_PROVIDERS=1
|
|
25
28
|
|
|
26
29
|
for arg in "$@"; do
|
|
27
30
|
case "$arg" in
|
|
28
|
-
--with-codex) WITH_CODEX=1 ;;
|
|
29
|
-
--
|
|
30
|
-
--no-
|
|
31
|
+
--with-codex) WITH_CODEX=1; PROMPT_PROVIDERS=0 ;;
|
|
32
|
+
--with-opencode) WITH_OPENCODE=1; PROMPT_PROVIDERS=0 ;;
|
|
33
|
+
--no-opencode) WITH_OPENCODE=0; PROMPT_PROVIDERS=0 ;;
|
|
34
|
+
--no-claude) WITH_CLAUDE=0; WITH_HOOKS=0; PROMPT_PROVIDERS=0 ;;
|
|
35
|
+
--no-hooks) WITH_HOOKS=0; PROMPT_PROVIDERS=0 ;;
|
|
36
|
+
--no-prompt) PROMPT_PROVIDERS=0 ;;
|
|
31
37
|
--service) WITH_SERVICE=1 ;;
|
|
32
38
|
--start) WITH_START=1 ;;
|
|
33
39
|
-h | --help)
|
|
34
|
-
sed -n '2,
|
|
40
|
+
sed -n '2,16p' "$0" | sed 's/^# \{0,1\}//'
|
|
35
41
|
exit 0
|
|
36
42
|
;;
|
|
37
43
|
*)
|
|
@@ -41,6 +47,20 @@ for arg in "$@"; do
|
|
|
41
47
|
esac
|
|
42
48
|
done
|
|
43
49
|
|
|
50
|
+
ask_yes_no() {
|
|
51
|
+
local question="$1" default="$2" answer answer_lc prompt
|
|
52
|
+
prompt='y/N'
|
|
53
|
+
[ "$default" = "yes" ] && prompt='Y/n'
|
|
54
|
+
printf '%s [%s] ' "$question" "$prompt" >/dev/tty
|
|
55
|
+
IFS= read -r answer </dev/tty || answer=""
|
|
56
|
+
answer_lc="$(printf '%s' "$answer" | tr '[:upper:]' '[:lower:]')"
|
|
57
|
+
case "$answer_lc" in
|
|
58
|
+
y|yes) return 0 ;;
|
|
59
|
+
n|no) return 1 ;;
|
|
60
|
+
*) [ "$default" = "yes" ] ;;
|
|
61
|
+
esac
|
|
62
|
+
}
|
|
63
|
+
|
|
44
64
|
step() { printf '\n\033[1;36m==> %s\033[0m\n' "$*"; }
|
|
45
65
|
ok() { printf ' \033[32m✓\033[0m %s\n' "$*"; }
|
|
46
66
|
warn() { printf ' \033[33m!\033[0m %s\n' "$*"; }
|
|
@@ -52,6 +72,27 @@ die() {
|
|
|
52
72
|
# Tools installed in the user's home (uv, Claude Code) live here.
|
|
53
73
|
export PATH="$HOME/.local/bin:$PATH"
|
|
54
74
|
|
|
75
|
+
if [ "$PROMPT_PROVIDERS" = 1 ] && [ -t 0 ] && [ -t 1 ]; then
|
|
76
|
+
echo ""
|
|
77
|
+
echo "Choisis les outils d'agent à connecter à AI Studio. Tu pourras relancer ce script pour en ajouter plus tard."
|
|
78
|
+
claude_default=no; codex_default=no; opencode_default=no
|
|
79
|
+
command -v claude >/dev/null 2>&1 && claude_default=yes
|
|
80
|
+
command -v codex >/dev/null 2>&1 && codex_default=yes
|
|
81
|
+
if ask_yes_no "Configurer Claude Code (l'installer s'il manque) ?" "$claude_default"; then
|
|
82
|
+
WITH_CLAUDE=1; WITH_HOOKS=1
|
|
83
|
+
if ask_yes_no "Installer les hooks AI Studio dans Claude Code ?" yes; then WITH_HOOKS=1; else WITH_HOOKS=0; fi
|
|
84
|
+
else
|
|
85
|
+
WITH_CLAUDE=0; WITH_HOOKS=0
|
|
86
|
+
fi
|
|
87
|
+
if ask_yes_no "Configurer Codex (l'installer s'il manque) ?" "$codex_default"; then WITH_CODEX=1; else WITH_CODEX=0; fi
|
|
88
|
+
if ask_yes_no "Activer l'intégration OpenCode (requiert déjà OpenCode et Bun) ?" "$opencode_default"; then WITH_OPENCODE=1; else WITH_OPENCODE=0; fi
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
if [ "$WITH_OPENCODE" = 1 ]; then
|
|
92
|
+
command -v opencode >/dev/null 2>&1 || die "OpenCode est sélectionné, mais la commande 'opencode' est introuvable. Installe OpenCode puis relance avec --with-opencode."
|
|
93
|
+
command -v bun >/dev/null 2>&1 || die "OpenCode est sélectionné, mais Bun est introuvable. Installe Bun puis relance avec --with-opencode."
|
|
94
|
+
fi
|
|
95
|
+
|
|
55
96
|
case "$(uname -s)" in
|
|
56
97
|
Darwin) OS=mac ;;
|
|
57
98
|
Linux)
|
|
@@ -144,11 +185,18 @@ if [ "$WITH_CODEX" = 1 ]; then
|
|
|
144
185
|
fi
|
|
145
186
|
|
|
146
187
|
# ---------------------------------------------------------------------------
|
|
147
|
-
step "Dépendances
|
|
188
|
+
step "Dépendances AI Studio (serveur, interface, hooks)"
|
|
148
189
|
cd "$ROOT"
|
|
149
|
-
make install
|
|
190
|
+
make install-base
|
|
150
191
|
ok "dépendances installées"
|
|
151
192
|
|
|
193
|
+
# ---------------------------------------------------------------------------
|
|
194
|
+
if [ "$WITH_OPENCODE" = 1 ]; then
|
|
195
|
+
step "Intégration OpenCode"
|
|
196
|
+
make opencode-install
|
|
197
|
+
ok "plugin OpenCode installé"
|
|
198
|
+
fi
|
|
199
|
+
|
|
152
200
|
# ---------------------------------------------------------------------------
|
|
153
201
|
if [ "$WITH_HOOKS" = 1 ]; then
|
|
154
202
|
step "Connexion de Claude Code à AI Studio (hooks)"
|
|
@@ -207,12 +255,15 @@ cat <<EOF
|
|
|
207
255
|
Lancer AI Studio : ./start.sh
|
|
208
256
|
Puis ouvrir : http://localhost:8000 (la page s'ouvre toute seule si possible)
|
|
209
257
|
|
|
210
|
-
À faire une seule fois :
|
|
211
|
-
- connecte Claude Code en lançant : claude
|
|
212
258
|
EOF
|
|
259
|
+
[ "$WITH_CLAUDE" = 1 ] && echo " Claude Code : lance claude pour te connecter"
|
|
213
260
|
[ "$WITH_CODEX" = 1 ] && echo " - connecte Codex avec : codex login"
|
|
261
|
+
[ "$WITH_OPENCODE" = 1 ] && echo " OpenCode : redémarre OpenCode pour charger le plugin"
|
|
262
|
+
if [ "$WITH_CLAUDE" = 0 ] && [ "$WITH_CODEX" = 0 ] && [ "$WITH_OPENCODE" = 0 ]; then
|
|
263
|
+
echo " Aucun agent connecté pour l'instant. Relance ./install.sh pour en choisir un."
|
|
264
|
+
fi
|
|
214
265
|
cat <<EOF
|
|
215
|
-
- dans AI Studio, ouvre Réglages → Connexions et autorise
|
|
266
|
+
- dans AI Studio, ouvre Réglages → Connexions et autorise les fournisseurs
|
|
216
267
|
et les dossiers de tes projets.
|
|
217
268
|
|
|
218
269
|
Diagnostic : ./doctor.sh
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "ai-studio",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.26.0",
|
|
5
5
|
"description": "Create, launch and follow local AI Studio missions from Claude Code or Codex.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/badrtairlbahrepro/AI-STUDIO",
|
package/package.json
CHANGED