Astrohacker 0.1.60: TermSurf by Name, Browse by Default, Calc in a Pane
July 20, 2026 · Ryan X. Charles
You open the Dock and the app no longer says Terminal. The bundle is
Astrohacker TermSurf. The title bar falls back to a surfer, not a
ghost. You type ahweb example.com, hit Enter once, and keys go to the
page—not into a Control mode that asked for a second Enter before the
browser felt real.
That is the line from 0.1.47 through 0.1.60.
On July 18 we field-noted rounded panes and the welcome splash. On July 19 we walked the TermSurf protocol— host, client, engine helpers, protobuf on local sockets. This post is the user-facing delta after those: what you install, what you click, what focus does when you move between splits.
Still one cask. Still Apple silicon. Still The Agentic Hacker’s Terminal as slogan—even when the app name on disk is TermSurf.
The short version
- Product name: Astrohacker TermSurf.app in
/Applications(cask token stillastrohacker; CLI stillahterm). - Dock icon: Astrohacker monogram (AH). The wave mark was tried for the host icon and then put back down—product name stayed TermSurf.
- Title defaults: empty / fallback chrome uses 🏄 and 🏄 TermSurf, not Ghostty’s ghost.
ahwebstarts in Browse — page first; Escape still reaches Control.ahcalc— scientific calculator as a TermSurf app (full-pane web UI), one binary for client and server roles, wired into the Homebrew package story.- Split focus stays local — spatial up/down/left/right prefer the straight neighbor band; MRU no longer diagonal-jumps when a real orthogonal pane exists.
- Public site — live marketing surface kept in step (docs/product naming, welcome, polish). Stack work is ours; you care that astrohacker.com still looks like the product.
- Line — 0.1.50 … 0.1.60 on the usual tap.
If you only remember one sentence: upgrade, open a URL without a second
Enter, split a 2×2 and move with the arrows, and run ahcalc if you want a
calculator that lives in a pane instead of another floating window.
The app is called Astrohacker TermSurf
For a long time the install said Astrohacker Terminal while the protocol that makes browser panes work was already TermSurf. That split was accurate for engineers and muddy for everyone else.
We renamed the desktop product:
- Bundle:
Astrohacker TermSurf.app - Install path:
/Applications/Astrohacker TermSurf.app - Docs and product copy that still meant “the host you launch” follow the new name
What we kept on purpose:
- Homebrew cask
astrohacker - PATH launcher
ahterm - Protocol name TermSurf (
termsurf.proto, helpers,TERMSURF_*where they already lived)
TermSurf is still the wire language. Astrohacker TermSurf is the window. If that sentence feels redundant, good—it is supposed to collapse the old “Terminal vs protocol” gap, not invent a second SKU.
Monogram on the Dock, surfer in the title
Icon work went in two honest steps.
- First we put the TermSurf product mark (wave) on the host AppIcon so the rename had a face.
- Then we restored the Astrohacker monogram as the Dock / Finder icon. The company mark owns the tile; the product name owns the string.
Title bar defaults were a separate leftover: empty surfaces and fallback titles still smelled like Ghostty (ghost emoji, “Ghostty” wording). Defaults now use the surfer—🏄 alone, or 🏄 TermSurf for the short branded title. That is chrome text, not a second icon pipeline.
Browse opens first
ahweb used to leave you in Control mode after launch. Opening a URL from
the shell meant: Enter to start the client, then another Enter (or mode
switch) before typing into the page felt normal. Fine for power users who live
in pane chords. Wrong for “I just opened google.com.”
Browse is the default on a normal launch. Keys go toward the page / overlay path. The host still keeps a Browse chrome allowlist so the split and tab bindings you need as a multi-pane product do not vanish the moment a document has focus.
Escape still reaches Control. We did not delete the hatch. We stopped making the hatch the front door.
ahcalc: a calculator that is a TermSurf app
This line ships a real TermSurf app in the product story: ahcalc, a
scientific calculator with a full-pane web UI.
Shape that matters to you:
- One on-disk binary — client and server roles from the same file (no
sibling
ahcalc-serveryou have to keep next to it). - Local only — the calculator UI is served on loopback; a second invoke finds the running server over a Unix domain socket and opens or reuses a pane.
- No host port registry inside
ahterm— the app owns its process model; the host owns panes and the protocol.
This is not a second IDE. It is not “English shell.” It is a calculator that
uses the same browser-pane machinery as ahweb, so the product is allowed to
grow apps without inventing a different windowing system.
Homebrew packaging stages ahcalc with the cask contents (binary + static
payload). If your install is current, ahcalc should be on PATH with the rest
of the bundle. If something is missing after upgrade, the cask is the first
thing to reinstall—not a random npm global.
Focus that does not teleport
We already fixed split focus memory so nested layouts remember where you were when you re-enter a region. The next bug was subtler: temporal MRU could yank you diagonally on a pure arrow move when a straight neighbor existed.
Canonical 2×2:
TL | TR
----+----
BL | BR
Focus BR, move up. You should land on TR—not TL because TL was “recent.” Same idea for left/right along a row.
Secondary-axis locality means: after a pure orthogonal move, prefer panes in the same row (for left/right) or column (for up/down) before MRU gets a vote. Nested re-entry memory from the earlier fix still works. The arrows should feel spatial again.
The public front door
The install still points people at astrohacker.com. In this window we kept the marketing surface aligned with the product rename (docs call the host Astrohacker TermSurf, welcome splash still the default host front door, footer and polish nits like putting Austin on the copyright line). Under the hood the site package was rebuilt and redeployed on Cloudflare so the live domain stays the one product story—not a second abandoned stack.
You do not need to care which web framework we use. You need the site and the app to agree on the name.
How to get it
Same install story, new app name in Applications:
brew tap astrohackerlabs/astrohacker
brew trust astrohackerlabs/astrohacker
brew install --cask astrohacker
Or upgrade if you already have the cask:
brew update
brew upgrade --cask astrohacker
App lands at /Applications/Astrohacker TermSurf.app. CLIs stay on PATH:
ahterm, ahsh, ahweb, engine helpers, and ahcalc when
the package includes it.
Worth five minutes after upgrade:
- Confirm the Dock tile is the monogram and the app name is TermSurf.
ahweb https://example.com— type into the page without a second mode Enter.- Split a 2×2 and walk the arrows; focus should not diagonal-jump.
- Run
ahcalconce if you want the pane calculator.
Protocol detail is still in How TermSurf Talks and the TermSurf protocol docs. Product docs start at /docs.
Upgrade. Open a URL. Move focus on purpose. The window should feel like one product—with a name that matches the protocol that made it possible.