Skip to content

v0.8.0

Release Date: 2026-11-05

Highlights

  • Pane terminal - A plain shell below each pane's coding session, opened in the folder the session works in, so you can review files and run commands next to the agent
  • TUI Parser secured - The mobile bridge listens only on this Mac by default and needs a token when exposed to the network; the mobile apps can send one
  • Safer session tracking - Claude session history can no longer be overwritten by an unreadable file, hook events are no longer lost, and the Claude Code hook installs safely

Upgrading

  • TUI Parser users: the server now listens on 127.0.0.1 only. To connect from a phone, start it with a host and a token, then enter the token in the mobile app's settings:
export TUIPARSER_TOKEN=$(openssl rand -hex 32)
./bin/tuiparser --host 0.0.0.0

For access away from your network, prefer Tailscale or an SSH tunnel.

  • Claude Code hook users: Settings shows Update Hook once after upgrading, because the hook's command is now quoted differently. The old hook keeps working until you click it.

What's New

Pane Terminal

Each pane can show a second terminal below its coding session: a plain shell (not tmux) that starts in the folder the session works in, which is where the Claude session started, or otherwise the tmux pane's current folder.

  • Click the terminal icon in the pane header to show or hide it. Hiding keeps the shell running, with its history and current folder.
  • The bar above the shell shows its folder. Drag it to resize the shell; double-click it to return to the default height.
  • The default height is a share of the pane, 35% unless you change it in Settings → General → Pane terminal height, so the shell grows and shrinks with the pane.
  • Each pane keeps a shell per session: switching the pane to another session shows that session's shell.
  • ⌘] and ⌘[ move through each pane's session and its shell.

See the Grid Layout guide.

Settings That Work

  • Font Size (Appearance) now sets every terminal's font, including open ones.
  • Idle after and Stuck after (Sessions) now set when a session's status changes.
  • Settings the app never used are gone: auto-attach on launch, show detached sessions, restore windows on launch, cursor blink, and default shell. New Session no longer offers an Agent Type choice that had no effect.

Security

  • TUI Parser had no authentication and accepted WebSocket connections from any web page, so anyone on the network, or any page open in your browser, could type into your tmux sessions. It now:
    • listens on 127.0.0.1 unless you pass --host
    • refuses to start on any other address without a token (--token or TUIPARSER_TOKEN), which clients send as a Bearer header or a token query parameter
    • rejects browser connections from other origins, and, without a token, requests for other host names (DNS rebinding)
  • The iOS app allows plain connections only on the local network instead of turning off App Transport Security for every connection.
  • The Claude Code hook quotes the app's path with single quotes, so the shell expands nothing in it.

What's Fixed

  • An unreadable Claude session log (for example after downgrading) is copied aside before a new one is saved, instead of being overwritten.
  • Session checks no longer overlap, so a waiting notification is not posted twice.
  • The session log is written when a session's state changes, and otherwise at most once a minute instead of every 5 seconds.
  • Hook events are no longer lost when the events file is started afresh.
  • Restoring a session checks again that it is not already running, so it is not resumed twice.
  • Installing the hook keeps a symlinked ~/.claude/settings.json linked, keeps changes Claude Code makes to it meanwhile, and refuses to point at a copy of the app on its disk image or in a temporary location.
  • Attaching, killing, and renaming target tmux sessions by exact name, not by prefix.
  • Sessions whose transcript ends in a very long line, such as a pasted image, keep their last-activity time.
  • Failed updates of the tmux @claude_name option are retried.
  • Android release builds of the Flutter app request network access, and the Flutter app uses the saved server address at launch.

Documentation

See the full changelog.