Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

TUI open-terminal hard-codes Herdr and ignores a live cmux

Open
#1,069 4 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
52/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
cli

Research direction

Start in TerminalService, where DEFAULT_PROVIDER = "herdr" resolves omitted providers, then check the TUI DaemonClient.openTerminal() call to /api/terminal/open, which sends no provider. Reproduce with rig terminal status --json on a host without a live Herdr. Done when the TUI open-terminal action opens the view through a live cmux when Herdr is unavailable, and the existing herdr_unavailable error with direct-attach guidance still appears when neither provider is live.

Written by the indexing model from the issue text.

Description

🐞 Bug Report: TUI open-terminal hard-codes Herdr and ignores a live cmux

Where: rig tui → a rig's term ▸ / open-terminal action; terminal-provider selection in TerminalService

Reproduce steps
  1. Use a host where Herdr is not installed or its control socket is unavailable, while cmux is installed and live.

  2. Confirm provider state:

    rig terminal status --json
    

    On the affected host this reports Herdr available:false / alive:false and cmux available:true / alive:true.

  3. Open rig tui, select a running rig, and activate its term ▸ rig <name> link (the open-terminal action).

  4. Observe the TUI error notice.

The equivalent provider-less CLI reproduction is:

rig terminal open financial-management-team --json

It exits 1 with:

{
  "provider": "herdr",
  "ok": false,
  "opened": [],
  "error": "herdr control socket is not answering ping; is herdr running?",
  "code": "herdr_unavailable"
}
Current result (before fix)

The TUI's open-terminal path is unusable when Herdr is unavailable, even when cmux is live and can open the same view.

The installed 0.6.6 code path explains the behavior:

  • TUI DaemonClient.openTerminal() posts /api/terminal/open with { view, expectedPlan? } and no provider.
  • TerminalService declares DEFAULT_PROVIDER = "herdr" and resolves omitted providers as Herdr.
  • It returns herdr_unavailable; no cmux fallback is attempted.
  • rig config --help exposes terminal.status_bar but no terminal-provider default key.

The documented setup journey says to use installed Herdr, else cmux, else direct attach commands, but the TUI action cannot express --provider cmux and does not follow that fallback order.

Workaround:

rig terminal open financial-management-team --provider cmux

That command succeeds on this host and opens all four seats.

Expected result (after fix)

Activating open-terminal in the TUI should open the selected view in an available terminal provider. When no provider is explicitly selected, OpenRig should prefer a live Herdr and otherwise fall back to a live cmux. A configurable default provider would also be acceptable if the TUI honors it and unavailable-provider behavior remains clear.

If neither provider is available, retain the current honest failure and exact direct-attach guidance.

Environment
  • OpenRig: 0.6.6 (2620dea8)
  • OS: macOS / Darwin 25.6.0, arm64
  • Node: v24.13.0
  • tmux: 3.7c
  • Claude Code: 2.1.295
  • Herdr: not installed / control socket unavailable
  • cmux: installed at /opt/homebrew/bin/cmux; shell and daemon control checks pass
  • rig doctor --json: healthy; cmux_shell and cmux_daemon pass
Documentation consulted
  • Installed rig context get help for OpenRig 0.6.6
  • Getting-started terminal guidance describing Herdr → cmux → direct-attach fallback
Dominant language
TypeScript
Stars
3.1k
Forks
217
Avg merge
9h 1m
Merged PRs (30d)
888

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from mvschwarz/openrig

All issues in mvschwarz/openrig

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.