Skip to content

feat: --no-tmux to run agents without the tmux wrapper - #27

Merged
thecodeassassin merged 1 commit into
mainfrom
feat/no-tmux-mode
Jun 22, 2026
Merged

feat: --no-tmux to run agents without the tmux wrapper#27
thecodeassassin merged 1 commit into
mainfrom
feat/no-tmux-mode

Conversation

@thecodeassassin

Copy link
Copy Markdown
Contributor

Pi (and other Kitty keyboard-protocol TUIs) work best owning the terminal directly. ExitBox always wrapped agents in tmux, and tmux's modified-key re-encoding (Shift+Enter, even Ctrl+J) is a fragile extra hop for Pi specifically — other agents tolerate it. This adds an opt-out so Pi can run with no tmux in the way.

What

  • exitbox run <agent> --no-tmux runs the agent directly (entrypoint run_agent_once), skipping the tmux session wrapper.
  • Wired via EXITBOX_NO_TMUX=1should_start_tmux returns false → the agent execs directly with full workspace setup (config symlinks, sandbox instructions, skills) still applied.
  • Trade-off (documented in --help): no tmux status bar, workspace switcher (Ctrl+M+P), or tmux-based session resume. Fine for Pi, which manages its own sessions.

This complements the in-tmux fixes already on main (extended-keys on, extended-keys-format csi-u, terminal-features *:extkeys): use those if you want tmux + modified keys; use --no-tmux for the most reliable Pi experience.

Tests

  • parseRunFlags test covers --no-tmux (set + default-off).
  • go build, go test ./..., go vet, golangci-lint green; entrypoint suite 106 pass / 2 pre-existing fails.

Note: the entrypoint ships in the base image — needs an image rebuild to take effect.

@github-actions

Copy link
Copy Markdown
Contributor

Merging this branch will not change overall coverage

Impacted Packages Coverage Δ 🤖
github.com/Cloud-Exit/ExitBox/cmd 0.00% (ø)
github.com/Cloud-Exit/ExitBox/internal/run 0.00% (ø)

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/Cloud-Exit/ExitBox/cmd/run.go 0.00% (ø) 0 0 0
github.com/Cloud-Exit/ExitBox/internal/run/run.go 0.00% (ø) 0 0 0

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

Changed unit test files

  • github.com/Cloud-Exit/ExitBox/cmd/run_flags_test.go

@thecodeassassin
thecodeassassin merged commit 059b492 into main Jun 22, 2026
7 checks passed
@thecodeassassin
thecodeassassin deleted the feat/no-tmux-mode branch June 22, 2026 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant