claude-flow 2.5.0-alpha.141 → 2.7.0-alpha.1
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/.claude/agents/reasoning/README.md +171 -0
- package/.claude/agents/reasoning/agent.md +816 -0
- package/.claude/agents/reasoning/example-reasoning-agent-template.md +362 -0
- package/.claude/agents/reasoning/goal-planner.md +73 -0
- package/.claude/commands/coordination/README.md +9 -0
- package/.claude/commands/memory/README.md +9 -0
- package/.claude/settings.json +3 -3
- package/.claude/sparc-modes.json +108 -0
- package/README.md +1 -6
- package/bin/claude-flow +1 -1
- package/dist/src/cli/command-registry.js +70 -6
- package/dist/src/cli/command-registry.js.map +1 -1
- package/dist/src/cli/help-formatter.js +5 -3
- package/dist/src/cli/help-formatter.js.map +1 -1
- package/dist/src/cli/help-text.js +53 -5
- package/dist/src/cli/help-text.js.map +1 -1
- package/dist/src/cli/simple-cli.js +182 -172
- package/dist/src/cli/simple-cli.js.map +1 -1
- package/dist/src/cli/simple-commands/agent-booster.js +415 -0
- package/dist/src/cli/simple-commands/agent-booster.js.map +1 -0
- package/dist/src/cli/simple-commands/agent.js +856 -13
- package/dist/src/cli/simple-commands/agent.js.map +1 -1
- package/dist/src/cli/simple-commands/config.js +115 -257
- package/dist/src/cli/simple-commands/config.js.map +1 -1
- package/dist/src/cli/simple-commands/env-template.js +180 -0
- package/dist/src/cli/simple-commands/env-template.js.map +1 -0
- package/dist/src/cli/simple-commands/init/help.js +23 -0
- package/dist/src/cli/simple-commands/init/help.js.map +1 -1
- package/dist/src/cli/simple-commands/init/index.js +63 -0
- package/dist/src/cli/simple-commands/init/index.js.map +1 -1
- package/dist/src/cli/simple-commands/memory.js +414 -16
- package/dist/src/cli/simple-commands/memory.js.map +1 -1
- package/dist/src/cli/simple-commands/proxy.js +304 -0
- package/dist/src/cli/simple-commands/proxy.js.map +1 -0
- package/dist/src/cli/simple-commands/sparc.js +16 -19
- package/dist/src/cli/simple-commands/sparc.js.map +1 -1
- package/dist/src/cli/validation-helper.js.map +1 -1
- package/dist/src/core/version.js +1 -1
- package/dist/src/execution/agent-executor.js +181 -0
- package/dist/src/execution/agent-executor.js.map +1 -0
- package/dist/src/execution/index.js +12 -0
- package/dist/src/execution/index.js.map +1 -0
- package/dist/src/execution/provider-manager.js +110 -0
- package/dist/src/execution/provider-manager.js.map +1 -0
- package/dist/src/hooks/redaction-hook.js +89 -0
- package/dist/src/hooks/redaction-hook.js.map +1 -0
- package/dist/src/memory/swarm-memory.js +340 -421
- package/dist/src/memory/swarm-memory.js.map +1 -1
- package/dist/src/reasoningbank/reasoningbank-adapter.js +144 -0
- package/dist/src/reasoningbank/reasoningbank-adapter.js.map +1 -0
- package/dist/src/utils/key-redactor.js +108 -0
- package/dist/src/utils/key-redactor.js.map +1 -0
- package/dist/src/utils/metrics-reader.js.map +1 -1
- package/docs/AGENT-BOOSTER-INTEGRATION.md +407 -0
- package/docs/AGENTIC-FLOW-INTEGRATION-GUIDE.md +753 -0
- package/docs/AGENTIC_FLOW_EXECUTION_FIX_REPORT.md +474 -0
- package/docs/AGENTIC_FLOW_INTEGRATION_STATUS.md +143 -0
- package/docs/AGENTIC_FLOW_MVP_COMPLETE.md +367 -0
- package/docs/AGENTIC_FLOW_SECURITY_TEST_REPORT.md +369 -0
- package/docs/COMMAND-VERIFICATION-REPORT.md +441 -0
- package/docs/COMMIT_SUMMARY.md +247 -0
- package/docs/DEEP_REVIEW_COMPREHENSIVE_REPORT.md +922 -0
- package/docs/DOCKER-VALIDATION-REPORT.md +281 -0
- package/docs/ENV-SETUP-GUIDE.md +270 -0
- package/docs/FINAL_PRE_PUBLISH_VALIDATION.md +823 -0
- package/docs/FINAL_VALIDATION_REPORT.md +165 -0
- package/docs/HOOKS-V2-MODIFICATION.md +146 -0
- package/docs/INDEX.md +568 -0
- package/docs/INTEGRATION_COMPLETE.md +414 -0
- package/docs/MEMORY_REDACTION_TEST_REPORT.md +300 -0
- package/docs/PERFORMANCE-SYSTEMS-STATUS.md +340 -0
- package/docs/PRE_RELEASE_FIXES_REPORT.md +435 -0
- package/docs/README.md +35 -0
- package/docs/REASONING-AGENTS.md +482 -0
- package/docs/REASONINGBANK-AGENT-CREATION-GUIDE.md +813 -0
- package/docs/REASONINGBANK-ANALYSIS-COMPLETE.md +479 -0
- package/docs/REASONINGBANK-BENCHMARK-RESULTS.md +166 -0
- package/docs/REASONINGBANK-BENCHMARK.md +396 -0
- package/docs/REASONINGBANK-CLI-INTEGRATION.md +455 -0
- package/docs/REASONINGBANK-CORE-INTEGRATION.md +658 -0
- package/docs/REASONINGBANK-COST-OPTIMIZATION.md +329 -0
- package/docs/REASONINGBANK-DEMO.md +419 -0
- package/docs/REASONINGBANK-INTEGRATION-COMPLETE.md +249 -0
- package/docs/REASONINGBANK-INTEGRATION-STATUS.md +179 -0
- package/docs/REASONINGBANK-VALIDATION.md +532 -0
- package/docs/REASONINGBANK_ARCHITECTURE.md +475 -0
- package/docs/REASONINGBANK_INTEGRATION_COMPLETE.md +558 -0
- package/docs/REASONINGBANK_INTEGRATION_PLAN.md +1188 -0
- package/docs/REGRESSION-ANALYSIS-REPORT.md +500 -0
- package/docs/RELEASE_v2.6.0-alpha.2.md +658 -0
- package/docs/api/API_DOCUMENTATION.md +721 -0
- package/docs/architecture/ARCHITECTURE.md +1690 -0
- package/docs/ci-cd/README.md +368 -0
- package/docs/development/DEPLOYMENT.md +2348 -0
- package/docs/development/DEVELOPMENT_WORKFLOW.md +1333 -0
- package/docs/development/build-analysis-report.md +252 -0
- package/docs/development/pair-optimization.md +156 -0
- package/docs/development/token-tracking-status.md +103 -0
- package/docs/development/training-pipeline-demo.md +163 -0
- package/docs/development/training-pipeline-real-only.md +196 -0
- package/docs/epic-sdk-integration.md +1269 -0
- package/docs/experimental/RIEMANN_HYPOTHESIS_PROOF.md +124 -0
- package/docs/experimental/computational_verification.py +436 -0
- package/docs/experimental/novel_approaches.md +560 -0
- package/docs/experimental/riemann_hypothesis_analysis.md +263 -0
- package/docs/experimental/riemann_proof_attempt.md +124 -0
- package/docs/experimental/riemann_synthesis.md +277 -0
- package/docs/experimental/verification_results.json +12 -0
- package/docs/experimental/visualization_insights.md +720 -0
- package/docs/guides/USER_GUIDE.md +1138 -0
- package/docs/guides/token-tracking-guide.md +291 -0
- package/docs/reference/AGENTS.md +1011 -0
- package/docs/reference/MCP_TOOLS.md +2188 -0
- package/docs/reference/SPARC.md +717 -0
- package/docs/reference/SWARM.md +2000 -0
- package/docs/sdk/CLAUDE-CODE-SDK-DEEP-ANALYSIS.md +649 -0
- package/docs/sdk/CLAUDE-FLOW-SDK-INTEGRATION-ANALYSIS.md +242 -0
- package/docs/sdk/INTEGRATION-ROADMAP.md +420 -0
- package/docs/sdk/MCP-TOOLS-UPDATE.md +270 -0
- package/docs/sdk/SDK-ADVANCED-FEATURES-INTEGRATION.md +723 -0
- package/docs/sdk/SDK-ALL-FEATURES-INTEGRATION-MATRIX.md +612 -0
- package/docs/sdk/SDK-INTEGRATION-COMPLETE.md +358 -0
- package/docs/sdk/SDK-INTEGRATION-PHASES-V2.5.md +750 -0
- package/docs/sdk/SDK-LEVERAGE-REAL-FEATURES.md +676 -0
- package/docs/sdk/SDK-VALIDATION-RESULTS.md +400 -0
- package/docs/sdk/epic-sdk-integration.md +1269 -0
- package/docs/setup/remote-setup.md +93 -0
- package/docs/validation/final-validation-summary.md +220 -0
- package/docs/validation/verification-integration.md +190 -0
- package/docs/validation/verification-validation.md +349 -0
- package/docs/wiki/background-commands.md +1213 -0
- package/docs/wiki/session-persistence.md +342 -0
- package/docs/wiki/stream-chain-command.md +537 -0
- package/package.json +4 -2
- package/src/cli/command-registry.js +70 -5
- package/src/cli/help-text.js +26 -5
- package/src/cli/simple-cli.ts +18 -7
- package/src/cli/simple-commands/agent-booster.js +515 -0
- package/src/cli/simple-commands/agent.js +1001 -12
- package/src/cli/simple-commands/agent.ts +137 -0
- package/src/cli/simple-commands/config.ts +127 -0
- package/src/cli/simple-commands/env-template.js +190 -0
- package/src/cli/simple-commands/init/help.js +23 -0
- package/src/cli/simple-commands/init/index.js +84 -6
- package/src/cli/simple-commands/memory.js +497 -16
- package/src/cli/simple-commands/proxy.js +384 -0
- package/src/cli/simple-commands/sparc.js +16 -19
- package/src/execution/agent-executor.ts +306 -0
- package/src/execution/index.ts +19 -0
- package/src/execution/provider-manager.ts +187 -0
- package/src/hooks/redaction-hook.ts +115 -0
- package/src/reasoningbank/reasoningbank-adapter.js +191 -0
- package/src/utils/key-redactor.js +178 -0
- package/src/utils/key-redactor.ts +184 -0
|
@@ -0,0 +1,1213 @@
|
|
|
1
|
+
# Background Commands in Claude Code
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Claude Code supports running shell commands in the background through multiple methods:
|
|
6
|
+
|
|
7
|
+
1. **Keyboard Shortcut**: Press `Ctrl+B` when Claude suggests a command to run it in the background (or `Ctrl+B Ctrl+B` in tmux)
|
|
8
|
+
2. **Programmatic Execution**: Use the `run_in_background` parameter in the Bash tool
|
|
9
|
+
3. **Prompt Instructions**: Request background execution directly in your prompts to Claude
|
|
10
|
+
4. **Interactive Management**: Use `/bashes` command to view and manage all background shells
|
|
11
|
+
|
|
12
|
+
This feature allows you to execute long-running processes without blocking your workflow, enabling continuous development while monitoring servers, builds, or other processes. Background tasks run in separate shells with unique IDs, allowing you to monitor output, check status, and terminate them as needed.
|
|
13
|
+
|
|
14
|
+
## Quick Reference
|
|
15
|
+
|
|
16
|
+
| Action | Method | Example |
|
|
17
|
+
|--------|--------|---------|
|
|
18
|
+
| **Start background task** | Ctrl+B or prompt | `"Run npm run dev in background"` |
|
|
19
|
+
| **List all tasks** | /bashes command | `/bashes` (interactive mode) |
|
|
20
|
+
| **Check specific task** | Prompt | `"Check status of bash_1"` |
|
|
21
|
+
| **View task output** | Prompt | `"Show output from bash_1"` |
|
|
22
|
+
| **Kill specific task** | Prompt or /bashes | `"Kill bash_1"` or press 'k' in /bashes |
|
|
23
|
+
| **Kill all tasks** | Prompt | `"Kill all background tasks"` |
|
|
24
|
+
|
|
25
|
+
### Common Shell IDs
|
|
26
|
+
- Background tasks are assigned IDs like `bash_1`, `bash_2`, `bash_3`, etc.
|
|
27
|
+
- IDs are sequential and unique per session
|
|
28
|
+
- IDs persist until the shell is killed or completes
|
|
29
|
+
|
|
30
|
+
### Quick Start
|
|
31
|
+
|
|
32
|
+
**Interactive (Keyboard)**:
|
|
33
|
+
When Claude presents a command, press `Ctrl+B` to run it in the background instead of the default foreground execution.
|
|
34
|
+
|
|
35
|
+
**Programmatic (Tool Parameter)**:
|
|
36
|
+
```javascript
|
|
37
|
+
{
|
|
38
|
+
"tool": "Bash",
|
|
39
|
+
"command": "npm run dev",
|
|
40
|
+
"run_in_background": true // This parameter triggers background execution
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Via Prompt**:
|
|
45
|
+
Simply tell Claude: "Start the dev server in the background" and Claude will automatically use the `run_in_background` parameter.
|
|
46
|
+
|
|
47
|
+
## Key Components
|
|
48
|
+
|
|
49
|
+
### 1. **Bash Tool with Background Support**
|
|
50
|
+
The standard Bash tool accepts a `run_in_background` parameter that spawns commands in a separate background shell.
|
|
51
|
+
|
|
52
|
+
#### Tool Parameters
|
|
53
|
+
```javascript
|
|
54
|
+
{
|
|
55
|
+
"tool": "Bash",
|
|
56
|
+
"command": "npm run dev", // Required: Command to execute
|
|
57
|
+
"run_in_background": true, // Optional: Run in background
|
|
58
|
+
"description": "Start dev server", // Optional: Description
|
|
59
|
+
"timeout": 60000 // Optional: Timeout in ms (max 600000)
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
#### Example Usage in Claude
|
|
64
|
+
When interacting with Claude, you can request background execution like this:
|
|
65
|
+
```
|
|
66
|
+
User: "Start the development server"
|
|
67
|
+
Claude: I'll start the development server in the background so we can continue working.
|
|
68
|
+
|
|
69
|
+
[Claude uses Bash tool with run_in_background: true]
|
|
70
|
+
Command: npm run dev
|
|
71
|
+
Result: Command running in background with ID: bash_1
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 2. **BashOutput Tool**
|
|
75
|
+
Retrieves output from running or completed background shells. Each call returns only NEW output since the last check.
|
|
76
|
+
|
|
77
|
+
#### Tool Parameters
|
|
78
|
+
```javascript
|
|
79
|
+
{
|
|
80
|
+
"tool": "BashOutput",
|
|
81
|
+
"bash_id": "bash_1", // Required: ID from background task
|
|
82
|
+
"filter": "error|warning" // Optional: Regex to filter output
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
#### Response Format
|
|
87
|
+
```xml
|
|
88
|
+
<status>running|completed|killed</status>
|
|
89
|
+
<exit_code>0</exit_code> <!-- Only if completed -->
|
|
90
|
+
<stdout>
|
|
91
|
+
[New output since last check]
|
|
92
|
+
</stdout>
|
|
93
|
+
<stderr>
|
|
94
|
+
[Any error output]
|
|
95
|
+
</stderr>
|
|
96
|
+
<timestamp>2025-08-11T22:05:20.964Z</timestamp>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
#### Example Usage
|
|
100
|
+
```
|
|
101
|
+
User: "Check if the server started successfully"
|
|
102
|
+
Claude: Let me check the output of the development server.
|
|
103
|
+
|
|
104
|
+
[Claude uses BashOutput tool]
|
|
105
|
+
bash_id: bash_1
|
|
106
|
+
Result:
|
|
107
|
+
<status>running</status>
|
|
108
|
+
<stdout>
|
|
109
|
+
> my-app@1.0.0 dev
|
|
110
|
+
> vite
|
|
111
|
+
|
|
112
|
+
VITE v5.0.0 ready in 532 ms
|
|
113
|
+
➜ Local: http://localhost:5173/
|
|
114
|
+
</stdout>
|
|
115
|
+
|
|
116
|
+
The server is running successfully at http://localhost:5173/
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 3. **KillBash Tool**
|
|
120
|
+
Terminates background shells by ID. Attempts graceful shutdown first.
|
|
121
|
+
|
|
122
|
+
#### Tool Parameters
|
|
123
|
+
```javascript
|
|
124
|
+
{
|
|
125
|
+
"tool": "KillBash",
|
|
126
|
+
"shell_id": "bash_1" // Required: ID of background task to kill
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
#### Response Format
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"success": true,
|
|
134
|
+
"message": "Successfully killed shell: bash_1 (npm run dev)",
|
|
135
|
+
"shell_id": "bash_1"
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
#### Example Usage
|
|
140
|
+
```
|
|
141
|
+
User: "Stop the dev server"
|
|
142
|
+
Claude: I'll stop the development server running in the background.
|
|
143
|
+
|
|
144
|
+
[Claude uses KillBash tool]
|
|
145
|
+
shell_id: bash_1
|
|
146
|
+
Result: Successfully killed shell: bash_1
|
|
147
|
+
|
|
148
|
+
The development server has been stopped.
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Interactive Commands and Shortcuts
|
|
152
|
+
|
|
153
|
+
### The /bashes Command
|
|
154
|
+
|
|
155
|
+
Claude Code includes a built-in command for managing background shells interactively:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
/bashes
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
This command opens an interactive menu that displays:
|
|
162
|
+
- **All background shells** (running and completed)
|
|
163
|
+
- **Shell IDs** for reference (e.g., bash_1, bash_2)
|
|
164
|
+
- **Commands** that were executed
|
|
165
|
+
- **Status** (running, completed, killed)
|
|
166
|
+
- **Runtime** and exit codes
|
|
167
|
+
|
|
168
|
+
**Usage Example:**
|
|
169
|
+
```
|
|
170
|
+
> /bashes
|
|
171
|
+
|
|
172
|
+
Background Bash Shells
|
|
173
|
+
Select a shell to view details
|
|
174
|
+
|
|
175
|
+
1. npm run dev (running)
|
|
176
|
+
2. docker-compose up (running)
|
|
177
|
+
3. npm test (completed)
|
|
178
|
+
|
|
179
|
+
↑/↓ to select · Enter to view · k to kill · Esc to close
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
When you select a shell and press Enter, you see:
|
|
183
|
+
- Last 10 lines of STDOUT
|
|
184
|
+
- Any STDERR output
|
|
185
|
+
- Runtime information
|
|
186
|
+
- Exit code (if completed)
|
|
187
|
+
|
|
188
|
+
### Using Ctrl+B for Background Execution
|
|
189
|
+
|
|
190
|
+
When Claude presents a command for execution, you have two options:
|
|
191
|
+
- **Enter/Return**: Execute in foreground (default)
|
|
192
|
+
- **Ctrl+B**: Execute in background
|
|
193
|
+
|
|
194
|
+
#### How It Works
|
|
195
|
+
1. Claude suggests a command: `npm run dev`
|
|
196
|
+
2. You see the prompt: "Press Enter to run or Ctrl+B for background"
|
|
197
|
+
3. Press `Ctrl+B` to run in background
|
|
198
|
+
4. Command starts with a unique ID (e.g., `bash_1`)
|
|
199
|
+
5. You can continue working while it runs
|
|
200
|
+
|
|
201
|
+
### Programmatic Invocation of Background Mode
|
|
202
|
+
|
|
203
|
+
The Ctrl+B functionality can be triggered programmatically by:
|
|
204
|
+
|
|
205
|
+
#### 1. Direct Tool Parameter
|
|
206
|
+
```javascript
|
|
207
|
+
// This is what happens when you press Ctrl+B
|
|
208
|
+
{
|
|
209
|
+
"tool": "Bash",
|
|
210
|
+
"command": "npm run dev",
|
|
211
|
+
"run_in_background": true // Ctrl+B sets this to true
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
#### 2. Claude-Flow Automation
|
|
216
|
+
```javascript
|
|
217
|
+
// Automated background detection
|
|
218
|
+
function handleCommand(command) {
|
|
219
|
+
const shouldBackground = detectLongRunning(command);
|
|
220
|
+
|
|
221
|
+
return {
|
|
222
|
+
tool: "Bash",
|
|
223
|
+
command: command,
|
|
224
|
+
run_in_background: shouldBackground // Simulates Ctrl+B
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
#### 3. Hook System Integration
|
|
230
|
+
```bash
|
|
231
|
+
# Pre-command hook that simulates Ctrl+B for certain commands
|
|
232
|
+
npx claude-flow hooks pre-command \
|
|
233
|
+
--auto-background "npm run dev" \
|
|
234
|
+
--auto-background "docker-compose up"
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Terminal Compatibility
|
|
238
|
+
|
|
239
|
+
- **Standard Terminals**: `Ctrl+B` triggers background execution
|
|
240
|
+
- **Tmux Sessions**: `Ctrl+B Ctrl+B` (double tap) since Ctrl+B is tmux prefix
|
|
241
|
+
- **VS Code Terminal**: `Ctrl+B` works normally
|
|
242
|
+
- **SSH Sessions**: `Ctrl+B` passes through to Claude Code
|
|
243
|
+
|
|
244
|
+
## Practical Examples with Claude Code Tools
|
|
245
|
+
|
|
246
|
+
### Real-World Example: Starting a Development Server
|
|
247
|
+
|
|
248
|
+
Here's an actual example of starting and verifying a background server:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# Start Python HTTP server in background
|
|
252
|
+
User: "Start a dev server in the background"
|
|
253
|
+
|
|
254
|
+
Claude: [Uses Bash tool with run_in_background: true]
|
|
255
|
+
Command: python3 -m http.server 8080
|
|
256
|
+
Result: Command running in background with ID: bash_3
|
|
257
|
+
|
|
258
|
+
# Verify it's running
|
|
259
|
+
Claude: [Uses BashOutput tool]
|
|
260
|
+
bash_id: bash_3
|
|
261
|
+
Result:
|
|
262
|
+
<status>running</status>
|
|
263
|
+
<stderr>
|
|
264
|
+
127.0.0.1 - - [11/Aug/2025 22:18:58] "HEAD / HTTP/1.1" 200 -
|
|
265
|
+
127.0.0.1 - - [11/Aug/2025 22:19:37] "GET / HTTP/1.1" 200 -
|
|
266
|
+
</stderr>
|
|
267
|
+
|
|
268
|
+
# Test the server
|
|
269
|
+
Claude: [Uses Bash tool]
|
|
270
|
+
Command: curl http://localhost:8080
|
|
271
|
+
Result: <!DOCTYPE HTML><html>... (server is responding)
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Complete Development Workflow Example
|
|
275
|
+
|
|
276
|
+
#### Step 1: Starting Multiple Background Services
|
|
277
|
+
```
|
|
278
|
+
User: "Set up the full development environment with frontend, backend, and database"
|
|
279
|
+
|
|
280
|
+
Claude: I'll start all the development services in the background.
|
|
281
|
+
|
|
282
|
+
[Bash tool call 1]
|
|
283
|
+
command: docker-compose up postgres redis
|
|
284
|
+
run_in_background: true
|
|
285
|
+
→ Result: Command running in background with ID: bash_1
|
|
286
|
+
|
|
287
|
+
[Bash tool call 2]
|
|
288
|
+
command: npm run api
|
|
289
|
+
run_in_background: true
|
|
290
|
+
→ Result: Command running in background with ID: bash_2
|
|
291
|
+
|
|
292
|
+
[Bash tool call 3]
|
|
293
|
+
command: npm run dev
|
|
294
|
+
run_in_background: true
|
|
295
|
+
→ Result: Command running in background with ID: bash_3
|
|
296
|
+
|
|
297
|
+
All services are starting in the background. Let me check their status.
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
#### Step 2: Monitoring Service Health
|
|
301
|
+
```
|
|
302
|
+
[BashOutput tool call for bash_1]
|
|
303
|
+
bash_id: bash_1
|
|
304
|
+
→ Result:
|
|
305
|
+
<status>running</status>
|
|
306
|
+
<stdout>
|
|
307
|
+
postgres_1 | database system is ready to accept connections
|
|
308
|
+
redis_1 | Ready to accept connections
|
|
309
|
+
</stdout>
|
|
310
|
+
|
|
311
|
+
[BashOutput tool call for bash_2]
|
|
312
|
+
bash_id: bash_2
|
|
313
|
+
→ Result:
|
|
314
|
+
<status>running</status>
|
|
315
|
+
<stdout>
|
|
316
|
+
API server listening on port 4000
|
|
317
|
+
Connected to database
|
|
318
|
+
</stdout>
|
|
319
|
+
|
|
320
|
+
[BashOutput tool call for bash_3]
|
|
321
|
+
bash_id: bash_3
|
|
322
|
+
→ Result:
|
|
323
|
+
<status>running</status>
|
|
324
|
+
<stdout>
|
|
325
|
+
VITE v5.0.0 ready in 532 ms
|
|
326
|
+
➜ Local: http://localhost:5173/
|
|
327
|
+
</stdout>
|
|
328
|
+
|
|
329
|
+
All services are running successfully:
|
|
330
|
+
- Database and Redis: Ready
|
|
331
|
+
- API Server: http://localhost:4000
|
|
332
|
+
- Frontend: http://localhost:5173
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
#### Step 3: Continuous Monitoring During Development
|
|
336
|
+
```
|
|
337
|
+
User: "I'm getting an error when I click the login button"
|
|
338
|
+
|
|
339
|
+
Claude: Let me monitor the API server logs while you reproduce the issue.
|
|
340
|
+
|
|
341
|
+
[BashOutput tool call with filter]
|
|
342
|
+
bash_id: bash_2
|
|
343
|
+
filter: "error|Error|ERROR|failed"
|
|
344
|
+
→ Result:
|
|
345
|
+
<status>running</status>
|
|
346
|
+
<stdout>
|
|
347
|
+
ERROR: Authentication failed - Invalid token format
|
|
348
|
+
Error at AuthMiddleware.verify (src/middleware/auth.js:45)
|
|
349
|
+
</stdout>
|
|
350
|
+
|
|
351
|
+
I found the error! The authentication is failing due to an invalid token format at line 45 in the auth middleware.
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
#### Step 4: Cleanup
|
|
355
|
+
```
|
|
356
|
+
User: "I'm done for the day, please stop all services"
|
|
357
|
+
|
|
358
|
+
Claude: I'll stop all the running services.
|
|
359
|
+
|
|
360
|
+
[KillBash tool call 1]
|
|
361
|
+
shell_id: bash_3
|
|
362
|
+
→ Result: Successfully killed shell: bash_3 (npm run dev)
|
|
363
|
+
|
|
364
|
+
[KillBash tool call 2]
|
|
365
|
+
shell_id: bash_2
|
|
366
|
+
→ Result: Successfully killed shell: bash_2 (npm run api)
|
|
367
|
+
|
|
368
|
+
[KillBash tool call 3]
|
|
369
|
+
shell_id: bash_1
|
|
370
|
+
→ Result: Successfully killed shell: bash_1 (docker-compose up -d postgres redis)
|
|
371
|
+
|
|
372
|
+
All services have been stopped successfully.
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### Real-Time Log Monitoring Example
|
|
376
|
+
|
|
377
|
+
```
|
|
378
|
+
User: "Monitor the application logs for any errors while I test the checkout flow"
|
|
379
|
+
|
|
380
|
+
Claude: I'll start monitoring your application logs in the background and filter for errors.
|
|
381
|
+
|
|
382
|
+
[Bash tool call]
|
|
383
|
+
command: tail -f /var/log/app.log
|
|
384
|
+
run_in_background: true
|
|
385
|
+
→ Result: Command running in background with ID: bash_4
|
|
386
|
+
|
|
387
|
+
Now I'll monitor for errors while you test. Let me know when you start.
|
|
388
|
+
|
|
389
|
+
User: "Starting the checkout test now"
|
|
390
|
+
|
|
391
|
+
[BashOutput tool call - First check]
|
|
392
|
+
bash_id: bash_4
|
|
393
|
+
filter: "error|exception|failed|Error|Exception"
|
|
394
|
+
→ Result:
|
|
395
|
+
<status>running</status>
|
|
396
|
+
<stdout>
|
|
397
|
+
[2025-08-11 22:10:15] ERROR: Payment validation failed: Card expired
|
|
398
|
+
[2025-08-11 22:10:15] Exception: PaymentException at checkout.js:234
|
|
399
|
+
</stdout>
|
|
400
|
+
|
|
401
|
+
I detected a payment error - the card appears to be expired. The exception occurred at checkout.js line 234.
|
|
402
|
+
|
|
403
|
+
[BashOutput tool call - Second check]
|
|
404
|
+
bash_id: bash_4
|
|
405
|
+
filter: "error|exception|failed|Error|Exception"
|
|
406
|
+
→ Result:
|
|
407
|
+
<status>running</status>
|
|
408
|
+
<stdout>
|
|
409
|
+
[2025-08-11 22:10:45] ERROR: Inventory check failed for SKU-12345
|
|
410
|
+
[2025-08-11 22:10:45] Error: Insufficient stock (requested: 5, available: 2)
|
|
411
|
+
</stdout>
|
|
412
|
+
|
|
413
|
+
Another error: Insufficient inventory for SKU-12345. Only 2 items available but 5 were requested.
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
### Build Process Management Example
|
|
417
|
+
|
|
418
|
+
```
|
|
419
|
+
User: "Run the production build but continue working on documentation"
|
|
420
|
+
|
|
421
|
+
Claude: I'll run the production build in the background so you can continue working.
|
|
422
|
+
|
|
423
|
+
[Bash tool call]
|
|
424
|
+
command: npm run build:production
|
|
425
|
+
run_in_background: true
|
|
426
|
+
→ Result: Command running in background with ID: bash_5
|
|
427
|
+
|
|
428
|
+
The production build is running in the background. You can continue with your documentation work.
|
|
429
|
+
|
|
430
|
+
[5 minutes later...]
|
|
431
|
+
|
|
432
|
+
Let me check the build progress:
|
|
433
|
+
|
|
434
|
+
[BashOutput tool call]
|
|
435
|
+
bash_id: bash_5
|
|
436
|
+
→ Result:
|
|
437
|
+
<status>completed</status>
|
|
438
|
+
<exit_code>0</exit_code>
|
|
439
|
+
<stdout>
|
|
440
|
+
> build:production
|
|
441
|
+
> webpack --mode production
|
|
442
|
+
|
|
443
|
+
assets by status 1.2 MiB [cached] 12 assets
|
|
444
|
+
./src/index.js 523 KiB [built]
|
|
445
|
+
webpack compiled successfully in 4523 ms
|
|
446
|
+
Build completed successfully!
|
|
447
|
+
</stdout>
|
|
448
|
+
|
|
449
|
+
Great news! The production build completed successfully. The bundled assets are ready.
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
### Debugging with Background Processes
|
|
453
|
+
|
|
454
|
+
```
|
|
455
|
+
User: "The app is running slowly, can you investigate?"
|
|
456
|
+
|
|
457
|
+
Claude: I'll start monitoring system resources and application performance in the background.
|
|
458
|
+
|
|
459
|
+
[Bash tool call 1 - System monitoring]
|
|
460
|
+
command: top -b -d 2 | head -20
|
|
461
|
+
run_in_background: true
|
|
462
|
+
→ Result: Command running in background with ID: bash_6
|
|
463
|
+
|
|
464
|
+
[Bash tool call 2 - Application metrics]
|
|
465
|
+
command: npm run metrics:watch
|
|
466
|
+
run_in_background: true
|
|
467
|
+
→ Result: Command running in background with ID: bash_7
|
|
468
|
+
|
|
469
|
+
[After a moment, checking both]
|
|
470
|
+
|
|
471
|
+
[BashOutput tool call for bash_6]
|
|
472
|
+
bash_id: bash_6
|
|
473
|
+
→ Result:
|
|
474
|
+
<status>running</status>
|
|
475
|
+
<stdout>
|
|
476
|
+
CPU: 87% - node (PID 12345)
|
|
477
|
+
Memory: 2.3GB / 4GB
|
|
478
|
+
Load average: 3.45, 2.89, 2.10
|
|
479
|
+
</stdout>
|
|
480
|
+
|
|
481
|
+
[BashOutput tool call for bash_7]
|
|
482
|
+
bash_id: bash_7
|
|
483
|
+
filter: "slow|timeout|bottleneck"
|
|
484
|
+
→ Result:
|
|
485
|
+
<status>running</status>
|
|
486
|
+
<stdout>
|
|
487
|
+
SLOW QUERY: SELECT * FROM orders (2.3s)
|
|
488
|
+
BOTTLENECK: Database connection pool exhausted
|
|
489
|
+
TIMEOUT: Redis connection timeout after 5000ms
|
|
490
|
+
</stdout>
|
|
491
|
+
|
|
492
|
+
I found the issues:
|
|
493
|
+
1. High CPU usage (87%) from the Node process
|
|
494
|
+
2. Slow database query taking 2.3 seconds
|
|
495
|
+
3. Database connection pool is exhausted
|
|
496
|
+
4. Redis connection timeouts
|
|
497
|
+
|
|
498
|
+
The main bottleneck appears to be database-related.
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
## Common Use Cases and Commands
|
|
502
|
+
|
|
503
|
+
### Development Servers
|
|
504
|
+
|
|
505
|
+
#### Node.js/NPM
|
|
506
|
+
```bash
|
|
507
|
+
# Vite/React/Vue development servers
|
|
508
|
+
npm run dev # run_in_background: true
|
|
509
|
+
npm run serve # run_in_background: true
|
|
510
|
+
yarn dev # run_in_background: true
|
|
511
|
+
pnpm dev # run_in_background: true
|
|
512
|
+
|
|
513
|
+
# Watch modes
|
|
514
|
+
npm run watch # run_in_background: true
|
|
515
|
+
npm run build:watch # run_in_background: true
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
#### Python
|
|
519
|
+
```bash
|
|
520
|
+
# Django development server
|
|
521
|
+
python manage.py runserver # run_in_background: true
|
|
522
|
+
python manage.py runserver 0.0.0.0:8000 # run_in_background: true
|
|
523
|
+
|
|
524
|
+
# Flask development server
|
|
525
|
+
flask run # run_in_background: true
|
|
526
|
+
flask run --host=0.0.0.0 --port=5000 # run_in_background: true
|
|
527
|
+
|
|
528
|
+
# FastAPI with uvicorn
|
|
529
|
+
uvicorn main:app --reload # run_in_background: true
|
|
530
|
+
uvicorn main:app --host 0.0.0.0 --port 8000 --reload # run_in_background: true
|
|
531
|
+
|
|
532
|
+
# Simple HTTP server
|
|
533
|
+
python3 -m http.server 8080 # run_in_background: true
|
|
534
|
+
python -m SimpleHTTPServer 8000 # run_in_background: true (Python 2)
|
|
535
|
+
```
|
|
536
|
+
|
|
537
|
+
#### Docker Services
|
|
538
|
+
```bash
|
|
539
|
+
# Docker compose
|
|
540
|
+
docker-compose up # run_in_background: true
|
|
541
|
+
docker-compose up postgres redis # run_in_background: true
|
|
542
|
+
docker-compose up -d # Already daemonized, but can still use background
|
|
543
|
+
|
|
544
|
+
# Individual containers
|
|
545
|
+
docker run -p 5432:5432 postgres # run_in_background: true
|
|
546
|
+
docker run -p 6379:6379 redis # run_in_background: true
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
#### Other Languages
|
|
550
|
+
```bash
|
|
551
|
+
# Ruby on Rails
|
|
552
|
+
rails server # run_in_background: true
|
|
553
|
+
bundle exec rails s # run_in_background: true
|
|
554
|
+
|
|
555
|
+
# PHP built-in server
|
|
556
|
+
php -S localhost:8000 # run_in_background: true
|
|
557
|
+
php artisan serve # run_in_background: true (Laravel)
|
|
558
|
+
|
|
559
|
+
# Go
|
|
560
|
+
go run main.go # run_in_background: true
|
|
561
|
+
air # run_in_background: true (hot reload)
|
|
562
|
+
|
|
563
|
+
# Rust
|
|
564
|
+
cargo run # run_in_background: true
|
|
565
|
+
cargo watch -x run # run_in_background: true
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
### Watch Processes
|
|
569
|
+
```bash
|
|
570
|
+
# Webpack watch mode
|
|
571
|
+
webpack --watch # run_in_background: true
|
|
572
|
+
|
|
573
|
+
# TypeScript compiler watch
|
|
574
|
+
tsc --watch # run_in_background: true
|
|
575
|
+
|
|
576
|
+
# Nodemon for auto-restart
|
|
577
|
+
nodemon server.js # run_in_background: true
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
### Log Monitoring
|
|
581
|
+
```bash
|
|
582
|
+
# Tail application logs
|
|
583
|
+
tail -f /var/log/app.log # run_in_background: true
|
|
584
|
+
|
|
585
|
+
# Journal logs
|
|
586
|
+
journalctl -f -u myservice # run_in_background: true
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
### Build Processes
|
|
590
|
+
```bash
|
|
591
|
+
# Long-running builds
|
|
592
|
+
npm run build:production # run_in_background: true
|
|
593
|
+
|
|
594
|
+
# Docker image builds
|
|
595
|
+
docker build -t myapp . # run_in_background: true
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
## Integration with Claude-Flow
|
|
599
|
+
|
|
600
|
+
### Automatic Background Detection
|
|
601
|
+
|
|
602
|
+
Claude-Flow can be enhanced to automatically detect and run certain commands in the background:
|
|
603
|
+
|
|
604
|
+
#### Pattern-Based Detection
|
|
605
|
+
Commands matching these patterns could automatically use background execution:
|
|
606
|
+
- `npm run dev`, `yarn start`, `pnpm dev`
|
|
607
|
+
- `python manage.py runserver`, `flask run`, `uvicorn`
|
|
608
|
+
- `docker-compose up`, `docker run`
|
|
609
|
+
- `webpack --watch`, `parcel watch`
|
|
610
|
+
- Any command with `--watch` or `-w` flags
|
|
611
|
+
|
|
612
|
+
#### Configuration
|
|
613
|
+
Add to `.claude/settings.json`:
|
|
614
|
+
```json
|
|
615
|
+
{
|
|
616
|
+
"autoBackground": {
|
|
617
|
+
"enabled": true,
|
|
618
|
+
"patterns": [
|
|
619
|
+
"npm run dev",
|
|
620
|
+
"yarn start",
|
|
621
|
+
"docker-compose up",
|
|
622
|
+
"*--watch*",
|
|
623
|
+
"tail -f *"
|
|
624
|
+
],
|
|
625
|
+
"excludePatterns": [
|
|
626
|
+
"npm test",
|
|
627
|
+
"npm run build"
|
|
628
|
+
]
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
## Automatic Background Execution in Prompts
|
|
634
|
+
|
|
635
|
+
### Direct Prompt Instructions
|
|
636
|
+
|
|
637
|
+
You can instruct Claude to use background execution directly in your prompts:
|
|
638
|
+
|
|
639
|
+
#### Example Prompts
|
|
640
|
+
```markdown
|
|
641
|
+
# Explicit background instruction
|
|
642
|
+
"Start the development server in the background using run_in_background parameter"
|
|
643
|
+
|
|
644
|
+
# Implicit background request
|
|
645
|
+
"Launch the dev server and continue working on the API endpoints"
|
|
646
|
+
(Claude will recognize the need for background execution)
|
|
647
|
+
|
|
648
|
+
# Multiple background tasks
|
|
649
|
+
"Set up the full development environment:
|
|
650
|
+
- Start the frontend dev server in background
|
|
651
|
+
- Run the API server in background
|
|
652
|
+
- Launch the database container in background
|
|
653
|
+
Then start implementing the user authentication"
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
### System Prompts for Agents
|
|
657
|
+
|
|
658
|
+
Configure agents to automatically use background execution:
|
|
659
|
+
|
|
660
|
+
```markdown
|
|
661
|
+
## Agent System Prompt Example
|
|
662
|
+
You are a development assistant. When executing commands:
|
|
663
|
+
1. ALWAYS run development servers with run_in_background: true
|
|
664
|
+
2. ALWAYS run watch processes in the background
|
|
665
|
+
3. For any command that includes 'dev', 'watch', 'serve', or 'monitor', use background execution
|
|
666
|
+
4. Monitor background tasks and report issues
|
|
667
|
+
5. Clean up background tasks when switching contexts
|
|
668
|
+
|
|
669
|
+
Special handling:
|
|
670
|
+
- npm run dev → always background
|
|
671
|
+
- docker-compose up → always background
|
|
672
|
+
- build commands → foreground unless they exceed 30 seconds
|
|
673
|
+
- test commands → always foreground for immediate feedback
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
### CLAUDE.md Configuration
|
|
677
|
+
|
|
678
|
+
Add to your project's `CLAUDE.md` file to ensure automatic background execution:
|
|
679
|
+
|
|
680
|
+
```markdown
|
|
681
|
+
# Project Development Guidelines
|
|
682
|
+
|
|
683
|
+
## Command Execution Rules
|
|
684
|
+
|
|
685
|
+
### Always Run in Background:
|
|
686
|
+
- `npm run dev` - Frontend development server
|
|
687
|
+
- `npm run api` - API development server
|
|
688
|
+
- `docker-compose up` - Local services
|
|
689
|
+
- `npm run watch` - File watcher
|
|
690
|
+
- Any command with --watch flag
|
|
691
|
+
|
|
692
|
+
### Background Monitoring:
|
|
693
|
+
After starting background tasks, periodically check their status using BashOutput.
|
|
694
|
+
Alert if any background task fails or stops unexpectedly.
|
|
695
|
+
|
|
696
|
+
### Example Workflow:
|
|
697
|
+
1. Start dev server in background: npm run dev (use run_in_background: true)
|
|
698
|
+
2. Monitor output: Check with BashOutput every 30 seconds
|
|
699
|
+
3. Continue with other tasks while server runs
|
|
700
|
+
4. Clean up: Use KillBash when done
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
### Prompt Templates
|
|
704
|
+
|
|
705
|
+
#### Development Setup Template
|
|
706
|
+
```markdown
|
|
707
|
+
Set up the development environment:
|
|
708
|
+
1. Run 'npm install' (foreground)
|
|
709
|
+
2. Start 'npm run dev' with run_in_background: true
|
|
710
|
+
3. Start 'npm run api' with run_in_background: true
|
|
711
|
+
4. Monitor both background tasks for successful startup
|
|
712
|
+
5. Once confirmed running, proceed with [MAIN TASK]
|
|
713
|
+
```
|
|
714
|
+
|
|
715
|
+
#### Debugging Template
|
|
716
|
+
```markdown
|
|
717
|
+
Debug the application issue:
|
|
718
|
+
1. Start the app in background with verbose logging:
|
|
719
|
+
DEBUG=* npm run dev (use run_in_background: true)
|
|
720
|
+
2. Monitor the output using BashOutput with filter for "error|warning"
|
|
721
|
+
3. Reproduce the issue while monitoring logs
|
|
722
|
+
4. Analyze the filtered output for problems
|
|
723
|
+
```
|
|
724
|
+
|
|
725
|
+
### Agent-Specific Background Strategies
|
|
726
|
+
|
|
727
|
+
#### DevOps Agent
|
|
728
|
+
```javascript
|
|
729
|
+
// Agent configuration
|
|
730
|
+
{
|
|
731
|
+
"name": "DevOps Agent",
|
|
732
|
+
"autoBackground": {
|
|
733
|
+
"rules": [
|
|
734
|
+
{ "pattern": "docker*", "background": true },
|
|
735
|
+
{ "pattern": "*compose*", "background": true },
|
|
736
|
+
{ "pattern": "kubectl logs -f", "background": true },
|
|
737
|
+
{ "pattern": "terraform apply", "background": false },
|
|
738
|
+
{ "pattern": "*--watch*", "background": true }
|
|
739
|
+
]
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
#### QA Testing Agent
|
|
745
|
+
```javascript
|
|
746
|
+
{
|
|
747
|
+
"name": "QA Agent",
|
|
748
|
+
"autoBackground": {
|
|
749
|
+
"rules": [
|
|
750
|
+
{ "pattern": "cypress open", "background": true },
|
|
751
|
+
{ "pattern": "jest --watch", "background": true },
|
|
752
|
+
{ "pattern": "npm test", "background": false },
|
|
753
|
+
{ "pattern": "playwright test", "background": false }
|
|
754
|
+
]
|
|
755
|
+
}
|
|
756
|
+
}
|
|
757
|
+
```
|
|
758
|
+
|
|
759
|
+
### Swarm Coordination
|
|
760
|
+
|
|
761
|
+
When using Claude-Flow's hive-mind system:
|
|
762
|
+
|
|
763
|
+
```bash
|
|
764
|
+
# Spawn specialized background monitor agent
|
|
765
|
+
npx claude-flow hive-mind spawn "background-monitor" \
|
|
766
|
+
--role "Monitor and manage all background processes" \
|
|
767
|
+
--instructions "
|
|
768
|
+
1. Track all background tasks
|
|
769
|
+
2. Alert on failures
|
|
770
|
+
3. Restart crashed services
|
|
771
|
+
4. Report resource usage
|
|
772
|
+
5. Use run_in_background for all monitoring commands
|
|
773
|
+
"
|
|
774
|
+
|
|
775
|
+
# Main development agent with background awareness
|
|
776
|
+
npx claude-flow hive-mind spawn "full-stack-dev" \
|
|
777
|
+
--role "Develop features while services run in background" \
|
|
778
|
+
--instructions "
|
|
779
|
+
Start all development servers in background:
|
|
780
|
+
- Frontend: npm run dev (background)
|
|
781
|
+
- Backend: npm run api (background)
|
|
782
|
+
- Database: docker-compose up db (background)
|
|
783
|
+
Then focus on feature implementation
|
|
784
|
+
"
|
|
785
|
+
```
|
|
786
|
+
|
|
787
|
+
### Workflow Automation
|
|
788
|
+
|
|
789
|
+
Create automated workflows that leverage background execution:
|
|
790
|
+
|
|
791
|
+
```yaml
|
|
792
|
+
# .claude/workflows/dev-setup.yaml
|
|
793
|
+
name: Development Setup
|
|
794
|
+
steps:
|
|
795
|
+
- name: Install Dependencies
|
|
796
|
+
command: npm install
|
|
797
|
+
background: false
|
|
798
|
+
|
|
799
|
+
- name: Start Frontend
|
|
800
|
+
command: npm run dev
|
|
801
|
+
background: true
|
|
802
|
+
monitor: true
|
|
803
|
+
|
|
804
|
+
- name: Start Backend
|
|
805
|
+
command: npm run api
|
|
806
|
+
background: true
|
|
807
|
+
monitor: true
|
|
808
|
+
|
|
809
|
+
- name: Start Database
|
|
810
|
+
command: docker-compose up db
|
|
811
|
+
background: true
|
|
812
|
+
monitor: true
|
|
813
|
+
|
|
814
|
+
- name: Wait for Services
|
|
815
|
+
command: npx wait-on http://localhost:3000 http://localhost:4000
|
|
816
|
+
background: false
|
|
817
|
+
|
|
818
|
+
- name: Run Migrations
|
|
819
|
+
command: npm run migrate
|
|
820
|
+
background: false
|
|
821
|
+
depends_on: [Start Database]
|
|
822
|
+
```
|
|
823
|
+
|
|
824
|
+
### Smart Command Wrapper
|
|
825
|
+
|
|
826
|
+
Create a command wrapper that automatically determines background execution:
|
|
827
|
+
|
|
828
|
+
```javascript
|
|
829
|
+
// .claude/scripts/smart-exec.js
|
|
830
|
+
const BACKGROUND_PATTERNS = [
|
|
831
|
+
/^npm run (dev|watch|serve)/,
|
|
832
|
+
/^yarn (dev|watch|start)/,
|
|
833
|
+
/^pnpm (dev|watch|serve)/,
|
|
834
|
+
/docker-compose up/,
|
|
835
|
+
/--watch/,
|
|
836
|
+
/webpack.*watch/,
|
|
837
|
+
/nodemon/,
|
|
838
|
+
/^ng serve/,
|
|
839
|
+
/^vue-cli-service serve/,
|
|
840
|
+
/^next dev/,
|
|
841
|
+
/^nuxt dev/,
|
|
842
|
+
/python.*runserver/,
|
|
843
|
+
/flask run/,
|
|
844
|
+
/uvicorn.*--reload/,
|
|
845
|
+
/tail -f/,
|
|
846
|
+
/journalctl.*-f/
|
|
847
|
+
];
|
|
848
|
+
|
|
849
|
+
function shouldRunInBackground(command) {
|
|
850
|
+
return BACKGROUND_PATTERNS.some(pattern => pattern.test(command));
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
// Export for Claude-Flow integration
|
|
854
|
+
module.exports = { shouldRunInBackground };
|
|
855
|
+
```
|
|
856
|
+
|
|
857
|
+
### Context-Aware Background Decisions
|
|
858
|
+
|
|
859
|
+
Teach Claude to make intelligent background decisions:
|
|
860
|
+
|
|
861
|
+
```markdown
|
|
862
|
+
## Intelligent Background Execution Rules
|
|
863
|
+
|
|
864
|
+
### Analyze Command Intent:
|
|
865
|
+
1. **Development/Watch Commands** → Always background
|
|
866
|
+
- Contains: dev, watch, serve, monitor
|
|
867
|
+
- Purpose: Long-running observation
|
|
868
|
+
|
|
869
|
+
2. **Build Commands** → Conditional
|
|
870
|
+
- If estimated >30 seconds → background
|
|
871
|
+
- If <30 seconds → foreground
|
|
872
|
+
|
|
873
|
+
3. **Test Commands** → Usually foreground
|
|
874
|
+
- Exception: --watch mode → background
|
|
875
|
+
- CI/CD tests → foreground for immediate results
|
|
876
|
+
|
|
877
|
+
4. **Data Processing** → Analyze scope
|
|
878
|
+
- Large datasets → background
|
|
879
|
+
- Quick queries → foreground
|
|
880
|
+
|
|
881
|
+
### Multi-Step Workflows:
|
|
882
|
+
When executing multiple related commands:
|
|
883
|
+
1. Preparation steps (install, build) → foreground
|
|
884
|
+
2. Services (servers, databases) → background
|
|
885
|
+
3. Monitoring (logs, metrics) → background
|
|
886
|
+
4. Actions (migrations, seeds) → foreground
|
|
887
|
+
5. Cleanup → foreground
|
|
888
|
+
|
|
889
|
+
### Example Decision Tree:
|
|
890
|
+
```
|
|
891
|
+
Is it a server/service? → YES → Background
|
|
892
|
+
Is it watching files? → YES → Background
|
|
893
|
+
Will it block further work? → YES → Background
|
|
894
|
+
Do I need immediate output? → NO → Background
|
|
895
|
+
Is it a one-time command? → YES → Foreground
|
|
896
|
+
Default → Foreground
|
|
897
|
+
```
|
|
898
|
+
```
|
|
899
|
+
|
|
900
|
+
### Hook System Integration
|
|
901
|
+
|
|
902
|
+
#### Pre-Command Hook
|
|
903
|
+
```bash
|
|
904
|
+
npx claude-flow hooks pre-command \
|
|
905
|
+
--analyze-for-background \
|
|
906
|
+
--auto-background-threshold 30
|
|
907
|
+
```
|
|
908
|
+
|
|
909
|
+
#### Background Monitor Hook
|
|
910
|
+
```bash
|
|
911
|
+
npx claude-flow hooks background-monitor \
|
|
912
|
+
--check-interval 10 \
|
|
913
|
+
--alert-on-failure
|
|
914
|
+
```
|
|
915
|
+
|
|
916
|
+
### MCP Tool Extensions
|
|
917
|
+
|
|
918
|
+
Potential new MCP tools for Claude-Flow:
|
|
919
|
+
|
|
920
|
+
1. **background_spawn**
|
|
921
|
+
- Intelligently spawns commands in background
|
|
922
|
+
- Manages resource allocation
|
|
923
|
+
- Tracks process lifecycle
|
|
924
|
+
|
|
925
|
+
2. **background_monitor**
|
|
926
|
+
- Real-time monitoring dashboard
|
|
927
|
+
- Resource usage tracking
|
|
928
|
+
- Automatic restart on failure
|
|
929
|
+
|
|
930
|
+
3. **background_orchestrate**
|
|
931
|
+
- Manages multiple background processes
|
|
932
|
+
- Dependencies between processes
|
|
933
|
+
- Graceful shutdown sequences
|
|
934
|
+
|
|
935
|
+
## Managing Background Tasks
|
|
936
|
+
|
|
937
|
+
### Checking Task Status
|
|
938
|
+
|
|
939
|
+
#### Using /bashes Command
|
|
940
|
+
```bash
|
|
941
|
+
# Interactive mode - see all background shells
|
|
942
|
+
/bashes
|
|
943
|
+
|
|
944
|
+
# Output shows:
|
|
945
|
+
# - Shell ID (bash_1, bash_2, etc.)
|
|
946
|
+
# - Command that was run
|
|
947
|
+
# - Status (running/completed/killed)
|
|
948
|
+
# - Runtime and exit codes
|
|
949
|
+
```
|
|
950
|
+
|
|
951
|
+
#### Programmatic Status Checks
|
|
952
|
+
```bash
|
|
953
|
+
# Ask Claude to check specific shell
|
|
954
|
+
"Check the status of bash_3"
|
|
955
|
+
|
|
956
|
+
# Ask for all background tasks
|
|
957
|
+
"Show me all running background tasks"
|
|
958
|
+
|
|
959
|
+
# Get detailed output from specific shell
|
|
960
|
+
"Show me the output from bash_3"
|
|
961
|
+
```
|
|
962
|
+
|
|
963
|
+
### Monitoring Output
|
|
964
|
+
|
|
965
|
+
#### Real-time Monitoring Pattern
|
|
966
|
+
```bash
|
|
967
|
+
# Start a task
|
|
968
|
+
"Run npm run dev in background"
|
|
969
|
+
→ Returns: bash_1
|
|
970
|
+
|
|
971
|
+
# Check output periodically
|
|
972
|
+
"Check bash_1 output"
|
|
973
|
+
→ Shows new output since last check
|
|
974
|
+
|
|
975
|
+
# Filter for errors
|
|
976
|
+
"Check bash_1 for any errors"
|
|
977
|
+
→ Claude uses filter parameter in BashOutput
|
|
978
|
+
```
|
|
979
|
+
|
|
980
|
+
#### Output Management
|
|
981
|
+
```bash
|
|
982
|
+
# BashOutput only returns NEW output since last check
|
|
983
|
+
# This prevents overwhelming output from long-running tasks
|
|
984
|
+
|
|
985
|
+
# Example workflow:
|
|
986
|
+
1. Start server → bash_1
|
|
987
|
+
2. First check → Shows startup logs
|
|
988
|
+
3. Second check → Shows only new requests
|
|
989
|
+
4. Third check → Shows only newest activity
|
|
990
|
+
```
|
|
991
|
+
|
|
992
|
+
### Killing Background Tasks
|
|
993
|
+
|
|
994
|
+
#### Methods to Kill Tasks
|
|
995
|
+
```bash
|
|
996
|
+
# Method 1: Using /bashes interactive menu
|
|
997
|
+
/bashes
|
|
998
|
+
→ Select shell with arrow keys
|
|
999
|
+
→ Press 'k' to kill
|
|
1000
|
+
|
|
1001
|
+
# Method 2: Direct request to Claude
|
|
1002
|
+
"Kill bash_3"
|
|
1003
|
+
"Stop the npm dev server"
|
|
1004
|
+
"Kill all background tasks"
|
|
1005
|
+
|
|
1006
|
+
# Method 3: Specific pattern matching
|
|
1007
|
+
"Kill the task running on port 8080"
|
|
1008
|
+
"Stop all docker containers running in background"
|
|
1009
|
+
```
|
|
1010
|
+
|
|
1011
|
+
## Best Practices
|
|
1012
|
+
|
|
1013
|
+
### 1. **Shell ID Management**
|
|
1014
|
+
```bash
|
|
1015
|
+
# Always capture the shell ID when starting background tasks
|
|
1016
|
+
"Start the server in background and tell me the shell ID"
|
|
1017
|
+
→ "Command running in background with ID: bash_1"
|
|
1018
|
+
|
|
1019
|
+
# Keep track of what each ID is running
|
|
1020
|
+
bash_1: npm run dev (frontend)
|
|
1021
|
+
bash_2: npm run api (backend)
|
|
1022
|
+
bash_3: docker-compose up (database)
|
|
1023
|
+
```
|
|
1024
|
+
|
|
1025
|
+
### 2. **Resource Management**
|
|
1026
|
+
- Monitor CPU and memory usage of background tasks
|
|
1027
|
+
- Set timeouts for long-running processes
|
|
1028
|
+
- Limit the number of concurrent background tasks
|
|
1029
|
+
- Kill idle or stuck processes
|
|
1030
|
+
|
|
1031
|
+
### 3. **Error Handling**
|
|
1032
|
+
```bash
|
|
1033
|
+
# Regular status checks
|
|
1034
|
+
"Check if bash_1 is still running"
|
|
1035
|
+
|
|
1036
|
+
# Monitor for errors
|
|
1037
|
+
"Check bash_1 output for errors or warnings"
|
|
1038
|
+
|
|
1039
|
+
# Automatic restart pattern
|
|
1040
|
+
"If bash_1 has stopped, restart npm run dev in background"
|
|
1041
|
+
```
|
|
1042
|
+
|
|
1043
|
+
### 4. **Session Cleanup**
|
|
1044
|
+
```bash
|
|
1045
|
+
# Before ending session
|
|
1046
|
+
"Kill all background tasks"
|
|
1047
|
+
|
|
1048
|
+
# Or selectively
|
|
1049
|
+
"Kill bash_1 and bash_2 but keep bash_3 running"
|
|
1050
|
+
|
|
1051
|
+
# Verify cleanup
|
|
1052
|
+
/bashes # Should show no running tasks
|
|
1053
|
+
```
|
|
1054
|
+
|
|
1055
|
+
### 5. **Output Management**
|
|
1056
|
+
- Use filters to find specific patterns
|
|
1057
|
+
- Check output periodically, not continuously
|
|
1058
|
+
- Clear completed tasks from /bashes view
|
|
1059
|
+
- Use structured logging when possible
|
|
1060
|
+
|
|
1061
|
+
## Advanced Features
|
|
1062
|
+
|
|
1063
|
+
### Session Persistence
|
|
1064
|
+
|
|
1065
|
+
Background tasks **automatically persist** across Claude Code sessions. No special commands needed!
|
|
1066
|
+
|
|
1067
|
+
```bash
|
|
1068
|
+
# Start tasks in one session
|
|
1069
|
+
claude
|
|
1070
|
+
> Run npm run dev in background # → bash_1
|
|
1071
|
+
> Run docker-compose up in background # → bash_2
|
|
1072
|
+
> Exit
|
|
1073
|
+
|
|
1074
|
+
# Resume later - tasks still running!
|
|
1075
|
+
claude --continue
|
|
1076
|
+
> Check bash_1 output # Dev server still running
|
|
1077
|
+
> Check bash_2 status # Docker still up
|
|
1078
|
+
```
|
|
1079
|
+
|
|
1080
|
+
**Key Features:**
|
|
1081
|
+
- Background processes keep running after you exit Claude
|
|
1082
|
+
- Shell IDs (bash_1, bash_2, etc.) are preserved
|
|
1083
|
+
- Output positions tracked for incremental reading
|
|
1084
|
+
- Use `--continue` or `--resume` to reconnect
|
|
1085
|
+
|
|
1086
|
+
For complete details, see [Session Persistence Guide](./session-persistence.md).
|
|
1087
|
+
|
|
1088
|
+
### Task Orchestration
|
|
1089
|
+
Coordinate multiple background tasks:
|
|
1090
|
+
```bash
|
|
1091
|
+
# Start development environment
|
|
1092
|
+
npx claude-flow orchestrate dev-env \
|
|
1093
|
+
--background "npm run dev" \
|
|
1094
|
+
--background "npm run api" \
|
|
1095
|
+
--background "docker-compose up db" \
|
|
1096
|
+
--wait-healthy
|
|
1097
|
+
```
|
|
1098
|
+
|
|
1099
|
+
### Intelligent Monitoring
|
|
1100
|
+
```bash
|
|
1101
|
+
# Smart monitoring with alerts
|
|
1102
|
+
npx claude-flow monitor \
|
|
1103
|
+
--background-tasks \
|
|
1104
|
+
--alert-on "error|failed|exception" \
|
|
1105
|
+
--restart-on-failure
|
|
1106
|
+
```
|
|
1107
|
+
|
|
1108
|
+
## Troubleshooting
|
|
1109
|
+
|
|
1110
|
+
### Common Issues
|
|
1111
|
+
|
|
1112
|
+
1. **Task not starting in background**
|
|
1113
|
+
- Verify `run_in_background: true` is set
|
|
1114
|
+
- Check for shell compatibility
|
|
1115
|
+
- Ensure command doesn't require interactive input
|
|
1116
|
+
|
|
1117
|
+
2. **Cannot retrieve output**
|
|
1118
|
+
- Verify correct bash_id
|
|
1119
|
+
- Check if task is still running
|
|
1120
|
+
- Look for buffering issues (use unbuffered output)
|
|
1121
|
+
|
|
1122
|
+
3. **Task won't terminate**
|
|
1123
|
+
- Use force kill if graceful shutdown fails
|
|
1124
|
+
- Check for child processes
|
|
1125
|
+
- Verify signal handling in application
|
|
1126
|
+
|
|
1127
|
+
### Debug Commands
|
|
1128
|
+
|
|
1129
|
+
#### Interactive Shell Management
|
|
1130
|
+
|
|
1131
|
+
**The `/bashes` command** provides an interactive interface for managing background shells:
|
|
1132
|
+
|
|
1133
|
+
```bash
|
|
1134
|
+
# In Claude Code interactive mode, type:
|
|
1135
|
+
/bashes
|
|
1136
|
+
|
|
1137
|
+
# This opens an interactive menu showing:
|
|
1138
|
+
# - All running and completed background shells
|
|
1139
|
+
# - Shell IDs, commands, and status
|
|
1140
|
+
# - Runtime information and exit codes
|
|
1141
|
+
```
|
|
1142
|
+
|
|
1143
|
+
**Interactive Controls:**
|
|
1144
|
+
- **↑/↓**: Navigate between shells
|
|
1145
|
+
- **Enter**: View detailed output for selected shell
|
|
1146
|
+
- **k**: Kill the selected running shell
|
|
1147
|
+
- **Esc**: Exit the menu
|
|
1148
|
+
|
|
1149
|
+
#### Programmatic Management
|
|
1150
|
+
|
|
1151
|
+
For programmatic control, use Claude Code's tool system:
|
|
1152
|
+
|
|
1153
|
+
```bash
|
|
1154
|
+
# Check output of a specific background task
|
|
1155
|
+
# Use the BashOutput tool with the bash_id
|
|
1156
|
+
|
|
1157
|
+
# Kill a specific background task
|
|
1158
|
+
# Use the KillBash tool with the shell_id
|
|
1159
|
+
|
|
1160
|
+
# Monitor background tasks
|
|
1161
|
+
# Use the BashOutput tool periodically to check status
|
|
1162
|
+
```
|
|
1163
|
+
|
|
1164
|
+
**Note:** The `/bashes` command is only available in interactive mode. For scripts and automation, use the BashOutput and KillBash tools through Claude's tool system.
|
|
1165
|
+
|
|
1166
|
+
## Performance Considerations
|
|
1167
|
+
|
|
1168
|
+
### Memory Usage
|
|
1169
|
+
- Background tasks consume memory independently
|
|
1170
|
+
- Monitor total system memory usage
|
|
1171
|
+
- Implement memory limits per task
|
|
1172
|
+
|
|
1173
|
+
### CPU Usage
|
|
1174
|
+
- Background tasks run concurrently
|
|
1175
|
+
- May impact main Claude Code performance
|
|
1176
|
+
- Consider nice levels for low-priority tasks
|
|
1177
|
+
|
|
1178
|
+
### I/O Considerations
|
|
1179
|
+
- Background tasks share disk I/O
|
|
1180
|
+
- Network bandwidth may be impacted
|
|
1181
|
+
- Consider rate limiting for resource-intensive tasks
|
|
1182
|
+
|
|
1183
|
+
## Future Enhancements
|
|
1184
|
+
|
|
1185
|
+
### Planned Features
|
|
1186
|
+
1. **Auto-detection of long-running commands**
|
|
1187
|
+
2. **Smart resource allocation**
|
|
1188
|
+
3. **Background task templates**
|
|
1189
|
+
4. **Cross-session task migration**
|
|
1190
|
+
5. **Distributed background execution**
|
|
1191
|
+
|
|
1192
|
+
### Community Requests
|
|
1193
|
+
- Visual task manager UI
|
|
1194
|
+
- Task dependency graphs
|
|
1195
|
+
- Automatic restart policies
|
|
1196
|
+
- Integration with container orchestration
|
|
1197
|
+
- Background task marketplace
|
|
1198
|
+
|
|
1199
|
+
## Related Documentation
|
|
1200
|
+
|
|
1201
|
+
- [Claude Code Bash Tool Documentation](./bash-tool.md)
|
|
1202
|
+
- [Claude-Flow Hooks System](./hooks-system.md)
|
|
1203
|
+
- [MCP Tools Reference](./mcp-tools.md)
|
|
1204
|
+
- [Session Management](./session-management.md)
|
|
1205
|
+
|
|
1206
|
+
## Examples Repository
|
|
1207
|
+
|
|
1208
|
+
Find more examples at: [claude-flow-examples/background-tasks](https://github.com/ruvnet/claude-flow-examples/tree/main/background-tasks)
|
|
1209
|
+
|
|
1210
|
+
---
|
|
1211
|
+
|
|
1212
|
+
*Last updated: August 2025*
|
|
1213
|
+
*Claude-Flow Version: 2.0.0-alpha*
|