Astrohacker TermSurf v0.1.88: Since Help and Quit: File Open That Works, Transfers Still Coming, and a Real Password Vault Plan

July 28, 2026 · Ryan X. Charles

You open ahweb, land on a page with a normal <input type="file">, and click it. A real macOS open panel appears—owned by the app you launched, not a stuck helper sheet in the Dock. You pick a file. The page gets it. You try upload folder on a site that wants a tree; relative paths come through the way desktop Chromium would send them.

That is not a marketing demo. It is the browser surface inside Astrohacker TermSurf, finally doing the first half of “use the web like a desktop browser in a pane.”

On July 27 we wrote about ahhelp, top-right quit, and shell discovery—product line roughly 0.1.84–0.1.87. This post is what landed after that window: file open that works, an honest list of file transfer still missing, and a locked plan for a password manager that can talk KeePass KDBX—without pretending the cloud product is open for business.

The short version

  • Done — system file open. Host-mediated NSOpenPanel for single file, multi-select, and directory upload (webkitRelativePath). Shipped on the product fork pins; monorepo crates 0.1.88.
  • In progress — the rest of file transfer. Finder drag upload, save / download UX, and drag download to disk. Tracked separately; not claimed here.
  • Planned — password manager. Vault stays Astrohacker’s model. KDBX 4.x import/export is interop for common logins, not “we became KeePass.” Fill and save in Chromium, CLI, and TermSurf apps under explicit consent.
  • Cloud — still building. Account and vault groundwork continue under the hood. This is not a launch, soft-open, or “go create an account” post.
  • Line — ~0.1.88. Upgrade the cask when your tap has the chooser pins.

If you only remember one sentence: you can pick files and folders for upload in TermSurf Chromium now; downloads and drag are next; passwords are a real product plan, not a finished vault product.

File open that behaves like a browser

Embedded Chromium in a terminal host does not magically own AppKit sheets. When the engine asked for a file dialog from the wrong process, you got the worst of both worlds: no usable panel, or a helper that looked like it owned the machine.

The path that works:

  1. The engine parks the chooser request.
  2. ahterm (the real host app) runs NSOpenPanel.
  3. Chosen paths (or cancel) come back over the TermSurf protocol.
  4. The page sees ordinary file-input results.

That is the same “host mediates, engine does not pretend to be the macOS app” idea as the rest of TermSurf—not a second file stack invented for marketing.

Folders, not only single files

Directory upload is not “attach one path and hope.” The host walks the tree off the UI thread, builds the multi-file list with relative paths, and finishes on the UI path the engine expects. We hit a hard fail when the walk ran on the UI thread (blocking asserts / abort). The fix is boring and correct: enumerate where blocking is allowed, then complete.

What you can try after upgrade: any site with a file input, multi-select, or “upload folder.” If the open panel never appears, or a folder selection freezes the pane, say so—those are regressions against this stretch, not known “maybe later” gaps.

What is not done yet

Closing file open did not close file transfer. Still open work:

  • Drag upload — Finder → page drop target / file input in the pane.
  • Downloads — silent Downloads-folder placement and system Save when the product path needs a save panel, with ordinary completion feedback.
  • Drag download — page / browser surface → Finder (or the closest macOS behavior we can ship honestly).

Until those land, vault import is “pick a file” capable; export/save and “drop the .kdbx on the page” are not the full desktop story. We will not paper over that with half-claims.

Why this matters for passwords

We opened a Password Manager epic with a locked product intent.

The vault stays Astrohacker’s design: versioned per-secret ciphertext, multi-tenant cloud, unlock under the user’s keys. It is not “the product is a KeePass database.” KeePassXC-class KDBX 4.x is the migration and interop format—import and export common login fields (title, username, password, URL, notes), refuse attachments instead of silently dropping them on the crypto path, accept documented lossy group flatten when needed.

Where people type passwords:

  • TermSurf Chromium — fill from vault and save into vault via the password-manager surface (engine hooks TBD by follow-on issues).
  • CLI — get/save after appropriate account / unlock.
  • TermSurf apps — may request a credential under explicit user consent, not ambient full vault dump to every pane.

Passkeys and other non-file secrets may come later. KDBX is the on-ramp and off-ramp, not the ceiling.

Earlier cloud field notes already named vault groundwork and a real KDBX 4.x package path. This post is the product plan that sits on top of that foundation—and the reason file open had to land first. Without a working chooser, “import a password file” is fiction.

None of that means “password manager available now.” It means the next surfaces have a map: transfer the rest of the files, then wire fill/save and import/export where people actually live.

Cloud: still in the shop

TermSurf remains the interface you run locally. The company still builds a cloud backend for the terminal—accounts, keys, vault, later sync and more. That work is in progress.

This post does not open a public onboarding tour, does not treat guest or signed-in cloud homes as ready, and does not ask you to live in a web account to use the terminal you already installed. When the cloud side is ready for ordinary use, we will say so in plain English.

Upgrade

Apple silicon, Homebrew:

brew tap astrohackerlabs/astrohacker
brew trust astrohackerlabs/astrohacker
brew update
brew upgrade --cask astrohacker

Install layout is unchanged: Astrohacker TermSurf in Applications; ahterm, ahweb, ahsh, ahcalc, ahhelp (and engine helpers) on PATH. File open needs a cask build that includes the pinned chooser tips—roughly the 0.1.88 monorepo line and whatever revision your tap publishes next. Full contract: homebrew docs when you need paths and package names.

Not this post

  • Not a re-tour of ahhelp, quit, and banner discovery—those already shipped in the previous field notes.
  • Not the economic singularity vision essay—direction, not a ship list.
  • Not “downloads and drag work today.”
  • Not “password manager / KeePass sync available now.”
  • Not a soft-launch map of cloud accounts or OAuth-from-the-CLI as public product.
  • Not “AI marketplace available now.”

One more thing

Keep the cask current. The last stretch taught the product how to explain itself and how to leave cleanly. This stretch teaches the embedded browser how to take files from the Mac the way users already expect.

Downloads and drag close the loop. The password epic is where that loop pays off for secrets—import, export, fill, save—without turning the vault into someone else’s file format.

If open panels still fail after upgrade, or a folder upload aborts the engine, report it. The point of shipping every few days is not the version number; it is whether a pane still behaves like a tool you trust with a real workday.

← Back to blog