@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/CHANGELOG.md +149 -0
- package/README.md +183 -195
- package/dist/agents/agent.js +2 -2
- package/dist/agents/tools.js +47 -5
- package/dist/commands.js +117 -18
- package/dist/config.js +248 -63
- package/dist/controller.js +48 -17
- package/dist/i18n.js +192 -44
- package/dist/index.js +8 -5
- package/dist/pricing.js +162 -54
- package/dist/ui/App.js +208 -102
- package/dist/ui/CommandInput.js +42 -17
- package/dist/ui/SettingsPanel.js +224 -34
- package/dist/ui/Wizard.js +33 -3
- package/dist/ui/views.js +53 -21
- package/package.json +10 -1
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,
|
|
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.
|
|
7
|
+
> One hub. Many agents. Shared context. Human in control.
|
|
8
8
|
|
|
9
9
|
[](https://www.npmjs.com/package/@parallel-cli/parallel)
|
|
10
10
|

|
|
11
11
|

|
|
12
12
|

|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Highlights
|
|
15
15
|
|
|
16
|
-
|
|
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
|
-
-
|
|
31
|
-
- Open
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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
|
|
117
|
+
The main TUI is the Parallel hub. It is designed to answer:
|
|
122
118
|
|
|
123
|
-
-
|
|
124
|
-
-
|
|
125
|
-
-
|
|
126
|
-
-
|
|
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
|
-
|
|
125
|
+
Common hub commands:
|
|
129
126
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
##
|
|
187
|
+
## Providers And Models
|
|
180
188
|
|
|
181
|
-
Parallel
|
|
189
|
+
Parallel works with OpenAI-compatible chat completions and tool calling. It ships with 29 presets:
|
|
182
190
|
|
|
183
|
-
|
|
184
|
-
/
|
|
185
|
-
|
|
186
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
207
|
+
Useful settings commands:
|
|
200
208
|
|
|
201
|
-
|
|
202
|
-
|
|
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
|
-
|
|
215
|
+
Configuration is stored in `~/.parallel/config.json`.
|
|
206
216
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
-
|
|
210
|
-
-
|
|
211
|
-
-
|
|
212
|
-
-
|
|
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
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
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
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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
|
-
|
|
245
|
-
|
|
246
|
-
|
|
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
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
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
|
-
##
|
|
288
|
+
## Shell Approvals
|
|
289
|
+
|
|
290
|
+
Parallel separates agent modes from shell approval behavior.
|
|
283
291
|
|
|
284
|
-
|
|
292
|
+
```text
|
|
293
|
+
/approvals ask
|
|
294
|
+
/approvals auto-safe
|
|
295
|
+
/approvals yolo
|
|
296
|
+
```
|
|
285
297
|
|
|
286
|
-
|
|
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
|
-
|
|
302
|
+
`auto` is accepted as a compatibility spelling for `auto-safe`.
|
|
289
303
|
|
|
290
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
310
|
+
```text
|
|
311
|
+
> add Redis-backed caching for expensive lookups #redis
|
|
312
|
+
```
|
|
303
313
|
|
|
304
|
-
|
|
314
|
+
Skill locations:
|
|
305
315
|
|
|
306
316
|
- Global skills: `~/.parallel/skills/`
|
|
307
317
|
- Project skills: `.parallel/skills/`
|
|
308
318
|
|
|
309
|
-
Specialists are
|
|
319
|
+
Specialists are reusable personas with optional pinned models.
|
|
310
320
|
|
|
311
|
-
|
|
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
|
-
##
|
|
336
|
-
|
|
337
|
-
The runtime is intentionally small:
|
|
339
|
+
## Headless Mode
|
|
338
340
|
|
|
339
|
-
|
|
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
|
-
|
|
343
|
+
```bash
|
|
344
|
+
parallel --headless "fix lint failures" "update tests" --json
|
|
345
|
+
```
|
|
350
346
|
|
|
351
|
-
|
|
347
|
+
Headless mode:
|
|
352
348
|
|
|
353
|
-
-
|
|
354
|
-
-
|
|
355
|
-
-
|
|
356
|
-
-
|
|
357
|
-
-
|
|
358
|
-
-
|
|
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
|
-
|
|
356
|
+
## Package Contents
|
|
361
357
|
|
|
362
|
-
|
|
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
|
-
|
|
360
|
+
- `dist/`
|
|
361
|
+
- `README.md`
|
|
362
|
+
- `CHANGELOG.md`
|
|
363
|
+
- `LICENSE`
|
|
369
364
|
|
|
370
|
-
|
|
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
|
-
|
|
367
|
+
## Changelog
|
|
377
368
|
|
|
378
|
-
|
|
379
|
-
npm link
|
|
380
|
-
parallel --help
|
|
381
|
-
```
|
|
369
|
+
See [`CHANGELOG.md`](CHANGELOG.md).
|
|
382
370
|
|
|
383
|
-
|
|
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
|
|
package/dist/agents/agent.js
CHANGED
|
@@ -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 "
|
|
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,
|