Background job manager for AI Coding Agents

1 hour ago 1

A lightweight CLI tool for managing background processes. gob allows you to start commands as detached background processes, monitor their status, lifecycle and output.

  • Detached Process Execution - Run commands that persist independently of the CLI
  • AI coding agent friendly - Easy for Coding Agents to start and monitor background processes

Download the latest release for your platform from the Releases page.

Available platforms: Linux, macOS (both amd64 and arm64)

# Download the appropriate binary for your platform # For example, macOS Apple Silicon (arm64): curl -LO https://github.com/juanibiapina/gob/releases/latest/download/gob_VERSION_darwin_arm64.tar.gz # Extract the archive tar -xzf gob_VERSION_darwin_arm64.tar.gz # Move to your PATH sudo mv gob /usr/local/bin/ # Verify installation gob --version

Requirements:

  • Go 1.25.4 or later
  • Make
# Clone the repository git clone https://github.com/juanibiapina/gob.git cd gob # Build the binary make build # The binary will be available at dist/gob # Optionally, move it to your PATH sudo cp dist/gob /usr/local/bin/
# Usage overview gob # Start a background job gob start sleep 300 # List all jobs gob list # View stdout output gob stdout 1234567890 # Stop a job gob stop 1234567890 # Clean up all stopped jobs gob cleanup

To make gob available to Claude Code or other AI coding assistants, add it to your global ~/.claude/CLAUDE.md:

# Available CLI Tools - `gob` - Background process manager # Usage Expectations - Use `gob` to start and monitor background processes like servers and other long running tasks (run `gob` for overview)

This allows Claude Code to automatically use gob for managing long-running processes during development.

gob start <command> [args...]

Start a command as a background job. The job runs detached and persists even after the CLI exits.

# Start a long-running server gob start python -m http.server 8000 # Run a background process gob start ./script.sh --verbose # Execute with arguments gob start ffmpeg -i input.mp4 output.avi

Output: Job ID (Unix timestamp)

Display all jobs with their status (running/stopped), PID, and command.

Output format:

ID STATUS PID COMMAND 1234567890 running 12345 sleep 300 1234567891 stopped - python server.py

gob stop <job_id> [--force]

Stop a running job. Uses SIGTERM by default; use --force for SIGKILL.

# Graceful shutdown gob stop 1234567890 # Force kill gob stop 1234567890 --force

Stop and then start a job with the same command.

Remove metadata for a single stopped job. Job must be stopped first.

Remove metadata for all stopped jobs.

Stop all running jobs and remove all metadata. Use with caution.

gob stdout <job_id> [--follow]

Display stdout output for a job.

# View stdout gob stdout 1234567890 # Tail stdout in real-time gob stdout 1234567890 --follow

gob stderr <job_id> [--follow]

Display stderr output for a job.

# View stderr gob stderr 1234567890 # Tail stderr in real-time gob stderr 1234567890 --follow

gob signal <job_id> <signal>

Send a custom signal to a job.

# Send SIGHUP (reload configuration) gob signal 1234567890 HUP # Send SIGUSR1 gob signal 1234567890 USR1

Supported signals: TERM, KILL, HUP, INT, QUIT, USR1, USR2, and more

Display usage patterns and common workflows. Also shown when running gob without arguments.

Binary output: dist/gob

Requirements:

  • BATS (included as git submodule)
  • jq (JSON processor)
# Initialize git submodules (first time only) git submodule update --init --recursive # Run tests (automatically builds first) make test

Tests are located in test/*.bats and verify end-to-end functionality.

When making changes to the project:

  • Update CHANGELOG.md under [Unreleased] section for user-facing changes
  • Follow Keep a Changelog format
  • Categorize changes as: Added, Changed, Deprecated, Removed, Fixed, Security

Runtime:

  • Unix-like operating system (Linux, macOS, BSD)
  • Note: Windows is not supported due to Unix-specific process management APIs

Build:

  • Go 1.25.4+

Testing:

  • BATS framework (included)
  • jq command-line tool
Read Entire Article