@parallel-cli/parallel 0.4.1 → 0.4.4

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/README.md CHANGED
@@ -2,41 +2,29 @@
2
2
 
3
3
  Real-time multi-agent coding from one terminal control room.
4
4
 
5
- Parallel lets you run several AI coding agents on the same repository at the same time. Each agent has its own task, mode, terminal, live activity timeline, and shared view of the session. The hub keeps you in control: what is running, what needs input, what changed, what it cost, and where to steer next.
5
+ Parallel lets you run several AI coding agents on the same repository at the same time. Each agent has its own task, mode, live activity timeline, model, and shared session context. The TUI stays keyboard-first so you can launch work, inspect progress, answer approvals, steer agents, and review changes without leaving the terminal.
6
6
 
7
- > One hub. Many agents. Shared context. No silent overwrites.
7
+ > One hub. Many agents. Shared context. Human in control.
8
8
 
9
9
  [![npm version](https://img.shields.io/npm/v/@parallel-cli/parallel?color=blue)](https://www.npmjs.com/package/@parallel-cli/parallel)
10
10
  ![node version](https://img.shields.io/node/v/@parallel-cli/parallel)
11
11
  ![license](https://img.shields.io/npm/l/@parallel-cli/parallel)
12
12
  ![platform](https://img.shields.io/badge/platform-linux%20%7C%20macos-lightgrey)
13
13
 
14
- ## What Parallel Is
14
+ ## Highlights
15
15
 
16
- Parallel is built for active coding sessions where one agent is not enough:
17
-
18
- - ask one agent to audit while another implements
19
- - run a plan-first agent before allowing edits
20
- - keep a test-focused agent watching regressions
21
- - steer any agent live without stopping the others
22
- - open a dedicated terminal for deep scrollback on one agent
23
-
24
- The philosophy is simple: agents can move in parallel, but the human keeps the control room.
25
-
26
- ## Features
27
-
28
- - Launch agents in three explicit modes: `/ask`, `/task`, and `/plan`.
16
+ - Run multiple agents in parallel on one project.
17
+ - Choose explicit modes: `/ask`, `/task`, and `/plan`.
29
18
  - Type plain text to launch a task agent immediately.
30
- - Run multiple agents at once on the same repository.
31
- - Open a dedicated terminal per agent with native scrollback and live steering.
32
- - See structured activity timelines instead of raw tool spam.
33
- - Share live context between agents: status, notes, claims, file activity, and diffs.
34
- - Avoid silent overwrites with adaptive merge-on-write for file edits.
35
- - Pause, resume, stop, focus, restore, and steer agents while they are running.
36
- - Review live diffs, notes, costs, sessions, skills, and specialists from built-in views.
37
- - Use any OpenAI-compatible provider — 18 pre-configured cloud providers (DeepSeek, xAI/Grok, Perplexity, Cohere, DeepInfra, Fireworks, Cerebras, Novita, Hyperbolic, SambaNova, and more), plus Ollama for local models, and any custom OpenAI-compatible endpoint.
38
- - Choose shell approval behavior: `ask`, `auto-safe`, or `yolo`.
39
- - Track token usage and estimated cost per agent and per session.
19
+ - Steer one agent with `@a1 ...` or broadcast with `@all ...`.
20
+ - Open dedicated agent terminals with native scrollback.
21
+ - Review agents, notes, file activity, diffs, cost, skills, specialists, and saved sessions from the TUI.
22
+ - Configure OpenAI-compatible providers through a guided wizard and settings panel.
23
+ - Use 29 provider presets across Western, Chinese, Gateway, Inference, and Local categories.
24
+ - Support local no-key endpoints such as Ollama and vLLM/SGLang.
25
+ - Keep shell execution controlled with `ask`, `auto-safe`, or `yolo` approvals.
26
+ - Save and restore project sessions.
27
+ - Run headless multi-agent jobs for CI or scripts.
40
28
 
41
29
  ## Install
42
30
 
@@ -44,7 +32,7 @@ Requirements:
44
32
 
45
33
  - Node.js 18 or newer
46
34
  - Linux or macOS
47
- - An API key for an OpenAI-compatible provider
35
+ - An API key for a cloud provider, or a local OpenAI-compatible endpoint
48
36
 
49
37
  Install from npm:
50
38
 
@@ -52,7 +40,7 @@ Install from npm:
52
40
  npm install -g @parallel-cli/parallel
53
41
  ```
54
42
 
55
- Run it inside a project:
43
+ Run inside a project:
56
44
 
57
45
  ```bash
58
46
  parallel
@@ -66,7 +54,15 @@ prl
66
54
 
67
55
  ## Quick Start
68
56
 
69
- On first launch, Parallel opens a setup wizard for language, folder, session, provider, and model.
57
+ On first launch, Parallel opens a setup wizard:
58
+
59
+ 1. Choose language.
60
+ 2. Choose the project folder.
61
+ 3. Restore a saved session or start a new one.
62
+ 4. Choose a provider.
63
+ 5. Choose the model.
64
+ 6. Review or edit the endpoint.
65
+ 7. Enter the provider API key if required.
70
66
 
71
67
  After setup, type a task and press Enter:
72
68
 
@@ -74,7 +70,7 @@ After setup, type a task and press Enter:
74
70
  > refactor the API client and update the tests
75
71
  ```
76
72
 
77
- Plain text launches a `/task` agent. Start another agent at any time, even while the first one is still working:
73
+ Plain text launches a `/task` agent. You can launch another agent while the first is still working:
78
74
 
79
75
  ```text
80
76
  > add regression coverage for auth middleware
@@ -88,7 +84,7 @@ Use explicit modes when intent matters:
88
84
  /task builder implement the approved plan
89
85
  ```
90
86
 
91
- Send a live instruction to one agent:
87
+ Steer a running agent:
92
88
 
93
89
  ```text
94
90
  @a1 also handle empty response bodies
@@ -100,13 +96,13 @@ Broadcast to every agent:
100
96
  @all stop changing public interfaces until the test agent finishes
101
97
  ```
102
98
 
99
+ `@all` steers active agents in real time. Finished, stopped, or errored agents are not relaunched by a broadcast.
100
+
103
101
  ## Agent Modes
104
102
 
105
- | Mode | Use it for | Behavior |
106
- | --- | --- | --- |
107
- | `/ask` | Questions, reviews, audits, tradeoffs | Answers and advises without editing files. |
108
- | `/task` | Implementation work | Executes, edits, validates, and summarizes. |
109
- | `/plan` | Risky or unclear work | Inspects first, asks for approval, then edits only after approval. |
103
+ - `/ask`: questions, reviews, audits, and tradeoffs. The agent answers and advises; mutating tools and shell commands are blocked.
104
+ - `/task`: implementation work. The agent can execute, edit, validate, and summarize.
105
+ - `/plan`: risky or unclear work. The agent inspects first, presents a plan, then edits only after explicit approval. A timeout does not approve the plan.
110
106
 
111
107
  Aliases:
112
108
 
@@ -118,28 +114,40 @@ Plain text is equivalent to `/task`.
118
114
 
119
115
  ## Control Room
120
116
 
121
- The main TUI is the Parallel hub. It is designed to answer four questions quickly:
117
+ The main TUI is the Parallel hub. It is designed to answer:
122
118
 
123
- - What needs my input?
124
- - Which agents are working?
125
- - What did each agent just do?
126
- - What model, folder, shell mode, and cost am I currently running?
119
+ - what needs your input
120
+ - which agents are working
121
+ - what each agent just did
122
+ - what changed in the project
123
+ - what model, provider, shell mode, and cost are active
127
124
 
128
- Useful hub commands:
125
+ Common hub commands:
129
126
 
130
- ```text
131
- /agents agent overview
132
- /focus a1 inspect and steer one agent
133
- /raw toggle raw detail in focus view
134
- /board shared blackboard, claims, file activity
135
- /diff live diff history
136
- /cost token and cost breakdown
137
- /sessions saved sessions
138
- /settings global settings
139
- /settings-session session-only settings
140
- ```
127
+ - `/agents`: agent overview.
128
+ - `/focus a1`: inspect and steer one agent.
129
+ - `/raw`: toggle raw detail in focus view.
130
+ - `/board`: shared blackboard, claims, notes, and file activity.
131
+ - `/diff`: live diff history.
132
+ - `/cost`: token and cost breakdown.
133
+ - `/sessions`: saved sessions.
134
+ - `/settings`: global settings.
135
+ - `/settings-session`: session-only settings.
136
+ - `/project [folder]`: change project folder.
137
+ - `/wizard`: rerun setup wizard.
138
+
139
+ Commands are typed in the control room input. When a long view is open, use Escape to return to the agents view/input.
141
140
 
142
- Best terminal size is around `120x34`. Parallel still adapts to smaller terminals, but the hub is most readable with enough width for model, folder, status, and agent summaries.
141
+ Keyboard behavior:
142
+
143
+ - `/` opens slash command suggestions.
144
+ - Up/Down selects suggestions when a suggestion menu is open.
145
+ - Enter accepts the selected suggestion.
146
+ - Tab or Right accepts the best completion.
147
+ - PgUp/PgDn scrolls the hub or focus view even while the input is active. Up/Down scrolls long views and navigates suggestions/history.
148
+ - Escape returns to the agents view or clears the input.
149
+
150
+ Best terminal size is around `120x34`. Parallel adapts to smaller terminals, but the hub is most readable with enough width for model, folder, status, and agent summaries.
143
151
 
144
152
  ## Dedicated Agent Terminals
145
153
 
@@ -153,7 +161,7 @@ Attached terminals show:
153
161
 
154
162
  - the selected agent's live timeline
155
163
  - native terminal scrollback
156
- - model, elapsed time, steps, tokens, context percentage, and cost
164
+ - model, elapsed time, context, and cost
157
165
  - other agents' current state
158
166
  - approval and question prompts for that agent
159
167
  - an input that steers that agent directly
@@ -176,149 +184,145 @@ Toggle automatic agent terminals from the hub:
176
184
  /attach off
177
185
  ```
178
186
 
179
- ## Shell Approvals
187
+ ## Providers And Models
180
188
 
181
- Parallel separates agent modes from shell approval behavior.
189
+ Parallel works with OpenAI-compatible chat completions and tool calling. It ships with 29 presets:
182
190
 
183
- ```text
184
- /approvals ask
185
- /approvals auto-safe
186
- /approvals yolo
187
- ```
191
+ - Western: OpenAI, Anthropic, Google Gemini, xAI Grok, Mistral, Cohere, Perplexity
192
+ - Chinese: DeepSeek, MiniMax, Z.ai / GLM, Alibaba / Qwen, Moonshot / Kimi, Xiaomi / MiMo, StepFun
193
+ - Gateways: OpenRouter, SiliconFlow, Atlas Cloud, Requesty, Vercel AI Gateway
194
+ - Inference: Groq, Cerebras, Together AI, Fireworks, DeepInfra, Novita, Hyperbolic, SambaNova
195
+ - Local: Ollama, vLLM / SGLang
188
196
 
189
- | Mode | Behavior |
190
- | --- | --- |
191
- | `ask` | Ask before shell commands unless explicitly allowed. |
192
- | `auto-safe` | Auto-approve safe inspection/build/test commands; ask for risky commands. |
193
- | `yolo` | Auto-approve every shell command. Intended for trusted/headless usage only. |
197
+ Provider setup is guided in both the first-run wizard and `/settings`:
194
198
 
195
- `auto` is accepted as a compatibility spelling for `auto-safe`.
199
+ 1. Pick a provider preset or custom provider.
200
+ 2. Pick the model.
201
+ 3. Review or edit the endpoint.
202
+ 4. Enter the provider API key if the provider requires one.
203
+ 5. Save globally or use the provider/model for the current session.
196
204
 
197
- ## Headless Mode
205
+ Local providers such as Ollama, vLLM/SGLang, and custom localhost OpenAI-compatible endpoints do not require an API key. You can still review and edit their endpoints. Ollama/local OpenAI-compatible endpoints can detect models from `/models`; vLLM/SGLang requires replacing the `your-model-here` placeholder before it is considered ready.
198
206
 
199
- For CI and scripts, run without the TUI:
207
+ Useful settings commands:
200
208
 
201
- ```bash
202
- parallel --headless "fix lint failures" "update tests" --json
203
- ```
209
+ - `/settings`: global language, providers, keys, defaults, and approvals.
210
+ - `/settings-session`: temporary model, provider, approvals, and sound. New providers can be used for this session only or saved globally.
211
+ - `/model`: show the current session model.
212
+ - `/model provider:id`: switch model for this session.
213
+ - `/doctor`: check provider, model, API key, local endpoint reachability, attach socket, `git`, and `gh`.
204
214
 
205
- Headless mode:
215
+ Configuration is stored in `~/.parallel/config.json`.
206
216
 
207
- - runs one agent per task
208
- - uses the current folder as the project root
209
- - uses `yolo` shell approvals
210
- - auto-answers agent questions with the recommended option
211
- - saves the session
212
- - exits non-zero if any agent does not finish successfully
217
+ Environment variables:
218
+
219
+ - `PARALLEL_API_KEY`: API key for the current default provider.
220
+ - `PARALLEL_BASE_URL`: override the default provider base URL.
221
+ - `PARALLEL_MODEL`: override the session model.
222
+ - `PARALLEL_NO_ALT_SCREEN=1`: disable the alternate terminal screen.
213
223
 
214
224
  ## Commands
215
225
 
216
226
  ### Create Agents
217
227
 
218
- | Command | Description |
219
- | --- | --- |
220
- | `/ask [Name:] <question> [--model=m]` | Launch an ask-only agent. |
221
- | `/task [Name:] <task> [--model=m] [#skill]` | Launch a task agent. Plain text does the same. |
222
- | `/plan [Name:] <task> [--model=m]` | Launch a plan-first agent. |
223
- | `/issue <n>` | Spawn a task from a GitHub issue using the `gh` CLI. |
224
- | `/specialist <name> <task>` | Spawn with a specialist persona. |
225
- | `/specialist new <name> [global]` | Create a specialist template. |
226
- | `/skill new <name> [global]` | Create a skill template. |
228
+ - `/ask [Name:] <question> [--model=m]`: launch an ask-only agent.
229
+ - `/task [Name:] <task> [--model=m] [#skill]`: launch a task agent. Plain text does the same.
230
+ - `/plan [Name:] <task> [--model=m]`: launch a plan-first agent. It cannot mutate files or run risky shell commands until you manually approve the plan.
231
+ - `/issue <n>`: spawn a task from a GitHub issue. Requires the `gh` CLI, a GitHub repository, and `gh auth login`.
232
+ - `/specialist <name> <task>`: spawn with a specialist persona.
233
+ - `/specialist new <name> [global]`: create a specialist template.
234
+ - `/skill new <name> [global]`: create a skill template.
227
235
 
228
236
  ### Steer Agents
229
237
 
230
- | Command | Description |
231
- | --- | --- |
232
- | `@agent <message>` | Send a live instruction to one agent. |
233
- | `@all <message>` | Broadcast an instruction to all agents. |
234
- | `/send <agent\|all> <message>` | Command form of live steering. |
235
- | `/attach <agent\|on\|off>` | Open an agent terminal or toggle automatic terminals. |
236
- | `/focus <agent\|off>` | Route plain input to one agent instead of spawning new agents. |
237
- | `/pause <agent\|all>` | Pause at the next action boundary. |
238
- | `/resume <agent\|all>` | Resume paused agents. |
239
- | `/stop <agent\|all>` | Stop running agents. |
240
- | `/clear` | Remove finished agents from the current display. |
238
+ - `@agent <message>`: send a live instruction to one agent.
239
+ - `@all <message>`: broadcast an instruction to all agents.
240
+ - `/send <agent|all> <message>`: command form of live steering.
241
+ - `/attach <agent|on|off>`: open an agent terminal or toggle automatic terminals.
242
+ - `/focus <agent|off>`: route plain input to one agent instead of spawning new agents.
243
+ - `/pause <agent|all>`: pause at the next action boundary.
244
+ - `/resume <agent|all>`: resume paused agents.
245
+ - `/stop <agent|all>`: stop running agents.
246
+ - `/clear`: remove finished agents from the current display.
247
+ - `/raw`: toggle conversation-raw view.
248
+ - `/copy`: copy the latest completed result to clipboard.
241
249
 
242
250
  ### Git Safety
243
251
 
244
- | Command | Description |
245
- | --- | --- |
246
- | `/undo [agent]` | Revert the last file change made by an agent, with conflict detection. |
247
- | `/commit [agent\|all] [message]` | Commit files touched by an agent or by all agents. |
248
- | `/autocommit <on\|off>` | Commit each agent's changes automatically when it finishes. |
252
+ - `/undo [agent]`: revert the last file change made by an agent, with conflict detection.
253
+ - `/commit [agent|all] [message]`: commit only files touched by the selected agent or by all agents. It does not run `git add -A`. With exactly one agent, `/commit message...` uses that agent and treats the rest as the message.
254
+ - `/autocommit <on|off>`: commit each agent's touched files automatically when it finishes. This is session-only.
249
255
 
250
256
  ### Views And Sessions
251
257
 
252
- | Command | Description |
253
- | --- | --- |
254
- | `/agents` | Agent overview. |
255
- | `/board` | Shared blackboard, file activity, claims, and notes. |
256
- | `/notes` | Full notes history. |
257
- | `/diff` | Live diff history. |
258
- | `/cost` | Token and cost breakdown. |
259
- | `/skills` | Available skills. |
260
- | `/specialists` | Available specialists. |
261
- | `/save [name]` | Save the current session. |
262
- | `/sessions` | List saved sessions. |
263
- | `/session <n\|latest>` | Restore a saved session. |
264
- | `/restore <agent>` | Relaunch a restored agent with its conversation history. |
265
-
266
- ### Settings
267
-
268
- | Command | Description |
269
- | --- | --- |
270
- | `/model [[provider:]model]` | Show or switch the session model. |
271
- | `/key <api-key>` | Store the API key for the active provider. |
272
- | `/approvals <ask\|auto-safe\|yolo>` | Set shell approvals for this session. |
273
- | `/sound <on\|off>` | Toggle terminal bell notifications. |
274
- | `/settings` | Edit global language, providers, keys, defaults, and approvals. |
275
- | `/settings-session` | Edit session-only model, approvals, and sound. |
276
- | `/doctor` | Check provider, key, and model configuration. |
277
- | `/help` | Full command reference. |
278
- | `/quit` | Save the session and exit. |
258
+ - `/agents`: agent overview.
259
+ - `/board`: shared blackboard, file activity, claims, and notes.
260
+ - `/notes`: full notes history.
261
+ - `/diff`: live diff history.
262
+ - `/cost`: token and cost breakdown.
263
+ - `/status`: session model, approval mode, agents, and cost snapshot.
264
+ - `/skills`: available skills.
265
+ - `/specialists`: available specialists.
266
+ - `/save [name]`: save the current session.
267
+ - `/sessions`: list saved sessions.
268
+ - `/session <n|latest>`: load a saved session snapshot. If active agents are running, use `/session <n|latest> --force` after saving/stopping what you need.
269
+ - `/restore <agent>`: relaunch a restored agent with its conversation history.
270
+
271
+ ### Settings And Exit
272
+
273
+ - `/model [[provider:]model]`: show or switch the session model.
274
+ - `/approvals <ask|auto|auto-safe|yolo>`: set shell approvals for this session.
275
+ - `/sound <on|off>`: toggle terminal bell notifications.
276
+ - `/settings`: edit global language, providers, keys, defaults, and approvals.
277
+ - `/settings-session`: edit session-only model, provider, approvals, and sound.
278
+ - `/project [folder]`: change project folder or reopen the folder picker. If agents are active, use `/project [folder] --force` after saving/stopping what you need.
279
+ - `/folder [folder]`: alias for `/project`.
280
+ - `/wizard`: relaunch the setup wizard. If agents are active, use `/wizard --force` after saving/stopping what you need.
281
+ - `/setup`: alias for `/wizard`.
282
+ - `/doctor`: run local readiness diagnostics for provider, key, model, endpoint, attach socket, and Git tooling.
283
+ - `/help`: full command reference.
284
+ - `/quit`: save the session and exit.
279
285
 
280
286
  When there is exactly one agent, commands such as `/undo`, `/focus`, `/pause`, `/resume`, `/stop`, and `/commit` can omit the agent name.
281
287
 
282
- ## Providers
288
+ ## Shell Approvals
289
+
290
+ Parallel separates agent modes from shell approval behavior.
283
291
 
284
- Parallel ships with **18 pre-configured cloud providers** with verified endpoints and curated model lists, plus **Ollama** for local models with automatic model detection. All providers use OpenAI-compatible chat completions with tool calling. You can also add any custom OpenAI-compatible endpoint.
292
+ ```text
293
+ /approvals ask
294
+ /approvals auto-safe
295
+ /approvals yolo
296
+ ```
285
297
 
286
- The built-in DeepSeek preset works out of the box once an API key is configured. Additional providers like xAI/Grok, Perplexity, Cohere, DeepInfra, Fireworks, Cerebras, Novita, Hyperbolic, and SambaNova are available for selection during setup or from the Providers settings submenu.
298
+ - `ask`: ask before shell commands unless explicitly allowed.
299
+ - `auto-safe`: auto-approve safe inspection/build/test commands and ask for risky commands.
300
+ - `yolo`: auto-approve every shell command. Intended for trusted/headless usage only.
287
301
 
288
- Environment variables:
302
+ `auto` is accepted as a compatibility spelling for `auto-safe`.
289
303
 
290
- | Variable | Purpose |
291
- | --- | --- |
292
- | `DEEPSEEK_API_KEY` | API key for the built-in DeepSeek provider. |
293
- | `PARALLEL_API_KEY` | Generic fallback API key. |
294
- | `PARALLEL_BASE_URL` | Override the provider base URL. |
295
- | `PARALLEL_MODEL` | Override the session model. |
296
- | `PARALLEL_NO_ALT_SCREEN=1` | Disable the alternate terminal screen. |
304
+ ## Sessions, Skills, And Specialists
297
305
 
298
- Configuration is stored in `~/.parallel/config.json`. Project state, sessions, skills, specialists, and memory are stored under `.parallel/` in the selected project.
306
+ Parallel stores project state under `.parallel/` in the selected project directory. That includes saved sessions, memory, skills, specialists, and session socket state.
299
307
 
300
- ## Skills And Specialists
308
+ Skills are markdown instruction files agents can load with the `load_skill` tool or that you can force-load with `#skill-name` in a task:
301
309
 
302
- Skills are markdown instruction files that agents can load with the `load_skill` tool or that you can force-load with `#skill-name` in a task.
310
+ ```text
311
+ > add Redis-backed caching for expensive lookups #redis
312
+ ```
303
313
 
304
- Locations:
314
+ Skill locations:
305
315
 
306
316
  - Global skills: `~/.parallel/skills/`
307
317
  - Project skills: `.parallel/skills/`
308
318
 
309
- Specialists are markdown personas with optional pinned models.
319
+ Specialists are reusable personas with optional pinned models.
310
320
 
311
- Locations:
321
+ Specialist locations:
312
322
 
313
323
  - Global specialists: `~/.parallel/specialists/`
314
324
  - Project specialists: `.parallel/specialists/`
315
325
 
316
- Example task with a forced skill:
317
-
318
- ```text
319
- > add Redis-backed caching for expensive lookups #redis
320
- ```
321
-
322
326
  ## How Parallel Avoids Lost Work
323
327
 
324
328
  Parallel does not lock files. Instead, each agent tracks the last version it read.
@@ -332,58 +336,42 @@ When an agent writes a file:
332
336
 
333
337
  This keeps agents moving without allowing silent overwrites.
334
338
 
335
- ## Codebase Map
336
-
337
- The runtime is intentionally small:
339
+ ## Headless Mode
338
340
 
339
- - `src/index.tsx`: CLI entrypoint, TUI launch, attach mode, and headless mode.
340
- - `src/controller.ts`: session state, agents, approvals, questions, terminals, commits, and restores.
341
- - `src/coordination/blackboard.ts`: shared live state for agents, logs, notes, file activity, claims, and diffs.
342
- - `src/agents/agent.ts`: agent loop, mode instructions, live context injection, and completion.
343
- - `src/agents/tools.ts`: file, shell, note, skill, memory, and question tools.
344
- - `src/server.ts`: Unix socket bridge for dedicated agent terminals.
345
- - `src/ui/`: Ink components for the hub, timelines, settings, prompts, and attach UI.
346
- - `src/commands.ts`: hub command registry, hidden compatibility commands, aliases, and dispatch.
347
- - `src/config.ts` and `src/i18n.ts`: provider/session config and translations.
341
+ For CI and scripts, run without the TUI:
348
342
 
349
- ## Changelog
343
+ ```bash
344
+ parallel --headless "fix lint failures" "update tests" --json
345
+ ```
350
346
 
351
- ### 0.4.1
347
+ Headless mode:
352
348
 
353
- - **18 pre-configured cloud providers** with verified endpoints and curated model lists (up from 8). Added: xAI/Grok, Perplexity, Cohere, DeepInfra, Fireworks, Cerebras, Novita, Hyperbolic, SambaNova.
354
- - **Ollama (local models)** as a first-class preset with automatic connectivity check and model detection.
355
- - **Wizard redesign** provider selection now grouped by category (Configured, Cloud, Local, Custom) instead of a flat list.
356
- - **Settings reorganization** all provider actions (keys, models, pricing, add/remove) consolidated under a "Providers" submenu; settings root reduced from 13 to 8 items.
357
- - **Provider removal** — can now remove configured providers from settings.
358
- - Custom provider option always available for any OpenAI-compatible endpoint.
349
+ - runs one agent per task
350
+ - uses the current folder as the project root
351
+ - uses `yolo` shell approvals
352
+ - auto-answers agent questions with the recommended option
353
+ - saves the session
354
+ - exits non-zero if any agent does not finish successfully
359
355
 
360
- ### 0.4.0
356
+ ## Package Contents
361
357
 
362
- - **Removed `/spawn`** use `/task` instead. The alias was redundant and its removal simplified the command registry.
363
- - **System messages color-coded by severity** — green for success, yellow for warnings, red for errors, gray for informational. Applied across all ~40 system messages in every command.
364
- - **UI fully internationalized** — all wizard screens, menus, and prompts now available in English, French, Spanish, and Chinese (zh).
365
- - **AgentHub header indicators** — the hub header now shows the active mode, model, and context usage at a glance.
366
- - **Fixed `/pause` double-call** — rapid consecutive `/pause` invocations no longer trigger the action twice.
358
+ The npm package is intentionally small. It publishes the compiled runtime and public release docs only:
367
359
 
368
- ## Development
360
+ - `dist/`
361
+ - `README.md`
362
+ - `CHANGELOG.md`
363
+ - `LICENSE`
369
364
 
370
- ```bash
371
- npm install
372
- npm run build
373
- npm test
374
- ```
365
+ Internal development files such as source tests and design docs are not part of the npm package.
375
366
 
376
- Use a local global link while developing:
367
+ ## Changelog
377
368
 
378
- ```bash
379
- npm link
380
- parallel --help
381
- ```
369
+ See [`CHANGELOG.md`](CHANGELOG.md).
382
370
 
383
- Published package:
371
+ ## Links
384
372
 
385
- - npm: https://www.npmjs.com/package/@parallel-cli/parallel
386
- - GitHub: https://github.com/Nil06/parallel-cli
373
+ - npm: [@parallel-cli/parallel](https://www.npmjs.com/package/@parallel-cli/parallel)
374
+ - GitHub: [Nil06/parallel-cli](https://github.com/Nil06/parallel-cli)
387
375
 
388
376
  ## License
389
377
 
@@ -27,7 +27,7 @@ ${mode === 'ask'
27
27
  - Explore first with read-only tools.
28
28
  - Before modifying any file or running mutating commands, call ask_user with a concrete implementation plan.
29
29
  - The plan must include steps, files you expect to touch, risks, and validation.
30
- - Use options ["Approve", "Revise"], recommended "Approve".
30
+ - Use options ["Approve", "Revise"], recommended "Revise" so timeout never approves changes.
31
31
  - Start editing only after explicit "Approve".
32
32
  - Finish with task_complete using this user-facing structure in ${userLang}: "Plan appliqué", "Ce que j’ai modifié", "Validation", "Risques restants".`
33
33
  : `TASK MODE:
@@ -97,7 +97,7 @@ export class Agent {
97
97
  this.llm = opts.llm;
98
98
  this.board = opts.board;
99
99
  this.maxSteps = opts.maxSteps;
100
- this.executor = new ToolExecutor(opts.board, opts.id, opts.name, opts.projectRoot, opts.requestApproval, opts.requestQuestion, opts.skills);
100
+ this.executor = new ToolExecutor(opts.board, opts.id, opts.name, opts.projectRoot, opts.requestApproval, opts.requestQuestion, opts.skills, opts.mode);
101
101
  const info = {
102
102
  id: opts.id,
103
103
  name: opts.name,