Repository navigation
Releases: ShrimpScript/porthole
Release list
Porthole 0.40.1
A restart asked for twice
- A session restart that was called off, then asked for again straight away, was answered "waiting" without being set going. It now starts again.
Install: download porthole.apk on the phone. On the computer, brew install shrimpscript/tap/porthole then portholed setup, or run tools/install.sh from a clone.
Porthole 0.40.0
Switch Claude accounts
- The computer's Claude account, in Settings. Settings › Claude Code shows which Claude account Claude Code on the computer is signed in to, and its plan, with Switch account and Sign out. The usage-limit card offers Switch Claude account.
- Signing in from the phone. Switch account runs Claude Code's own sign-in on the computer and opens Claude's sign-in page in the phone's browser. Copy the code the page shows and come back: Porthole picks it up and finishes, or paste it. Nothing opens on the computer, and Porthole keeps no copy.
- Sessions follow. Sessions already running are offered a restart on the new account: each comes back in its own pane on the same conversation, one busy with a turn restarts when it finishes (or not, if you cancel it), and one waiting out a usage limit stops waiting.
- Mac and Linux alike. Needs portholed 0.40.0.
Install: download porthole.apk on the phone. On the computer, brew install shrimpscript/tap/porthole then portholed setup, or run tools/install.sh from a clone.
Porthole 0.39.1
A failsafe shell you can type into
- The failsafe shell opens at once. fish 4 asks the terminal what it is when it starts, and draws nothing and takes no typing until it hears back; Porthole's terminal never answered, so the failsafe shell stayed blank for ten seconds and then printed a warning. It now answers what a real terminal does: what kind of terminal it is, and where the cursor is. Questions about its capabilities are no longer drawn as text.
Install: download porthole.apk on the phone. On the computer, brew install shrimpscript/tap/porthole then portholed setup, or run tools/install.sh from a clone.
Porthole 0.39.0
A calmer feed
- The work folds into one line. Every tool call and every result used to be a row of its own, so a busy turn was a wall of small grey lines and the answer was hard to find. Now each stretch of work between Claude's words is one line, as in Claude's own app: "Ran 2 commands, edited a file", with the lines the edits added and removed and how many steps failed. Tap it for every step in order, each with its time or its lines and a failed step with its error, and a step for its command and full output. The lines are Claude Code's own count of each edit. While a step runs it is a line of its own, with the turning screw and its time.
- Narration and the answer look different. What Claude says on the way, between pieces of work, is quieter and set off by a line. The answer at the end of a turn is full strength, with Copy, Listen and Share beneath it. Listen reads it aloud with the phone's own voice, offline, skipping code. New replies fade in from the top down.
- A turn shows what it changed. A turn that edited files ends with a Diff chip with its lines added and removed; tap it for everything uncommitted in the folder, file by file.
- One message box. The text on top, and beneath it attach, the model and effort (tap for the switches) and send. Typing / opens the commands; the slash button is gone.
- More room for the feed. The Feed and Terminal row is now a terminal button in the session's header, and the header's chip says how full the context window is.
- Clearer session list. Each session's state (asking you, waiting for you, what it is running) has a line of its own, in colour, and the branch, tmux session and model sit quieter beneath it.
Install: download porthole.apk on the phone. On the computer, brew install shrimpscript/tap/porthole then portholed setup, or run tools/install.sh from a clone.
Porthole 0.38.0
Questions you can answer, screenshots that work
- Fix: Claude's questions could show with nothing to tap. A session's tmux window could be left one row tall, with nobody attached at the desk, and Claude Code then drew its question picker into that one line, so the phone found no choices to offer. The daemon now gives such a window a readable size while nobody is at the desk, and puts tmux's own sizing back, so your terminal still sizes it when you sit down. If a question still cannot be read from the screen, the phone shows it with a button to answer it in the terminal, instead of nothing.
- Fix: screenshots failed whenever you were away. Sleeping screens draw nothing, and the capture waited for a frame that never came. A screenshot or a clip now wakes the screens that are asleep, takes the picture, and puts them back to sleep a few seconds later, unless the mouse moved meanwhile because someone sat down. The caption says when it did. Failures are logged on the computer. Hyprland and sway on Linux; on a Mac the display wakes and sleeps again on its own timer.
- Fix: the website button. A dev server shared from the phone is now opened at the computer's tailnet address, which needs no name lookup in the phone's browser, and a share also answers to the computer's short MagicDNS name, which it used to refuse. Each step is logged on the computer. Checked end to end with a real dev server.
- Fix: links ended in **. When Claude writes a link in bold, the closing stars are no longer read as part of the address.
- Sent files look like files. A message with pictures or files shows them beside its bubble, pictures as thumbnails and other files as named chips, instead of the paths the daemon adds and the [Image #1] tokens and paste tags Claude Code writes. A picture Claude Code attached from your message sits small on your side of the feed.
- Quick replies in Settings. With every quick reply deleted, a pencil used to sit alone above the message box. Now the row goes, and Settings has a Quick replies entry to edit them or bring them back.
- Live view removed. "Watch the screen" was a loop of screenshots, slow and with the same problem with sleeping screens. A real remote desktop is planned as its own release.
Install: download porthole.apk on the phone. On the computer, brew install shrimpscript/tap/porthole then portholed setup, or run tools/install.sh from a clone.
Porthole 0.37.1
A long message with pictures is sent, not left at the desk
- Fix: a long message with pictures could be left unsent in Claude Code's box at the desk. Claude Code attaches pictures named in a message one by one, and an Enter that arrives while it does is lost. The daemon pressed Enter at once, so the message sat in the box at the desk unsent, while the phone was told it had gone and let go of it. Now the daemon types the message as one paste, waits a moment longer for one with files, and watches for Claude Code to record it. If the message is still in the box, it presses Enter again (only then, so a stray Enter never answers anything else). If Claude Code still has not taken it, the phone is told, and the message and its files come back to the box. Checked against a real Claude Code with three pictures. Mac and Linux alike.
Install: download porthole.apk on the phone. On the computer, brew install shrimpscript/tap/porthole then portholed setup, or run tools/install.sh from a clone.
Porthole 0.37.0
Steady through a bad connection
- A dropped connection no longer takes the screen with it. Until now a drop of a few seconds replaced the session with the failure card, threw away what you were typing, and on the way back reloaded the feed from scratch, so it flashed blank and jumped to the bottom. Now the feed, where you had scrolled to, an open sheet and the message you are typing all stay. A bar says Reconnecting… after a second or two, and after a few tries offers Options, the failure card's tools. When the computer answers, what happened meanwhile is added below what you were reading. The session list stays too, its rows reading "as last seen". The full failure card is kept for a computer that refuses the phone, or when there is nothing to show.
- The message box keeps taking typing. It used to lock the moment the connection dropped, closing the keyboard mid-word. Now only Send waits for the computer.
- Drafts are kept. Each session's unsent message is saved on the phone as you type. A drop, the app closing or the phone restarting no longer loses it.
- A message stays in the box until it is typed. The box holds it, greyed, until the computer says it typed it into the session, which is a moment on a good connection. If it is refused, the reason shows and the text stays to send again. If the connection goes before the answer, the feed decides when it comes back: shown there means it was typed, missing means it stays in the box. Nothing is re-sent on its own. Text-only messages used to vanish when a send failed.
- Sessions open at once, even offline. The phone keeps the last 200 rows of the 20 sessions you opened most recently, and the session list, in its private storage. A session opens from its copy straight away and catches up when the computer answers. With no connection, the copy is there to read, and the bar says when it was saved. Forgetting a computer deletes its copies. The privacy page lists exactly what is kept.
- Mac and Linux alike. The daemon now answers every message the phone names, not only those with files.
Install: download porthole.apk on the phone. On the computer, brew install shrimpscript/tap/porthole then portholed setup, or run tools/install.sh from a clone.
Porthole 0.36.0
Commands as cards
- A slash command shows what it did. A command run in the session, at the desk or from the phone, was one grey line saying you ran it. It is now a card. /effort shows the level on a five-step meter, the CLI's description of it, and whether it is now the default for new sessions. /model shows the model by name, /rename the new name. /context shows the window to scale, the share held back for autocompact, and what fills it, largest first, with deferred tools named apart because they are not loaded yet. Any other command shows the CLI's reply, in red when it came as an error; a skill Claude Code loads by itself is a quiet line, not a card. A compaction and a /clear are lines across the feed, and a compaction says how many tokens it freed. Mac and Linux alike.
- Session details answers /model, /effort, /cost, /stats and /status. Typed on their own, or picked from the slash menu, they open the sheet with its switches and numbers instead of a menu on the computer's screen. With an argument, such as /effort high, they are typed into the session as before. /context no longer switches to the terminal: its answer lands in the feed, and in a new By category section of the sheet, which can measure again. The effort switch gains max.
- Fix: text Claude Code writes for itself showed as your messages. A skill's instructions, the summary a compaction leaves, and the /context table appeared as if you had sent them. They are no longer in the feed.
- Fix: /compact showed as a message. It is now the command's card while the CLI compacts, with the working strip running, then the line that says how much it freed.
- Fix: a message typed while Claude was busy could show twice. It showed as queued, and when Claude Code took it, it appeared again below while the queued bubble stayed until the session was reopened. The delivered message, or the command's card, now takes the bubble's place.
Install: download porthole.apk on the phone. On the computer, brew install shrimpscript/tap/porthole then portholed setup, or run tools/install.sh from a clone.
Porthole 0.35.0
See the agents Claude starts
- Subagents, live. When Claude hands work to an agent, the feed shows a card for it: what it was asked to do, what kind of agent it is and on which model, and, read from the agent's own transcript on the computer, how many tools it has used, what it is doing now and for how long. When an agent finishes, fails or is stopped, its card says so. The working strip counts the agents at work. Background agents that keep going after Claude's turn has ended get a strip of their own. Tap either for a sheet of every agent in the session, with each agent's own agents under it. The sessions list shows how many agents each session has at work. Mac and Linux alike.
- Fix: delegated work had no name. Claude Code now calls its subagent tool Agent rather than Task, and the feed only knew the old name, so those rows showed no description.
Install: download porthole.apk on the phone. On the computer, brew install shrimpscript/tap/porthole then portholed setup, or run tools/install.sh from a clone.
Porthole 0.34.0
A screw for a spinner
- The working icon is a turning screw. While Claude works, a small three-bladed screw, the ship's propeller, turns beside it. It is drawn in three dimensions: a blade brightens as it turns to face you and dims as it goes edge-on, with a faint trail behind each one. When a turn ends, the screw stands still beside "Worked for…". It replaces the copy of Claude Code's star spinner, in the list, the working strip, the feed and the composer. With animations off, it stays still.
Install: download porthole.apk on the phone. On the computer, brew install shrimpscript/tap/porthole then portholed setup, or run tools/install.sh from a clone.