vibe-forge 0.3.12 → 0.8.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.
Files changed (85) hide show
  1. package/.claude/commands/clear-attention.md +63 -63
  2. package/.claude/commands/compact-context.md +52 -0
  3. package/.claude/commands/configure-vcs.md +102 -0
  4. package/.claude/commands/forge.md +218 -171
  5. package/.claude/commands/need-help.md +77 -77
  6. package/.claude/commands/update-status.md +64 -64
  7. package/.claude/commands/worker-loop.md +106 -106
  8. package/.claude/hooks/worker-loop.js +217 -0
  9. package/.claude/scripts/setup-worker-loop.sh +45 -45
  10. package/.claude/settings.json +89 -0
  11. package/LICENSE +21 -21
  12. package/README.md +253 -230
  13. package/agents/aegis/personality.md +303 -269
  14. package/agents/anvil/personality.md +278 -211
  15. package/agents/architect/personality.md +260 -0
  16. package/agents/crucible/personality.md +362 -285
  17. package/agents/crucible-x/personality.md +210 -0
  18. package/agents/ember/personality.md +293 -245
  19. package/agents/flux/personality.md +248 -0
  20. package/agents/furnace/personality.md +342 -262
  21. package/agents/herald/personality.md +249 -247
  22. package/agents/loki/personality.md +108 -0
  23. package/agents/oracle/personality.md +284 -0
  24. package/agents/pixel/personality.md +140 -0
  25. package/agents/planning-hub/personality.md +473 -251
  26. package/agents/scribe/personality.md +253 -231
  27. package/agents/slag/personality.md +268 -0
  28. package/agents/temper/personality.md +270 -0
  29. package/bin/cli.js +372 -325
  30. package/bin/dashboard/api/agents.js +333 -0
  31. package/bin/dashboard/api/dispatch.js +507 -0
  32. package/bin/dashboard/api/tasks.js +416 -0
  33. package/bin/dashboard/public/assets/index-BpHfsx1r.js +2 -0
  34. package/bin/dashboard/public/assets/index-QODv4Zn9.css +1 -0
  35. package/bin/dashboard/public/index.html +14 -0
  36. package/bin/dashboard/server.js +645 -0
  37. package/bin/forge-daemon.sh +477 -775
  38. package/bin/forge-setup.sh +661 -532
  39. package/bin/forge-spawn.sh +164 -159
  40. package/bin/forge.cmd +83 -83
  41. package/bin/forge.sh +566 -393
  42. package/bin/lib/agents.sh +177 -177
  43. package/bin/lib/check-aliases.js +50 -0
  44. package/bin/lib/colors.sh +44 -44
  45. package/bin/lib/config.sh +347 -271
  46. package/bin/lib/constants.sh +241 -171
  47. package/bin/lib/daemon/budgets.sh +107 -0
  48. package/bin/lib/daemon/dependencies.sh +146 -0
  49. package/bin/lib/daemon/display.sh +128 -0
  50. package/bin/lib/daemon/notifications.sh +273 -0
  51. package/bin/lib/daemon/routing.sh +93 -0
  52. package/bin/lib/daemon/state.sh +163 -0
  53. package/bin/lib/daemon/sync.sh +103 -0
  54. package/bin/lib/database.sh +357 -224
  55. package/bin/lib/frontmatter.js +106 -0
  56. package/bin/lib/heimdall-setup.js +113 -0
  57. package/bin/lib/heimdall.js +265 -0
  58. package/bin/lib/json.sh +264 -0
  59. package/bin/lib/terminal.js +452 -0
  60. package/bin/lib/util.sh +126 -0
  61. package/bin/lib/vcs.js +349 -0
  62. package/config/agent-manifest.yaml +237 -230
  63. package/config/agents.json +207 -85
  64. package/config/task-template.md +159 -87
  65. package/config/task-types.yaml +111 -106
  66. package/config/templates/handoff-template.md +40 -0
  67. package/context/agent-overrides/README.md +41 -0
  68. package/context/architecture.md +42 -0
  69. package/context/modern-conventions.md +129 -129
  70. package/context/project-context-template.md +122 -122
  71. package/docs/agents.md +473 -0
  72. package/docs/architecture.md +194 -0
  73. package/docs/commands.md +451 -0
  74. package/docs/security.md +195 -144
  75. package/package.json +77 -48
  76. package/.claude/hooks/worker-loop.sh +0 -141
  77. package/.claude/settings.local.json +0 -29
  78. package/agents/forge-master/capabilities.md +0 -144
  79. package/agents/forge-master/context-template.md +0 -128
  80. package/agents/forge-master/personality.md +0 -138
  81. package/agents/sentinel/personality.md +0 -194
  82. package/context/forge-state.yaml +0 -19
  83. package/docs/TODO.md +0 -176
  84. package/docs/npm-publishing.md +0 -95
  85. package/tasks/review/task-001.md +0 -78
@@ -0,0 +1,194 @@
1
+ # Vibe Forge Architecture
2
+
3
+ This document describes the architectural decisions and structure of the Vibe Forge codebase.
4
+
5
+ ## Language Strategy
6
+
7
+ Vibe Forge uses a **hybrid Bash/Node.js architecture** with the following rationale:
8
+
9
+ ### Bash (Primary for Scripts)
10
+
11
+ The core CLI and daemon are implemented in Bash because:
12
+
13
+ 1. **Native shell integration** - Vibe Forge orchestrates terminal sessions and Claude Code processes, which are inherently shell operations
14
+ 2. **Unix philosophy** - Small composable scripts that can be debugged, piped, and modified easily
15
+ 3. **Transparency** - Users can inspect and modify scripts without build steps
16
+ 4. **Git Bash compatibility** - Windows users with Git Bash can run the same scripts
17
+
18
+ Files in Bash:
19
+ - `bin/forge.sh` - Main CLI entry point
20
+ - `bin/forge-setup.sh` - Setup and initialization
21
+ - `bin/forge-spawn.sh` - Terminal spawning orchestration
22
+ - `bin/forge-daemon.sh` - Background daemon for task monitoring
23
+ - `bin/lib/*.sh` - Shared libraries (colors, config, agents, database, json, util)
24
+
25
+ ### Node.js (Cross-Platform Utilities)
26
+
27
+ Node.js is used where cross-platform compatibility or complex logic is needed:
28
+
29
+ 1. **npx installer** - `bin/cli.js` runs via npx before Vibe Forge is installed
30
+ 2. **Terminal detection** - `bin/lib/terminal.js` detects and spawns terminals across Windows/macOS/Linux
31
+ 3. **JSON parsing** - All Bash scripts use Node.js for JSON via `bin/lib/json.sh` wrapper
32
+ 4. **Claude hooks** - `.claude/hooks/worker-loop.js` runs as Claude Code hook
33
+ 5. **Dashboard server** - `bin/dashboard/server.js` provides HTTP + WebSocket for the web UI
34
+
35
+ ### Design Principles
36
+
37
+ 1. **Single Source of Truth** - Configuration in `config/agents.json`, loaded by both languages
38
+ 2. **Node.js for JSON** - All JSON parsing uses `bin/lib/json.sh` which calls Node.js (no jq dependency)
39
+ 3. **Bash for orchestration** - Process management, file watching, terminal control
40
+ 4. **Thin wrappers** - `forge.cmd` on Windows calls Bash via Git Bash
41
+
42
+ ### JSON Handling
43
+
44
+ All JSON operations use the `json.sh` library which provides:
45
+
46
+ ```bash
47
+ # Reading JSON
48
+ value=$(json_read "$file" "key" "default")
49
+
50
+ # Reading multiple keys efficiently
51
+ read -r name status task <<< "$(json_read_multi "$file" name status task)"
52
+
53
+ # Writing JSON
54
+ json_write "$file" "key" "value"
55
+ json_write_bool "$file" "enabled" true
56
+
57
+ # Pretty printing
58
+ json_pretty "$file"
59
+
60
+ # Key existence check
61
+ if json_has_key "$file" "key"; then ...
62
+ ```
63
+
64
+ This eliminates the jq dependency while maintaining security (arguments passed to Node.js, not interpolated).
65
+
66
+ ## Directory Structure
67
+
68
+ ```
69
+ vibe-forge/
70
+ ├── agents/ # Agent personality definitions
71
+ │ ├── anvil/
72
+ │ │ └── personality.md
73
+ │ ├── furnace/
74
+ │ └── ...
75
+ ├── bin/ # Executables
76
+ │ ├── cli.js # npx entry point (Node.js)
77
+ │ ├── forge.sh # Main CLI (Bash)
78
+ │ ├── forge.cmd # Windows wrapper
79
+ │ ├── forge-setup.sh # Setup script
80
+ │ ├── forge-spawn.sh # Terminal spawning
81
+ │ ├── forge-daemon.sh # Background daemon
82
+ │ ├── dashboard/ # Web dashboard (Node.js)
83
+ │ │ ├── server.js # HTTP + WebSocket server
84
+ │ │ ├── api/ # REST API endpoints
85
+ │ │ │ ├── tasks.js # Task CRUD
86
+ │ │ │ ├── agents.js # Agent status
87
+ │ │ │ └── dispatch.js # Task dispatch
88
+ │ │ └── public/ # Frontend assets
89
+ │ │ ├── index.html # Dashboard UI
90
+ │ │ ├── style.css # Styles (dark mode)
91
+ │ │ └── app.js # Frontend logic
92
+ │ └── lib/ # Shared libraries
93
+ │ ├── agents.sh # Agent resolution
94
+ │ ├── colors.sh # Terminal colors
95
+ │ ├── config.sh # Configuration loading
96
+ │ ├── constants.sh # Constants (fallback)
97
+ │ ├── database.sh # SQLite operations
98
+ │ ├── json.sh # JSON utilities (Node.js based)
99
+ │ ├── terminal.js # Terminal detection (Node.js)
100
+ │ └── util.sh # Utility functions
101
+ ├── config/ # Configuration files
102
+ │ ├── agents.json # Agent roster (source of truth)
103
+ │ └── agent-manifest.yaml # Rich documentation (non-normative)
104
+ ├── context/ # Runtime context
105
+ │ ├── agent-status/ # Agent status files
106
+ │ └── forge-state.yaml # Current forge state
107
+ ├── docs/ # Documentation
108
+ ├── tasks/ # Task lifecycle folders
109
+ │ ├── pending/
110
+ │ ├── in-progress/
111
+ │ ├── completed/
112
+ │ └── ...
113
+ └── tests/ # Test suites
114
+ ├── unit/ # Jest unit tests (shell functions tested via child_process)
115
+ └── helpers/ # Test utilities
116
+ ```
117
+
118
+ ## Data Flow
119
+
120
+ ```
121
+ ┌──────────────┐ ┌────────────────┐ ┌──────────────┐
122
+ │ CLI Input │ --> │ forge.sh │ --> │ Command │
123
+ │ (user) │ │ (dispatch) │ │ Handler │
124
+ └──────────────┘ └────────────────┘ └──────────────┘
125
+
126
+ v
127
+ ┌──────────────┐ ┌────────────────┐ ┌──────────────┐
128
+ │ Claude │ <-- │ forge-spawn.sh │ <-- │ Terminal │
129
+ │ Code │ │ + terminal.js │ │ Spawning │
130
+ └──────────────┘ └────────────────┘ └──────────────┘
131
+
132
+ v
133
+ ┌──────────────┐ ┌────────────────┐ ┌──────────────┐
134
+ │ Tasks │ <-> │ forge-daemon │ <-> │ SQLite │
135
+ │ (files) │ │ (monitor) │ │ Database │
136
+ └──────────────┘ └────────────────┘ └──────────────┘
137
+ ^ ^
138
+ │ │
139
+ └─────────────────┬─────────────────────────┘
140
+
141
+ v
142
+ ┌────────────────────┐
143
+ │ Dashboard Server │ <-- Browser (http://localhost:2800)
144
+ │ (port 2800 🔥) │
145
+ │ + WebSocket /ws │
146
+ └────────────────────┘
147
+ ```
148
+
149
+ ### Dashboard Architecture
150
+
151
+ The dashboard is a self-contained Node.js server that provides:
152
+
153
+ 1. **Static file serving** - HTML, CSS, JS from `bin/dashboard/public/`
154
+ 2. **REST API** - Task management, agent status, dispatch at `/api/*`
155
+ 3. **WebSocket** - Real-time updates at `/ws`
156
+ 4. **Issue detection** - Stale docs, failing tests, security issues
157
+
158
+ Port **2800** was chosen as the default because it's the operating temperature of a forge in degrees Fahrenheit. 🔥
159
+
160
+ ## Future Considerations
161
+
162
+ ### Potential Node.js Migration
163
+
164
+ While Option B (hybrid) is the current strategy, a future Node.js migration could provide:
165
+
166
+ 1. **Better Windows support** - Native Node.js without Git Bash dependency
167
+ 2. **Unified codebase** - Single language to maintain
168
+ 3. **Type safety** - TypeScript for larger refactors
169
+ 4. **npm ecosystem** - Libraries for terminal control, process management
170
+
171
+ Migration path if pursued:
172
+ 1. `src/lib/config.ts` - Configuration management
173
+ 2. `src/lib/agents.ts` - Agent resolution
174
+ 3. `src/lib/database.ts` - SQLite operations
175
+ 4. `src/daemon.ts` - Background daemon
176
+ 5. `src/forge.ts` - Main CLI (keeping forge.sh as thin wrapper initially)
177
+
178
+ ### Requirements for Migration
179
+
180
+ Before pursuing full Node.js migration:
181
+ - Ensure all Bash-specific functionality can be replicated
182
+ - Maintain transparency (scripts users can inspect)
183
+ - Keep startup time fast (current scripts are instant)
184
+ - Preserve Unix composability where valuable
185
+
186
+ ## ADR Summary
187
+
188
+ | Decision | Choice | Rationale |
189
+ |----------|--------|-----------|
190
+ | Primary language | Bash | Native shell integration, transparency |
191
+ | JSON parsing | Node.js via json.sh | Security, cross-platform |
192
+ | Terminal detection | Node.js | Cross-platform compatibility |
193
+ | Windows support | Git Bash + forge.cmd | Maintains Unix-like experience |
194
+ | Configuration | JSON (agents.json) | Machine-readable, single source |
@@ -0,0 +1,451 @@
1
+ # Command Reference
2
+
3
+ This document covers all Vibe Forge commands available in Claude Code.
4
+
5
+ ## CLI Commands
6
+
7
+ These commands are run from your terminal.
8
+
9
+ ### vibe-forge init
10
+
11
+ Initialize Vibe Forge in your project.
12
+
13
+ ```bash
14
+ npx @sugar-crash-studios/vibe-forge init
15
+ ```
16
+
17
+ **What it does:**
18
+ - Clones Vibe Forge into `_vibe-forge/`
19
+ - Detects your platform (Windows, macOS, Linux)
20
+ - Finds Git Bash on Windows
21
+ - Validates Claude Code installation
22
+ - Configures terminal preferences
23
+ - Optionally starts the daemon
24
+ - Installs the `/forge` slash command
25
+ - Creates project context file
26
+
27
+ **Options:**
28
+ - `--non-interactive` - Skip prompts, use defaults
29
+
30
+ ### vibe-forge update
31
+
32
+ Update Vibe Forge to the latest version.
33
+
34
+ ```bash
35
+ npx @sugar-crash-studios/vibe-forge update
36
+ ```
37
+
38
+ **What it does:**
39
+ - Fetches latest changes from GitHub
40
+ - Preserves your tasks and context files
41
+ - Updates scripts and agent configurations
42
+
43
+ ### vibe-forge version
44
+
45
+ Show the installed version.
46
+
47
+ ```bash
48
+ npx @sugar-crash-studios/vibe-forge version
49
+ npx @sugar-crash-studios/vibe-forge --version
50
+ npx @sugar-crash-studios/vibe-forge -v
51
+ ```
52
+
53
+ ### vibe-forge help
54
+
55
+ Show help information.
56
+
57
+ ```bash
58
+ npx @sugar-crash-studios/vibe-forge help
59
+ npx @sugar-crash-studios/vibe-forge --help
60
+ npx @sugar-crash-studios/vibe-forge -h
61
+ ```
62
+
63
+ ---
64
+
65
+ ## Slash Commands
66
+
67
+ These commands are used inside Claude Code sessions.
68
+
69
+ ### /forge
70
+
71
+ Start the Planning Hub (default command).
72
+
73
+ ```
74
+ /forge
75
+ ```
76
+
77
+ **What it does:**
78
+ - Activates the multi-expert planning team
79
+ - Displays the forge council welcome message
80
+ - Prepares for planning and coordination tasks
81
+
82
+ **Output:**
83
+ ```
84
+ VIBE FORGE - Planning Hub
85
+ -----------------------------------------------
86
+
87
+ The forge council assembles...
88
+
89
+ Planning Hub - Orchestration & Tasks
90
+ Architect - Technical Design
91
+ Aegis - Security
92
+ Ember - DevOps & Infrastructure
93
+ Pixel - User Experience
94
+ Oracle - Product & Requirements
95
+ Crucible - Quality & Testing
96
+
97
+ Ready to plan, review, or coordinate.
98
+ Use /forge status to check current tasks.
99
+
100
+ What's on the anvil today?
101
+ -----------------------------------------------
102
+ ```
103
+
104
+ You can also explicitly start the hub with:
105
+ ```
106
+ /forge plan
107
+ ```
108
+
109
+ ### /forge status
110
+
111
+ Display the status dashboard.
112
+
113
+ ```
114
+ /forge status
115
+ ```
116
+
117
+ **What it does:**
118
+ - Reads the current forge state
119
+ - Counts tasks in each status folder
120
+ - Shows active agent statuses
121
+ - Displays attention signals
122
+
123
+ **Output:**
124
+ ```
125
+ VIBE FORGE - Status Dashboard
126
+ -----------------------------------------------
127
+ Pending: 3 tasks
128
+ In Progress: 2 tasks
129
+ In Review: 1 task
130
+ Completed: 12 tasks
131
+
132
+ Active Agents:
133
+ Anvil - working on TASK-015
134
+ Furnace - idle
135
+ Crucible - testing TASK-014
136
+ -----------------------------------------------
137
+ ```
138
+
139
+ ### /forge spawn
140
+
141
+ Spawn a worker agent in a new terminal.
142
+
143
+ ```
144
+ /forge spawn <agent>
145
+ ```
146
+
147
+ **Arguments:**
148
+ - `<agent>` - Agent name or alias (see table below)
149
+
150
+ **Examples:**
151
+ ```
152
+ /forge spawn anvil
153
+ /forge spawn frontend # Alias for anvil
154
+ /forge spawn furnace
155
+ /forge spawn backend # Alias for furnace
156
+ ```
157
+
158
+ **Available Agents:**
159
+
160
+ | Agent | Aliases | Role |
161
+ |----------|----------------------|--------------------|
162
+ | anvil | frontend, ui, fe | Frontend Developer |
163
+ | furnace | backend, api, be | Backend Developer |
164
+ | crucible | test, testing, qa | Tester / QA |
165
+ | sentinel | review, reviewer, cr | Code Reviewer |
166
+ | scribe | docs, documentation | Documentation |
167
+ | herald | release, deploy | Release Manager |
168
+ | ember | devops, ops, infra | DevOps |
169
+ | aegis | security, sec, appsec| Security |
170
+
171
+ **Behavior by terminal type:**
172
+ - **Windows Terminal** - Opens a new tab with the agent
173
+ - **Manual mode** - Prints instructions to start the agent
174
+
175
+ ### /forge task
176
+
177
+ Create a new task.
178
+
179
+ ```
180
+ /forge task [description]
181
+ ```
182
+
183
+ **Arguments:**
184
+ - `[description]` - Optional task description
185
+
186
+ **Examples:**
187
+ ```
188
+ /forge task
189
+ /forge task Add user authentication
190
+ /forge task Fix the login button styling
191
+ ```
192
+
193
+ **Interactive mode (no description):**
194
+ - Prompts for task description
195
+ - Asks which agent should handle it
196
+ - Requests priority level (high, medium, low)
197
+
198
+ **Task file location:**
199
+ `tasks/pending/task-XXX.md`
200
+
201
+ ### /forge help
202
+
203
+ Show available commands.
204
+
205
+ ```
206
+ /forge help
207
+ ```
208
+
209
+ **Output:**
210
+ ```
211
+ VIBE FORGE - Commands
212
+ -----------------------------------------------
213
+
214
+ /forge Start the Planning Hub (default)
215
+ /forge status Show status dashboard
216
+ /forge spawn <agent> Spawn worker in new terminal
217
+ /forge task [desc] Create a new task
218
+ /forge help Show this help
219
+
220
+ Agents (with aliases):
221
+ anvil (frontend, ui, fe) - Frontend Developer
222
+ furnace (backend, api, be) - Backend Developer
223
+ crucible (test, testing, qa) - Tester / QA
224
+ sentinel (review, reviewer, cr) - Code Reviewer
225
+ scribe (docs, documentation) - Documentation
226
+ herald (release, deploy) - Release Manager
227
+ ember (devops, ops, infra) - DevOps
228
+ aegis (security, sec, appsec) - Security
229
+
230
+ -----------------------------------------------
231
+ ```
232
+
233
+ ---
234
+
235
+ ## Worker Commands
236
+
237
+ These commands are used by spawned worker agents.
238
+
239
+ ### /worker-loop
240
+
241
+ Start a persistent worker loop.
242
+
243
+ ```
244
+ /worker-loop <agent>
245
+ /worker-loop <agent> --max-idle 20
246
+ /worker-loop stop
247
+ ```
248
+
249
+ **Arguments:**
250
+ - `<agent>` - Agent name to run as
251
+ - `--max-idle N` - Exit after N checks with no tasks (default: 10)
252
+ - `stop` - Stop the current worker loop
253
+
254
+ **What it does:**
255
+ - Puts the worker in persistent mode
256
+ - Worker checks for tasks, completes them, loops back
257
+ - Only exits after max idle checks with no work found
258
+
259
+ **Example:**
260
+ ```
261
+ /worker-loop anvil # Start Anvil in persistent loop
262
+ /worker-loop furnace --max-idle 20 # Custom idle limit
263
+ /worker-loop stop # Stop the current loop
264
+ ```
265
+
266
+ ### /update-status
267
+
268
+ Report current status to the dashboard.
269
+
270
+ ```
271
+ /update-status <status> [task-id]
272
+ ```
273
+
274
+ **Status values:**
275
+
276
+ | Status | Meaning |
277
+ |-----------|--------------------------------------|
278
+ | idle | No current task, ready for work |
279
+ | working | Actively working on a task |
280
+ | blocked | Stuck, needs input |
281
+ | reviewing | Reviewing code or PR |
282
+ | testing | Running tests |
283
+ | waiting | Waiting for external dependency |
284
+
285
+ **Examples:**
286
+ ```
287
+ /update-status working TASK-001
288
+ /update-status idle
289
+ /update-status blocked
290
+ /update-status reviewing PR-123
291
+ /update-status testing TASK-001
292
+ ```
293
+
294
+ ### /need-help
295
+
296
+ Signal that human attention is needed.
297
+
298
+ ```
299
+ /need-help <reason>
300
+ ```
301
+
302
+ **What it does:**
303
+ - Creates an attention file in `tasks/attention/`
304
+ - Rings the terminal bell
305
+ - Shows in the Planning Hub status
306
+ - Triggers toast notification (if daemon running)
307
+
308
+ **Examples:**
309
+ ```
310
+ /need-help Need clarification on auth implementation approach
311
+ /need-help Blocked on API design decision - REST vs GraphQL?
312
+ /need-help Tests failing, need guidance on expected behavior
313
+ ```
314
+
315
+ ### /clear-attention
316
+
317
+ Clear an attention signal after the issue is resolved.
318
+
319
+ ```
320
+ /clear-attention <agent>
321
+ ```
322
+
323
+ **What it does:**
324
+ - Removes the attention file for the specified agent
325
+ - Updates the dashboard to reflect resolution
326
+
327
+ ---
328
+
329
+ ## Dashboard Commands
330
+
331
+ The Vibe Forge Dashboard provides a web-based UI for monitoring and managing your forge.
332
+
333
+ ### Dashboard Port: 2800
334
+
335
+ The dashboard runs on port **2800** by default - the operating temperature of a forge in degrees Fahrenheit. 🔥
336
+
337
+ This port was chosen because:
338
+ - It's thematic (forges operate at around 2800°F)
339
+ - It doesn't collide with common development ports (3000, 8080, 5000)
340
+ - It doesn't collide with database ports (3306, 5432, 27017)
341
+ - It doesn't collide with other tooling ports (5555, 9000, etc.)
342
+
343
+ ### Starting the Dashboard
344
+
345
+ ```bash
346
+ # Start the dashboard server
347
+ node bin/dashboard/server.js
348
+
349
+ # Custom port
350
+ node bin/dashboard/server.js --port 3000
351
+ DASHBOARD_PORT=3000 node bin/dashboard/server.js
352
+
353
+ # Custom host (for network access)
354
+ node bin/dashboard/server.js --host 0.0.0.0
355
+ ```
356
+
357
+ ### Dashboard URL
358
+
359
+ Once running, access the dashboard at:
360
+ - **URL:** `http://localhost:2800`
361
+ - **API:** `http://localhost:2800/api/`
362
+ - **WebSocket:** `ws://localhost:2800/ws`
363
+
364
+ ### Dashboard API Endpoints
365
+
366
+ | Endpoint | Method | Description |
367
+ |----------|--------|-------------|
368
+ | `/api/health` | GET | Server health check |
369
+ | `/api/tasks` | GET | List all tasks by status |
370
+ | `/api/tasks/:id` | GET | Get single task details |
371
+ | `/api/tasks` | POST | Create new task |
372
+ | `/api/agents` | GET | List agents with status |
373
+ | `/api/dispatch` | POST | Dispatch agent for an issue |
374
+
375
+ ### Configuration
376
+
377
+ Add to `.forge/config.json` (coming soon):
378
+
379
+ ```json
380
+ {
381
+ "dashboard": {
382
+ "enabled": true,
383
+ "port": 2800,
384
+ "auto_open": true,
385
+ "host": "localhost"
386
+ }
387
+ }
388
+ ```
389
+
390
+ ---
391
+
392
+ ## Daemon Commands
393
+
394
+ Control the background daemon process.
395
+
396
+ ### forge daemon start
397
+
398
+ Start the daemon.
399
+
400
+ ```bash
401
+ ./bin/forge-daemon.sh start
402
+ ```
403
+
404
+ ### forge daemon stop
405
+
406
+ Stop the daemon.
407
+
408
+ ```bash
409
+ ./bin/forge-daemon.sh stop
410
+ ```
411
+
412
+ ### forge daemon status
413
+
414
+ Check daemon status.
415
+
416
+ ```bash
417
+ ./bin/forge-daemon.sh status
418
+ ```
419
+
420
+ ---
421
+
422
+ ## Configuration Commands
423
+
424
+ Manage Vibe Forge settings.
425
+
426
+ ### forge config worker-loop
427
+
428
+ Toggle persistent worker mode.
429
+
430
+ ```bash
431
+ forge config worker-loop on # Enable for all workers
432
+ forge config worker-loop off # Disable
433
+ forge config worker-loop # Check current status
434
+ ```
435
+
436
+ ---
437
+
438
+ ## Shell Scripts
439
+
440
+ Low-level scripts in `_vibe-forge/bin/`.
441
+
442
+ | Script | Purpose |
443
+ |-------------------|-----------------------------------|
444
+ | cli.js | Main entry point for npx commands |
445
+ | forge.sh | Core forge command router |
446
+ | forge-setup.sh | Setup wizard |
447
+ | forge-spawn.sh | Spawn agents in terminals |
448
+ | forge-daemon.sh | Background daemon |
449
+ | forge.cmd | Windows batch wrapper |
450
+
451
+ These are typically not called directly - use the commands above instead.