bgproc
v0.3.0
Published
Simple process manager for agents
Maintainers
Readme
bgproc
Simple process manager for agents.
Manage background processes like dev servers from the command line. Designed to be agent-friendly with JSON output and easy status checking.
Install
npm install -g bgproc
# or using npx
npx bgproc start -n myserver -- npm run devUsage
# Start a process
bgproc start -n myserver -- npm run dev
# Start and wait for port to be detected (great for dev servers)
bgproc start -n myserver -w -- npm run dev
# Streams logs to stderr, prints JSON with port to stdout when ready
# Force restart (kills existing process with same name)
bgproc start -n myserver -f -w -- npm run dev
# Restart with same command and cwd
bgproc restart myserver
bgproc restart myserver -w # wait for port
# Check status (returns JSON with port detection)
bgproc status myserver
# {"name":"myserver","pid":12345,"running":true,"port":3000,...}
# View logs
bgproc logs myserver
bgproc logs myserver --tail 50
bgproc logs myserver --follow
bgproc logs myserver --errors # stderr only
# List all processes
bgproc list
bgproc list --cwd # filter to current directory
bgproc list --cwd /path/to/dir # filter to specific directory
# Stop a process
bgproc stop myserver
bgproc stop myserver --force # SIGKILL
# Clean up dead processes
bgproc clean myserver
bgproc clean --allFeatures
- JSON output: All commands output JSON to stdout, errors to stderr
- Port detection: Automatically detects listening ports via
lsof(checks child processes too) - Wait for port:
--wait-for-portblocks until port is detected, streaming logs - Restart:
restartre-runs a process with the same command and cwd - Force restart:
--forcekills existing process with same name before starting - Duplicate prevention: Prevents starting multiple processes with the same name
- Log management: Stdout/stderr captured, capped at 1MB
- Timeout support:
--timeout 60kills after N seconds - Auto-cleanup: Starting a process with the same name as a dead one auto-cleans it
- CWD filtering: Filter process list by working directory
Options
start
-n, --name Process name (required)
-f, --force Kill existing process with same name before starting
-t, --timeout Kill after N seconds
-w, --wait-for-port Wait for port detection (optional: timeout in seconds)
--keep Keep process running on wait timeout (default: kill)restart
-w, --wait-for-port Wait for port detection (optional: timeout in seconds)
--keep Keep process running on wait timeout (default: kill)status, stop, logs, clean
All accept process name as positional arg or -n:
bgproc status myserver
bgproc status -n myserver # equivalentlogs
-t, --tail Number of lines (default: 100)
-f, --follow Tail the log
-e, --errors Show stderr only
-a, --all Show all logsstop
-f, --force Use SIGKILL instead of SIGTERMlist
-c, --cwd Filter by directory (no arg = current dir)clean
-a, --all Clean all dead processesEnvironment
BGPROC_DATA_DIR: Override data directory (default:~/.local/share/bgproc)
Usage with AI Agents
Just ask the agent
The simplest approach - just tell your agent to use it:
Use bgproc to start and manage the dev server. Run bgproc --help to see available commands.AI Coding Assistants
Add the skill to your AI coding assistant for richer context:
npx skills add ascorbic/bgprocThis works with Claude Code, Cursor, Codex, and other AI coding tools.
AGENTS.md / CLAUDE.md
For more consistent results, add to your project instructions:
## Background Processes
Use `bgproc` to manage dev servers and background processes. All commands output JSON.
Workflow:
1. `bgproc start -n devserver -- npm run dev` - Start a process
2. `bgproc status devserver` - Check if running, get port
3. `bgproc restart devserver` - Restart with same command
4. `bgproc logs devserver` - View output if something's wrong
5. `bgproc stop devserver` - Stop when donePlatform Support
macOS and Linux only. Windows is not supported.
License
MIT © Matt Kane 2026
