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 still astrohacker; CLI still ahterm).
  • 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.
  • ahweb starts 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.
  • Line0.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.

  1. First we put the TermSurf product mark (wave) on the host AppIcon so the rename had a face.
  2. 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-server you 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:

  1. Confirm the Dock tile is the monogram and the app name is TermSurf.
  2. ahweb https://example.com — type into the page without a second mode Enter.
  3. Split a 2×2 and walk the arrows; focus should not diagonal-jump.
  4. Run ahcalc once 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.

← Back to blog