@parallel-cli/parallel 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,116 @@
1
+ # Changelog
2
+
3
+ All notable changes to Parallel are documented here.
4
+
5
+ ## 0.4.3 - 2026-06-23
6
+
7
+ ### 0.4.3 Added
8
+
9
+ - Added a guided provider setup flow in both first-run wizard and settings: provider, model, endpoint review, API key, then save/default selection.
10
+ - Added endpoint review and endpoint editing for provider presets and configured providers.
11
+ - Added first-class local/no-key provider semantics for Ollama and vLLM/SGLang.
12
+ - Added `/project` and `/folder` commands to reopen the project picker or switch project folder from inside the TUI.
13
+ - Added `/wizard` and `/setup` commands to relaunch setup without restarting with `--first-run`.
14
+ - Added keyboard selection for slash command and `@agent` suggestions.
15
+ - Added viewport/windowing support for long wizard/settings lists.
16
+ - Added Up/Down scrolling for long static views such as `/help`.
17
+ - Added `CHANGELOG.md` to public release documentation.
18
+
19
+ ### 0.4.3 Changed
20
+
21
+ - Refreshed the provider and model catalog across 29 presets.
22
+ - Refreshed built-in pricing entries and made pricing lookup case-insensitive.
23
+ - Reworked settings provider details to expose model changes, endpoint editing, key changes, key clearing, default selection, pricing, and removal.
24
+ - Hid `/key` from visible help/autocomplete; provider keys are now guided through `/settings`.
25
+ - Updated CLI help, TUI help, and README to document current commands and provider flows.
26
+ - Updated the hardcoded TUI header version to `0.4.3`.
27
+ - Corrected npm metadata to point at `Nil06/parallel-cli`.
28
+
29
+ ### 0.4.3 Fixed
30
+
31
+ - Fixed preset providers skipping model selection and endpoint review before API key entry.
32
+ - Fixed session settings accidentally behaving like global provider mutation in several flows.
33
+ - Fixed bare model IDs containing `:` such as `qwen3-coder:480b`.
34
+ - Fixed stale default provider normalization during config load and provider removal.
35
+ - Fixed `DEEPSEEK_API_KEY` overriding whichever provider happened to be default; it now targets DeepSeek only.
36
+ - Fixed local endpoints being blocked by missing API keys.
37
+ - Fixed sensitive `/key ...` entries being stored in input history.
38
+ - Fixed tiny pseudo-TTY dimensions causing negative string repeat values in the TUI header.
39
+
40
+ ## 0.4.2 - 2026-06-22
41
+
42
+ ### 0.4.2 Added
43
+
44
+ - Expanded provider presets from 18 to 29.
45
+ - Added new provider categories: Western, Chinese, Gateways, Inference, and Local.
46
+ - Added MiniMax, Z.ai / GLM, Alibaba / Qwen, Moonshot / Kimi, Xiaomi / MiMo, StepFun, SiliconFlow, Atlas Cloud, Requesty, Vercel AI Gateway, and vLLM/SGLang presets.
47
+ - Added provider category metadata for cleaner Wizard and Settings grouping.
48
+ - Added a larger built-in model pricing catalog.
49
+
50
+ ### 0.4.2 Changed
51
+
52
+ - Reworked the README provider section to be provider-agnostic instead of DeepSeek-centered.
53
+ - Updated provider tables, endpoint documentation, and model catalog references.
54
+ - Removed internal docs from remote tracking and kept them out of the public package.
55
+
56
+ ### 0.4.2 Fixed
57
+
58
+ - Fixed Settings showing only configured providers instead of all presets in the Providers submenu.
59
+ - Fixed README coherence around provider count, missing commands, approvals, repository metadata, and environment variables.
60
+
61
+ ## 0.4.1 - 2026-06-22
62
+
63
+ ### 0.4.1 Added
64
+
65
+ - Added 10 new provider presets.
66
+ - Added Ollama as a first-class local preset with automatic connectivity check and model detection.
67
+ - Added custom provider setup for any OpenAI-compatible endpoint.
68
+ - Added provider removal from Settings.
69
+
70
+ ### 0.4.1 Changed
71
+
72
+ - Redesigned the provider wizard around grouped provider categories.
73
+ - Reorganized Settings so provider keys, models, pricing, add/remove, and defaults are managed under a Providers submenu.
74
+ - Reduced Settings root menu complexity.
75
+
76
+ ## 0.4.0 - 2026-06-22
77
+
78
+ ### 0.4.0 Added
79
+
80
+ - Added explicit agent modes: `/ask`, `/task`, and `/plan`.
81
+ - Added aliases `/a`, `/t`, and `/p`.
82
+ - Added dedicated agent terminals through `parallel attach`.
83
+ - Added automatic dedicated terminal opening with `/attach on`.
84
+ - Added focus mode for routing plain input to one agent.
85
+ - Added live telemetry in the hub and attached terminals.
86
+ - Added structured timeline presentation for agent activity.
87
+ - Added UI translations for English, French, Spanish, and Chinese.
88
+ - Added color-coded system messages by severity.
89
+ - Added safer test script behavior when local tests are absent.
90
+
91
+ ### 0.4.0 Changed
92
+
93
+ - Redesigned the control room UI with a compact ASCII header and improved agent rows.
94
+ - Reworked command grouping and alias resolution.
95
+ - Reworked attached terminal command handling around modern agent modes.
96
+ - Kept source tests local/internal instead of remote-tracked.
97
+
98
+ ### 0.4.0 Removed
99
+
100
+ - Removed the visible `/spawn` command in favor of `/task`.
101
+
102
+ ### 0.4.0 Fixed
103
+
104
+ - Fixed missing i18n strings in commands.
105
+ - Fixed several TUI layout issues around headers, root height, arrow focus guards, and small terminals.
106
+ - Fixed rapid repeated `/pause` behavior.
107
+
108
+ ## 0.3.3 - 2026-06-12
109
+
110
+ ### 0.3.3 Added
111
+
112
+ - Initial public release.
113
+ - Added the Parallel TUI control room for running multiple coding agents on one project.
114
+ - Added OpenAI-compatible provider configuration.
115
+ - Added session state, agent coordination, shared notes, file activity, diffs, approvals, and basic command dispatch.
116
+ - Added npm binaries: `parallel` and `prl`.
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
@@ -106,7 +102,7 @@ Broadcast to every agent:
106
102
  | --- | --- | --- |
107
103
  | `/ask` | Questions, reviews, audits, tradeoffs | Answers and advises without editing files. |
108
104
  | `/task` | Implementation work | Executes, edits, validates, and summarizes. |
109
- | `/plan` | Risky or unclear work | Inspects first, asks for approval, then edits only after approval. |
105
+ | `/plan` | Risky or unclear work | Inspects first, presents a plan, then edits only after approval. |
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
127
  ```text
131
128
  /agents agent overview
132
129
  /focus a1 inspect and steer one agent
133
130
  /raw toggle raw detail in focus view
134
- /board shared blackboard, claims, file activity
131
+ /board shared blackboard, claims, notes, file activity
135
132
  /diff live diff history
136
133
  /cost token and cost breakdown
137
134
  /sessions saved sessions
138
135
  /settings global settings
139
136
  /settings-session session-only settings
137
+ /project [folder] change project folder
138
+ /wizard rerun setup wizard
140
139
  ```
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
+ - Up/Down scrolls long views such as `/help`.
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,40 +184,47 @@ 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 and vLLM/SGLang do not require an API key. You can still review and edit their endpoints.
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
209
+ ```text
210
+ /settings global language, providers, keys, defaults, approvals
211
+ /settings-session temporary model, provider, approvals, sound
212
+ /model show current session model
213
+ /model provider:id switch model for this session
214
+ /doctor check provider/model/API key readiness
203
215
  ```
204
216
 
205
- Headless mode:
217
+ Configuration is stored in `~/.parallel/config.json`.
206
218
 
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
219
+ Environment variables:
220
+
221
+ | Variable | Purpose |
222
+ | --- | --- |
223
+ | `PARALLEL_API_KEY` | API key for the current default provider. |
224
+ | `DEEPSEEK_API_KEY` | API key for the DeepSeek provider only. |
225
+ | `PARALLEL_BASE_URL` | Override the default provider base URL. |
226
+ | `PARALLEL_MODEL` | Override the session model. |
227
+ | `PARALLEL_NO_ALT_SCREEN=1` | Disable the alternate terminal screen. |
213
228
 
214
229
  ## Commands
215
230
 
@@ -238,6 +253,8 @@ Headless mode:
238
253
  | `/resume <agent\|all>` | Resume paused agents. |
239
254
  | `/stop <agent\|all>` | Stop running agents. |
240
255
  | `/clear` | Remove finished agents from the current display. |
256
+ | `/raw` | Toggle conversation-raw view. |
257
+ | `/copy` | Copy the latest completed result to clipboard. |
241
258
 
242
259
  ### Git Safety
243
260
 
@@ -256,6 +273,7 @@ Headless mode:
256
273
  | `/notes` | Full notes history. |
257
274
  | `/diff` | Live diff history. |
258
275
  | `/cost` | Token and cost breakdown. |
276
+ | `/status` | Session model, approval mode, agents, cost snapshot. |
259
277
  | `/skills` | Available skills. |
260
278
  | `/specialists` | Available specialists. |
261
279
  | `/save [name]` | Save the current session. |
@@ -263,62 +281,65 @@ Headless mode:
263
281
  | `/session <n\|latest>` | Restore a saved session. |
264
282
  | `/restore <agent>` | Relaunch a restored agent with its conversation history. |
265
283
 
266
- ### Settings
284
+ ### Settings And Exit
267
285
 
268
286
  | Command | Description |
269
287
  | --- | --- |
270
288
  | `/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. |
289
+ | `/approvals <ask\|auto\|auto-safe\|yolo>` | Set shell approvals for this session. |
273
290
  | `/sound <on\|off>` | Toggle terminal bell notifications. |
274
291
  | `/settings` | Edit global language, providers, keys, defaults, and approvals. |
275
292
  | `/settings-session` | Edit session-only model, approvals, and sound. |
293
+ | `/project [folder]` | Change project folder or reopen the folder picker. |
294
+ | `/folder [folder]` | Alias for `/project`. |
295
+ | `/wizard` | Relaunch the setup wizard. |
296
+ | `/setup` | Alias for `/wizard`. |
276
297
  | `/doctor` | Check provider, key, and model configuration. |
277
298
  | `/help` | Full command reference. |
278
299
  | `/quit` | Save the session and exit. |
279
300
 
280
301
  When there is exactly one agent, commands such as `/undo`, `/focus`, `/pause`, `/resume`, `/stop`, and `/commit` can omit the agent name.
281
302
 
282
- ## Providers
283
-
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.
303
+ ## Shell Approvals
285
304
 
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.
305
+ Parallel separates agent modes from shell approval behavior.
287
306
 
288
- Environment variables:
307
+ ```text
308
+ /approvals ask
309
+ /approvals auto-safe
310
+ /approvals yolo
311
+ ```
289
312
 
290
- | Variable | Purpose |
313
+ | Mode | Behavior |
291
314
  | --- | --- |
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. |
315
+ | `ask` | Ask before shell commands unless explicitly allowed. |
316
+ | `auto-safe` | Auto-approve safe inspection/build/test commands and ask for risky commands. |
317
+ | `yolo` | Auto-approve every shell command. Intended for trusted/headless usage only. |
297
318
 
298
- Configuration is stored in `~/.parallel/config.json`. Project state, sessions, skills, specialists, and memory are stored under `.parallel/` in the selected project.
319
+ `auto` is accepted as a compatibility spelling for `auto-safe`.
320
+
321
+ ## Sessions, Skills, And Specialists
322
+
323
+ Parallel stores project state under `.parallel/` in the selected project directory. That includes saved sessions, memory, skills, specialists, and session socket state.
299
324
 
300
- ## Skills And Specialists
325
+ 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
326
 
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.
327
+ ```text
328
+ > add Redis-backed caching for expensive lookups #redis
329
+ ```
303
330
 
304
- Locations:
331
+ Skill locations:
305
332
 
306
333
  - Global skills: `~/.parallel/skills/`
307
334
  - Project skills: `.parallel/skills/`
308
335
 
309
- Specialists are markdown personas with optional pinned models.
336
+ Specialists are reusable personas with optional pinned models.
310
337
 
311
- Locations:
338
+ Specialist locations:
312
339
 
313
340
  - Global specialists: `~/.parallel/specialists/`
314
341
  - Project specialists: `.parallel/specialists/`
315
342
 
316
- Example task with a forced skill:
317
-
318
- ```text
319
- > add Redis-backed caching for expensive lookups #redis
320
- ```
321
-
322
343
  ## How Parallel Avoids Lost Work
323
344
 
324
345
  Parallel does not lock files. Instead, each agent tracks the last version it read.
@@ -332,58 +353,42 @@ When an agent writes a file:
332
353
 
333
354
  This keeps agents moving without allowing silent overwrites.
334
355
 
335
- ## Codebase Map
336
-
337
- The runtime is intentionally small:
356
+ ## Headless Mode
338
357
 
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.
358
+ For CI and scripts, run without the TUI:
348
359
 
349
- ## Changelog
360
+ ```bash
361
+ parallel --headless "fix lint failures" "update tests" --json
362
+ ```
350
363
 
351
- ### 0.4.1
364
+ Headless mode:
352
365
 
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.
366
+ - runs one agent per task
367
+ - uses the current folder as the project root
368
+ - uses `yolo` shell approvals
369
+ - auto-answers agent questions with the recommended option
370
+ - saves the session
371
+ - exits non-zero if any agent does not finish successfully
359
372
 
360
- ### 0.4.0
373
+ ## Package Contents
361
374
 
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.
375
+ The npm package is intentionally small. It publishes the compiled runtime and public release docs only:
367
376
 
368
- ## Development
377
+ - `dist/`
378
+ - `README.md`
379
+ - `CHANGELOG.md`
380
+ - `LICENSE`
369
381
 
370
- ```bash
371
- npm install
372
- npm run build
373
- npm test
374
- ```
382
+ Internal development files such as source tests and design docs are not part of the npm package.
375
383
 
376
- Use a local global link while developing:
384
+ ## Changelog
377
385
 
378
- ```bash
379
- npm link
380
- parallel --help
381
- ```
386
+ See [`CHANGELOG.md`](CHANGELOG.md).
382
387
 
383
- Published package:
388
+ ## Links
384
389
 
385
- - npm: https://www.npmjs.com/package/@parallel-cli/parallel
386
- - GitHub: https://github.com/Nil06/parallel-cli
390
+ - npm: [@parallel-cli/parallel](https://www.npmjs.com/package/@parallel-cli/parallel)
391
+ - GitHub: [Nil06/parallel-cli](https://github.com/Nil06/parallel-cli)
387
392
 
388
393
  ## License
389
394
 
package/dist/commands.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Controller, normalizeShellApprovalMode } from './controller.js';
2
2
  import { createSkillTemplate, createSpecialistTemplate } from './skills.js';
3
+ import { providerReady } from './config.js';
3
4
  import { t } from './i18n.js';
4
5
  // Grouped by intent so /help reads as a story: create agents → steer them →
5
6
  // inspect the session → git safety net → session & config → exit.
@@ -41,11 +42,13 @@ export const COMMANDS = [
41
42
  { name: '/restore', args: '<agent>', descKey: 'cmd.restore', group: 'git' },
42
43
  // config
43
44
  { name: '/model', args: '[[provider:]model]', descKey: 'cmd.model', group: 'settings' },
44
- { name: '/key', args: '<key>', descKey: 'cmd.key', group: 'settings' },
45
+ { name: '/key', args: '<key>', descKey: 'cmd.key', group: 'settings', hidden: true },
45
46
  { name: '/approvals', args: '<ask|auto|auto-safe|yolo>', descKey: 'cmd.approvals', group: 'settings' },
46
47
  { name: '/sound', args: '<on|off>', descKey: 'cmd.sound', group: 'settings' },
47
48
  { name: '/settings', args: '', descKey: 'cmd.settings', group: 'settings' },
48
49
  { name: '/settings-session', args: '', descKey: 'cmd.ssettings', group: 'settings', aliases: ['/ssettings'] },
50
+ { name: '/project', args: '[folder]', descKey: 'cmd.project', group: 'settings', aliases: ['/folder'] },
51
+ { name: '/wizard', args: '', descKey: 'cmd.wizard', group: 'settings', aliases: ['/setup'] },
49
52
  { name: '/doctor', args: '', descKey: 'cmd.doctor', group: 'settings' },
50
53
  // exit
51
54
  { name: '/help', args: '', descKey: 'cmd.help', group: 'other' },
@@ -75,7 +78,7 @@ function spawnFrom(arg, ctl, ui, images, specialist, mode = 'task') {
75
78
  const p = ctl.sessionProvider();
76
79
  if (!p)
77
80
  return ui.system(t('m.missingProvider'), 'error');
78
- if (!p.apiKey)
81
+ if (!providerReady(p))
79
82
  return ui.system(t('m.missingKey', { name: p.name }), 'error');
80
83
  if (!ctl.session.model && !p.defaultModel && !p.models[0])
81
84
  return ui.system(t('m.missingModel', { name: p.name }), 'error');
@@ -155,7 +158,11 @@ export function executeInput(raw, ctl, ui, images) {
155
158
  ? '/settings-session'
156
159
  : rawCmd.toLowerCase() === '/exit'
157
160
  ? '/quit'
158
- : rawCmd;
161
+ : rawCmd.toLowerCase() === '/folder'
162
+ ? '/project'
163
+ : rawCmd.toLowerCase() === '/setup'
164
+ ? '/wizard'
165
+ : rawCmd;
159
166
  const arg = rest.join(' ').trim();
160
167
  switch (cmd.toLowerCase()) {
161
168
  case '/ask': {
@@ -311,7 +318,7 @@ export function executeInput(raw, ctl, ui, images) {
311
318
  const p = ctl.sessionProvider();
312
319
  if (!p)
313
320
  return ui.system(t('m.missingProvider'), 'error');
314
- if (!p.apiKey)
321
+ if (!providerReady(p))
315
322
  return ui.system(t('m.missingKey', { name: p.name }), 'error');
316
323
  if (!ctl.session.model && !p.defaultModel && !p.models[0])
317
324
  return ui.system(t('m.missingModel', { name: p.name }), 'error');
@@ -468,6 +475,12 @@ export function executeInput(raw, ctl, ui, images) {
468
475
  case '/settings-session':
469
476
  ui.setView('settings-session');
470
477
  return;
478
+ case '/project':
479
+ ui.openProject?.(arg || undefined);
480
+ return;
481
+ case '/wizard':
482
+ ui.openWizard?.();
483
+ return;
471
484
  // SESSION-only approvals & sound (global defaults editable in /settings).
472
485
  case '/approvals': {
473
486
  const mode = normalizeShellApprovalMode(arg);