Skip to content

Releases: bethropolis/bgrun

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 01:20

0.7.0 - 2026-10-13

Highlights. expect used to time out on every live prompt: REPL prompts never reach the log file until later output arrives, so >>> always waited the full 10s. It now matches unflushed output instantly (0.6s measured) and reports it with "line_number": null. The OpenCode plugin is new: 16 native tools plus ready/exit notifications back into the originating session, so agents fire-and-continue instead of blocking in wait.

Added

  • Add OpenCode plugin (plugins/opencode, install with opencode plugin add 'github:bethropolis/bgrun#main::path:plugins/opencode'): 16 native tools, bgrun skill, /bg-run and /bg-tail commands, ready/exit session notifications, long-runner prompt steering.
  • Add screen --strip-ansi (also in MCP screen and plugin bgrun_screen).
  • Add bgrun watch (plugin-only): opt an already-running job into completion notifications.
  • Add pty_cols and pty_rows to the plugin run tool.

Changed

  • tail --digest without lines returns only the summary. It previously attached 50 log lines, which made the token-saving call the most expensive one. Pass --lines N for digest plus lines.
  • list returns trimmed records (id, name, state, pid, short command, workspace). Pass verbose: true for full records.
  • MCP tool output is compact JSON with a 64KB ceiling and a 1000-line cap per log call. Oversized output names how to re-query narrower.
  • run (MCP and plugin) accepts wait and wait_timeout_ms to fold run plus wait into one call.
  • expect matches mid-line prompts immediately. Such matches return "line_number": null.
  • Spawned jobs no longer inherit OPENCODE_SESSION_ID. A nested opencode mini used to resolve the parent session's project and work in the wrong directory.
  • Old screen clients keep working against the new daemon (missing strip_ansi defaults to false).

Fixed

  • Fix expect never matching live prompts.

Known issues

  • Cursor-addressed fullscreen apps read only partly: static views decode with --strip-ansi, redraws garble, and \r-drawn apps need expect as a frame reader. Line-oriented programs work fully.

Upgrading

  • No config changes. Restart the daemon (pkill -x bgrun-daemon; it autostarts) to pick up the daemon-side fixes.

For plugin authors

  • MCP screen input gains strip_ansi. expect matches can carry "line_number": null; handle the null before treating it as a line number.

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 04:15

0.6.0 - 2026-10-05

Highlights

tail --follow streams again. v0.5.0 shipped a regression: with no --filter-regex, the filter compiled to a match-nothing pattern, so --follow printed nothing at all. If you adopted --follow on 0.5.0 it has been silently doing nothing. An invalid --filter-regex now reports the error instead of streaming your whole unfiltered log.

Live lines also carry real line numbers now. They used to print as 0 |, because the writer broadcast each line before it had a position. tail --follow on a piped or PTY job now numbers continuously, and restarts at 1 after a log rotation.

expect answers questions about the past. It scanned from the end of the log, so it only ever matched output written after the call. Asking whether an error had already happened always timed out. It now searches the whole log first, then keeps watching for new lines.

bgrun expect api "error" --timeout 5s   # finds an error already logged

MCP server. bgrun mcp speaks JSON-RPC 2.0 over stdio and exposes 15 commands as tools for agent clients.

printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | bgrun mcp

Added

  • Add bgrun mcp, a stateless stdio MCP server exposing 15 daemon commands as tools

Fixed

  • Fix tail --follow printing nothing when no --filter-regex was given (regression in 0.5.0)
  • Fix tail --follow --filter-regex <invalid> silently streaming the whole unfiltered log
  • Fix tail --follow printing 0 as the line number for live lines
  • Fix expect timing out on a pattern that was already in the log
  • Fix diff line numbers collapsing after a log rotation

Changed

  • Add last_diff_lines to bgrun status --json output

MCP requests are handled one at a time, so a long wait blocks later calls. Poll diff when you need to interleave.

Full Changelog: v0.5.0...v0.6.0

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 14 Sep 01:27

bgrun v0.5.0

Background process runner for development workflows.

Installation

Arch Linux:

yay -S bgrun-bin

Debian / Ubuntu:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.5.0/bgrun_0.5.0_x86_64.deb
sudo dpkg -i bgrun_0.5.0_x86_64.deb

Fedora / RHEL:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.5.0/bgrun_0.5.0_x86_64.rpm
sudo rpm -i bgrun_0.5.0_x86_64.rpm

Homebrew:

brew install bethropolis/tap/bgrun

Quick install:

curl -fsSL https://bethropolis.github.io/bgrun/install.sh | sh

Tarball:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.5.0/bgrun_0.5.0_linux_x86_64.tar.gz
tar -xzf bgrun_0.5.0_linux_x86_64.tar.gz
sudo mv bgrun bgrun-daemon /usr/local/bin/

Changelog

New Features

  • 8a90689: feat: agent-friendly run — --env/--cwd/--replace/--wait, short flags, toml regex parity (@bethropolis)
  • 989bd4d: feat: first-class stop/restart ops with graceful termination (@bethropolis)
  • 25b899a: feat: log rotation config (size/keep) and export command spanning rotations (@bethropolis)
  • c8e0222: feat: namespace sandbox isolation via --sandbox (loopback-only net + private IPC) (@bethropolis)
  • 2ba8f72: feat: per-job resource limits via cgroup v2 (memory-max, cpu-quota, pids-max) ( <>)
  • 20f08fc: feat: redesign interactive mode with dashboard, job submenu, and start-job flow (@bethropolis)
  • 5d9fd6e: feat: restart policies (never/on-crash/on-failure/always) with max-retries (@bethropolis)

Bug Fixes

  • dad8cdc: fix: add retry logic to install script for timing issues (@bethropolis)
  • 229619f: fix: atomic owner-only state writes, corrupt-record tolerance, pid recycle verification, export symlink guard, size parse for short inputs, utf8 lossy export (@bethropolis)
  • 43bab36: fix: config overlay for named runs, state colors, tail filtering and line numbers, follow-mode duplication, ndjson readiness matching, starting-state transitions (@bethropolis)
  • 1d242ae: fix: honor restart policy for adopted jobs, kill dual-spawn duplicates, diff cursor bytes, pid cleanup (@bethropolis)
  • 57611e1: fix: idle timeout zero disables auto-shutdown, sigwinch resize handling, name index preservation on remove, kill force flag (@bethropolis)
  • 075c6a3: fix: ignore SIGHUP in daemon and stabilize list ordering by start time (@bethropolis)
  • 788fd89: fix: install.sh works with any toolchain >= MSRV, not just pinned patch (@bethropolis)
  • 3bafeac: fix: single lifecycle-notify static and private socket directory permissions (@bethropolis)
  • b4b2596: fix: use printf for ANSI escapes in install.sh (literal \033 not rendered) (@bethropolis)

Other Changes

Full Changelog: v0.4.0...v0.5.0

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 14 Jun 15:15

bgrun v0.4.0

Background process runner for development workflows.

Installation

Arch Linux:

yay -S bgrun-bin

Debian / Ubuntu:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.4.0/bgrun_0.4.0_x86_64.deb
sudo dpkg -i bgrun_0.4.0_x86_64.deb

Fedora / RHEL:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.4.0/bgrun_0.4.0_x86_64.rpm
sudo rpm -i bgrun_0.4.0_x86_64.rpm

Homebrew:

brew install bethropolis/tap/bgrun

Quick install:

curl -fsSL https://bethropolis.github.io/bgrun/install.sh | sh

Tarball:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.4.0/bgrun_0.4.0_linux_x86_64.tar.gz
tar -xzf bgrun_0.4.0_linux_x86_64.tar.gz
sudo mv bgrun bgrun-daemon /usr/local/bin/

Changelog

New Features

  • 5d1720c: feat: add screen command, send --enter, tail --digest --lines, fix TOCTOU race (@bethropolis)
  • 762d823: feat: add skill install presets (opencode/claude/codex/all) with --project flag, update SKILL.md (@bethropolis)

Bug Fixes

  • c749bd4: fix: suppress clippy unsafe_code warnings on documented unsafe blocks and add missing Debug derives (@bethropolis)

Other Changes

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 13 Jun 16:49

bgrun v0.3.0

Background process runner for development workflows.

Installation

Arch Linux:

yay -S bgrun-bin

Debian / Ubuntu:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.3.0/bgrun_0.3.0_x86_64.deb
sudo dpkg -i bgrun_0.3.0_x86_64.deb

Fedora / RHEL:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.3.0/bgrun_0.3.0_x86_64.rpm
sudo rpm -i bgrun_0.3.0_x86_64.rpm

Homebrew:

brew install bethropolis/tap/bgrun

Quick install:

curl -fsSL https://bethropolis.github.io/bgrun/install.sh | sh

Tarball:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.3.0/bgrun_0.3.0_linux_x86_64.tar.gz
tar -xzf bgrun_0.3.0_linux_x86_64.tar.gz
sudo mv bgrun bgrun-daemon /usr/local/bin/

Changelog

Other Changes

Full Changelog: v0.2.2...v0.3.0

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 13 Jun 01:29

bgrun v0.2.2

Background process runner for development workflows.

Installation

Arch Linux:

yay -S bgrun-bin

Debian / Ubuntu:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.2.2/bgrun_0.2.2_x86_64.deb
sudo dpkg -i bgrun_0.2.2_x86_64.deb

Fedora / RHEL:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.2.2/bgrun_0.2.2_x86_64.rpm
sudo rpm -i bgrun_0.2.2_x86_64.rpm

Homebrew:

brew install bethropolis/tap/bgrun

Quick install:

curl -fsSL https://bethropolis.github.io/bgrun/install.sh | sh

Tarball:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.2.2/bgrun_0.2.2_linux_x86_64.tar.gz
tar -xzf bgrun_0.2.2_linux_x86_64.tar.gz
sudo mv bgrun bgrun-daemon /usr/local/bin/

Changelog

Other Changes

Full Changelog: v0.2.1...v0.2.2

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 12 Jun 23:55

bgrun v0.2.1

Background process runner for development workflows.

Installation

Arch Linux:

yay -S bgrun-bin

Debian / Ubuntu:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.2.1/bgrun_0.2.1_x86_64.deb
sudo dpkg -i bgrun_0.2.1_x86_64.deb

Fedora / RHEL:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.2.1/bgrun_0.2.1_x86_64.rpm
sudo rpm -i bgrun_0.2.1_x86_64.rpm

Homebrew:

brew install bethropolis/tap/bgrun

Quick install:

curl -fsSL https://bethropolis.github.io/bgrun/install.sh | sh

Tarball:

curl -LO https://github.com/bethropolis/bgrun/releases/download/v0.2.1/bgrun_0.2.1_linux_x86_64.tar.gz
tar -xzf bgrun_0.2.1_linux_x86_64.tar.gz
sudo mv bgrun bgrun-daemon /usr/local/bin/

Changelog

New Features

  • 4d9a9f7: feat: add packaging/completions with dynamic fish script, install completions via install.sh (@bethropolis)
  • bd6ba44: feat: config expansion, signal handling, completions, man pages, audit log, --json for clean (@bethropolis)

Other Changes

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@bethropolis bethropolis released this 11 Jun 22:50

Highlights

  • PTY attach — attach to interactive PTY sessions via bgrun attach
  • Expect — wait for a pattern in log output via bgrun expect
  • Memory RSS guardrails — auto-kill jobs exceeding memory limits
  • Interactive menu — tab-completion, prefix IDs, schema generation
  • Reactive daemon shutdown — 0% idle polling, event-driven auto-shutdown
  • Log stream filtering & follow mode — bgrun tail --follow, ANSI stripping
  • Exponential backoff restart — configurable restart strategy
  • --json flag & clean command — machine-readable output, clean terminated jobs
  • Zero-overhead PTY wait — replaced 100ms polling with blocking OS waitpid
  • Memory monitor guard — immediate break on dead jobs, no stale-PID spin

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 01 Jun 17:47

Changelog

  • 2146b3f feat: polishing and fixing bugs

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 01 Jun 15:53

Changelog

  • 6e01d16 Create LICENSE
  • 57e106f Initial commit
  • 5904347 ci: add homebrew cask generation, fix zig cache dirty state
  • fe3dc92 feat: improve install flow and embedded skill
  • a154315 fix: broken ci run
  • e1c1071 fix: remove crates.io badge