| name | gob |
| description | Process manager for long-running background processes. Use when starting development servers, watching files, or running commands that need to continue in the background while agent continues working. |
gob
CLI process manager for long-running background processes. Provides a shared view of background jobs between you and the AI agent, with real-time log streaming.
Core Commands
Running Commands
-
gob run <cmd> - Run command, wait for completion, stream output
- Equivalent to
gob add + gob await
- Best for: builds, tests, any command where you need the result
-
gob add <cmd> - Start background job, returns job ID immediately
- Job continues running in background
- Supports flags directly:
gob add npm run --flag
- Supports quoted strings:
gob add "make test"
-
gob await <job_id> - Wait for job to finish, stream output, return exit code
- Use this to collect results from jobs started with
gob add
Sequential Execution
For commands that must complete before proceeding:
gob run make build
Or use add + await for more control:
gob add make build
gob await <job_id>
Use for: builds, installs, any command where you need the result.
Parallel Execution
For independent commands, start all jobs first:
gob add npm run lint
gob add npm run typecheck
gob add npm test
Then collect results using either:
gob await <job_id> - Wait for a specific job by ID
gob await-any - Wait for whichever job finishes first (--timeout option)
gob await-all - Wait for all jobs to complete (--timeout option)
Example with await-any:
gob await-any
gob await-any
gob await-any
Use for: linting + typechecking, running tests across packages, independent build steps.
Job Monitoring
Status:
gob list - List jobs with IDs and status
Output:
gob await <job_id> - Wait for completion, stream output (preferred)
gob stdout <job_id> - View stdout (-f for real-time following)
gob stderr <job_id> - View stderr (-f for real-time following)
Control:
gob stop <job_id> - Graceful stop (SIGTERM)
gob stop -f <job_id> - Force kill (SIGKILL)
gob restart <job_id> - Stop + start
gob remove <job_id> - Remove stopped job
When to Use gob
Use gob for:
- Development servers (e.g.,
npm run dev, python manage.py runserver)
- File watchers (e.g.,
npm run watch, webpack --watch)
- Build processes that run in the background
- Any long-running task that shouldn't block the agent
- Commands that need to output logs while you continue working
Do NOT use & to background processes - always use gob add instead.
Examples
Good:
gob run make test
gob add npm run dev
gob await abc
gob add timeout 30 make build
Bad:
make test
npm run dev &
Common Patterns
Start a dev server and continue working
gob add npm run dev
Start multiple background services
gob add npm run dev
gob add npm run api
gob add npm run worker
Run tests in parallel across packages
gob add npm test -- --workspace=packages/a
gob add npm test -- --workspace=packages/b
gob add npm test -- --workspace=packages/c
gob await-all
Build and check results
gob run make build
Inspect logs from running job
gob list
gob stdout abc
gob stdout abc -f
gob stderr abc -f
Job IDs
Jobs are identified by short 3-character IDs (e.g., abc, x7f, V3x). Use gob list to see all jobs and their IDs.
Jobs are scoped to directories - you only see jobs in the current working directory.