Repository navigation
Releases: goldalworming/sessionhub
Release list
v0.0.54
Downloads
| Architecture | Windows | macOS | Linux |
|---|---|---|---|
| x86-64 (64-bit) | Installer · EXE | Binary | |
| ARM64 (Apple silicon) | DMG · App · Binary |
Web interface 1.2.61: sessionhub-web-1.2.61.shweb — installed from Settings, no restart needed.
Show a file beside the terminal
sessionhubd show PATH, run inside a sessionhub terminal, opens that file or folder in the file panel of the browser showing that terminal. A file opens in the editor with its folders unfolded; a folder outside the project becomes the panel's root. A browser looking at another terminal stays where it is. Every terminal now carriesSESSIONHUB_TERMINALwith its own id, so an agent can point at what it just made instead of describing where it put it.
File panel
- "Could not read this folder" says why — access denied, a relay timeout, and so on — and the folder is tried again by itself, so a passing failure on a remote machine no longer leaves it empty.
- A folder that was deleted folds away instead of being retried.
- The filter says what it hid: "N files hidden by the filter", so a filtered folder no longer looks empty.
Faster and better-reported
- Scans are lighter. Project icons are remembered for a minute, so a scan no longer checks every candidate icon of every project each time an agent writes a file.
- The behaviour log names the machine on connection, terminal, typing and error events, and gives the cause of an error (an OS error number, never a path). Slow echoes also record the agent and whether it was working; slow scans record what was scanned.
Update the paired machines too: show and the new log fields come from the daemon on each machine.
Refresh open pages once after updating.
Web interface: 1.2.61.
v0.0.53
Downloads
| Architecture | Windows | macOS | Linux |
|---|---|---|---|
| x86-64 (64-bit) | Installer · EXE | Binary | |
| ARM64 (Apple silicon) | DMG · App · Binary |
Web interface 1.2.60: sessionhub-web-1.2.60.shweb — installed from Settings, no restart needed.
Open your own address locally (Windows)
- Settings → Machines → Open locally. This machine's own tunnel hostname (
https://sbox.example.com) now opens straight from this machine instead of going out to Cloudflare and back down the tunnel. sessionhub points the name at 127.0.0.1 in the hosts file, trusts a certificate it makes on the spot, and serves https on127.0.0.1:443itself. One administrator prompt, on this machine. It stays https, so copy and paste keep working, and the bookmarked address stays the same. Other devices still go through the tunnel. Turn off removes the hosts line and the certificate.
Sidebar
- Long lists of background jobs fold. In Live & Today, a terminal with more than two subagents or background commands running shows one line, "▸ N background jobs", that opens on a click, instead of burying every row below it.
- Copy reference (from web 1.2.59): right-click a tab or a sidebar row for the terminal's id, name, machine, folder, and the
sessionhubd capturecommand that reads it, to paste into another session.
Refresh open pages once after updating.
Web interface: 1.2.60.
v0.0.52
Downloads
| Architecture | Windows | macOS | Linux |
|---|---|---|---|
| x86-64 (64-bit) | Installer · EXE | Binary | |
| ARM64 (Apple silicon) | DMG · App · Binary |
Web interface 1.2.59: sessionhub-web-1.2.59.shweb — installed from Settings, no restart needed.
Faster and lighter
sessionhubd capturetakes under a second instead of minutes. Stripping a busy agent terminal's 2 MB of output was quadratic: over two minutes of a full core per capture. Tools that pollcapture(abwork, while a node is open) were stacking these up.- No more resize storms. A size is reported once it has held for 300 ms. A layout that wobbled two rows and back — a toolbar or taskbar showing and hiding, two windows trading focus — resized one terminal over a thousand times a day, each time a full redraw by the agent sent to every device.
- Forgotten tabs let go. A socket that says nothing for 150 seconds is dropped: a background tab frozen by its browser used to keep its connection, and every terminal it had attached, for as long as the tunnel allowed. It reconnects on its own if it wakes up.
- The file panel stops hammering a folder it cannot open. On Windows a failed folder was never marked (the path was cut at the drive's colon), so the panel's auto-refresh asked for it again every few seconds — 868 errors in one hour, once. Reopening the folder still tries again.
- Per-terminal RAM is sampled every 5 s instead of 2, and not while the page is hidden.
Install on a phone
- sessionhub can now be installed as an app on Android. The manifest and its icons are served without a token, as Chrome's app builder requires; before, Chrome could only make a home-screen shortcut, which opens a new tab on every tap. Open sessionhub in Chrome and choose Install app (a phone or tablet with it open in a tab is offered this once). Remove any old shortcut and close old sessionhub tabs.
Refresh open pages once after updating.
Interface 1.2.58
- Switching between open sessions is quick again. Clicking a session in the sidebar, or picking it in the palette, refetched that terminal's whole history (1.5–2 MB, through the tunnel) and redrew it from nothing — every time, even though it was already open. An open terminal is now simply shown, with whatever it printed while hidden.
Interface 1.2.59
- Copy reference. Right-click a tab or a sidebar row (long-press on a phone) and choose Copy reference: the terminal's id and name, its machine and folder, and the
sessionhubd capturecommand that reads it. Paste it into another session to ask about that one.
Web interface: 1.2.59.
v0.0.51
Downloads
| Architecture | Windows | macOS | Linux |
|---|---|---|---|
| x86-64 (64-bit) | Installer · EXE | Binary | |
| ARM64 (Apple silicon) | DMG · App · Binary |
Web interface 1.2.56: sessionhub-web-1.2.56.shweb — installed from Settings, no restart needed.
Fixes
- A terminal no longer stays half the screen tall because of another tab. A sessionhub page in the background — another tab on the phone, a tablet put down — is frozen by its browser with its connection still open, and it kept the terminal at the size it last had (half a screen, with its keyboard up) for whoever was actually looking. Only pages on screen size a terminal now. When one goes out of view the terminal grows to the page being looked at after a short grace (so a phone whose screen blinks off does not cause a redraw), and a page coming back counts again at once.
- Terminals on another machine come back to life after the connection drops. When the link to a paired machine dropped and returned while a different machine was on screen, its terminals stayed dead on switching back — no output, typing that echoed nothing — until a click in the sidebar. They are now reattached when their machine's link returns, and on a keyboard the terminal gets focus back after switching machines.
Refresh open pages once after updating.
Web interface: 1.2.56.
v0.0.50
Downloads
| Architecture | Windows | macOS | Linux |
|---|---|---|---|
| x86-64 (64-bit) | Installer · EXE | Binary | |
| ARM64 (Apple silicon) | DMG · App · Binary |
Web interface 1.2.55: sessionhub-web-1.2.55.shweb — installed from Settings, no restart needed.
Fixes
- A terminal no longer stays half the screen tall after the phone keyboard closes. When a phone's connection dropped and came back, the old socket could linger on the daemon for minutes — through a tunnel nothing tells it — still holding the terminal at the size it had with the keyboard up. A page now names itself on every connection, and its old socket is dropped the moment it reconnects. Refresh open pages once to pick this up.
- Forwarded addresses work with servers that check their Host. A forward now addresses the server behind it by its own name (
Host: 127.0.0.1:<port>) and passes the tunnel hostname on asX-Forwarded-Host. Local tools that refuse unknown hosts as a DNS-rebinding guard — abwork, Vite'sallowedHosts— now work under any tunnel name. The sessionhub token in front of the forward still guards it. - The redirect after signing in to a forward had malformed headers.
New
sessionhubd url <id-or-name> --publicprints the terminal's address under this machine's own tunnel hostname (read from the Cloudflare tunnel, cached for an hour), for a tool that is itself being opened from another device. The pages of this machine's own forwards may now frame sessionhub, so--embedlinks work inside them too.
Interface 1.2.54
- Phones and tablets can upload any file, not only images. The key bar's upload key (now labelled File, on the second row) opens a picker with files, gallery and camera, so a markdown file or subtitles can be sent into a terminal like a photo.
Interface 1.2.55
- Select and copy on a phone. A new Select key (second row of the key bar, behind ⋯) shows the terminal's text as ordinary page text, opened at the newest output: long-press, drag the handles, Copy — or Copy all (over https).
- ⏎ sits right after Ctrl on the first row.
- The second key row now wraps onto two lines, so every key is whole and in sight.
Web interface: 1.2.55.
v0.0.49
Fixes
- Updates come back on their own again on Windows. An update stops every terminal, and if one of them was what kept the machine awake (a
SetThreadExecutionStatescript such as a "prevent sleep" terminal), a laptop being used from a phone dropped into standby that same second — and the update only finished when someone pressed a key. The updater now keeps the machine awake through the handover, until the new daemon has started its saved terminals again. This takes effect from the next update: the one into 0.0.49 still runs 0.0.48's updater. - Grid view no longer goes blank after another machine's tab has been opened. That machine's hidden grid was drawn on top of the visible one.
Web interface: 1.2.52.
v0.0.48
Deep links and embedding
/?t=<name-or-id>opens the web UI straight on one terminal (&m=<machine>for a paired machine). The URL follows the terminal on screen, so it can be copied, refreshed, or gone back to. A name that is not there, or a terminal that has exited, is said plainly in the panel.&embed=1shows only that terminal — no sidebar, tabs, or file panel — sized to its iframe and still typeable. The page may be framed byhttp://127.0.0.1:*andhttp://localhost:*only (before this, any site could frame it).sessionhubd url <id-or-name> [--embed] [--on MACHINE]prints the link. No token goes in it; the browser signs in with the cookie it already has.
Lighter with many devices connected
- A page that is not on screen (another tab in front, a phone asleep) now gets only the terminal list instead of the whole project list — about a tenth of the size — and no CPU/RAM readings. Finish notifications and the chime still work; the full list arrives once the page shows again.
- Bursts of changes (an agent rewriting its session files) are folded into at most one update per second, to every device.
Web interface: 1.2.51.
v0.0.47
Claude Code starts faster. It asks the terminal for its device attributes as it starts and waits for the answer; the browser used to answer, through the connection, once a page had attached. The daemon now answers itself, at once: ready in about 0.9 s instead of 1.7 s, and in about 1 s instead of 2–3 s for a terminal nobody is watching.
Reconnecting resumes instead of replaying. A phone or tablet coming back from sleep gets only the output it missed — a few hundred bytes in testing — where it used to download and redraw the terminal's whole 2 MB history every time. Anything that cannot be vouched for still gets the full replay, and paired machines on older daemons are unaffected.
Steadier terminal sizes. When a device stops looking at a terminal, the terminal waits 30 seconds before growing back to the remaining devices' size, so a phone that sleeps for a moment no longer makes the agent redraw twice at different widths.
The sidebar fills in at once after a start. The list of session files is cached on disk, so a start checks each file instead of re-reading all of them (about 0.1 s instead of up to 21 s on a cold disk).
The Explorer refreshes itself when an agent in its project finishes working, and at most every 10 s while one is working — never while the panel is closed, the page is hidden, or nothing is happening, and it redraws only if the files changed.
Drag paired machines into order — on their tabs (hold first on a touch screen) or in Settings → Machines by the ⠿ grip. The order is kept by the daemon and shared by every device; this machine stays first.
Sidebar: a project's day groups and sessions are indented under it, and the Browse files dialog no longer changes how the sidebar's day groups look.
Telemetry, for finding what makes things slow: why a connection was lost and whether the page was on screen; and how long a keystroke takes to show, split into the network, the daemon or agent, and the page — summed up once a minute while typing, with any keystroke over a second reported on its own.
v0.0.46
Browse files follows the machine you switch to. It asked a machine for its Places, drives and look once and kept them, so after browsing a Mac and switching to a Windows machine it still showed the Mac's sidebar and Finder-style icons until the page was reloaded. Switching machines now drops all of that, and the next open asks the machine now showing.
Installers as in 0.0.45: sessionhub-0.0.46-windows-x86_64-setup.exe (per-user, no administrator prompt) and sessionhub-0.0.46-macos-arm64.dmg (drag to Applications; unsigned, so right-click → Open the first time). An installed copy keeps updating itself from the plain binaries.
Web 1.2.48 (install from Settings, no restart): the paired machines' tabs now appear however slowly the page connects. The list was asked for once, 300 ms into connecting, and lost whenever the connection was not open yet — a tablet through the tunnel never showed them.
Web 1.2.49 (install from Settings, no restart): a connection that died underneath — a tablet waking from sleep, a network change, the tunnel blinking — is noticed within seconds instead of a minute, so the page no longer sits unresponsive until it is reopened. Terminals not on screen keep their output and write it on when shown again, instead of replaying their whole history — which left lost letters and stale status lines behind, and froze tablets for seconds at every switch.
v0.0.45
Settings opens at once. It used to wait for every agent's --version before drawing anything — a cold npm-installed agent such as opencode or pi takes seconds to answer, so the first open after a start took about 4.5 s here. Now the panel appears immediately; versions not yet known show "loading…" and fill in one by one as each agent answers, asked in parallel. A --version that runs out of time is no longer remembered as blank until the agent next updates.
Right-click a project in the sidebar — or long-press it on a phone — for Copy path, Bookmark / Remove bookmark, and the same New and Resume rows as the + button.
Installers, beside the plain binaries: sessionhub-0.0.45-windows-x86_64-setup.exe installs per user into %LOCALAPPDATA%\Programs\sessionhub with no administrator prompt, with optional Start menu and desktop shortcuts, start at login (now closing its window on its own), and adding it to PATH; uninstalling asks before deleting ~/.sessionhub. sessionhub-0.0.45-macos-arm64.dmg opens on a drag-to-Applications window (unsigned: right-click → Open the first time). An installed copy keeps updating itself from the plain binaries.