Astrohacker TermSurf 0.1.103: Our Own Nexus BBS and a Real Chat Client in a Pane

August 2, 2026 · Ryan X. Charles

You start a local server. You open it with ahweb 3456. The page is next to the shell that launched it. Then you want the other half of a workday: talk to people—channels, private messages, a console that is not IRC cosplay in a separate app.

That used to mean leaving TermSurf. Now it can mean ahnexus: a full-pane Nexus client in the same window, optionally pointed at our BBS.

On July 29 we shipped bare-port localhost open as v0.1.90. This post is the user-facing arc after that—not another browser-feel field note. The biggest thing is Nexus.

The short version

  • Hosted BBSnexus.astrohacker.com runs our production Nexus server (Fargate, durable data, TLS). Operator-grade first; not a claim of a giant public community overnight.
  • ahnexus — PATH command in the Astrohacker package: multi-channel chat, Console (>_), topics, /me, channel list, PMs, broadcasts, Login avatar (CLI + form), Settings password change, files browse/transfer.
  • Files in the browser pane — the path that started with “system file open works” is much closer to finished: drag upload, downloads, progress—so panes behave like a real desktop browser for upload/save, and Nexus files can move the same way.
  • Honest residual — we closed chat parity as good enough, not “every Nexus frame.” Secrets, some slash polish, and deeper protocol areas continue under a planning epic. Full official desktop client parity is a horizon.

If you only remember one sentence: TermSurf already put the web next to the shell; now it can put a real multi-channel BBS client there too—and we run a host you can log into.

What is Nexus?

Nexus is a modern multi-channel BBS: chat, user messages, broadcasts, files, permissions, TLS—the stack documented for clients that speak its protocol. Upstream lives at github.com/zquestz/nexus (server, client, trackers, docs). We are a client of that protocol, not a fork that reinvented the wire.

The project’s author writes more widely at thoughts.greyh.at—engineering notes, OSS, the kind of terminal-adjacent work that sits next to why a BBS-in-a-pane is interesting at all. Credit where it belongs; Astrohacker’s job is the TermSurf product surface and our deployment of the server.

We use path-pinned nexus-common for framing and types. We do not invent chat formats.

Why host our own BBS

Third-party servers are fine for exploration. Product work needs a host we control: deploy, passwords, operator accounts, smoke against a stable name.

So we stood up nexus.astrohacker.com—digest-pinned nexusd, durable storage, public TLS edge. That work closed as nexus host deploy. Chat that only worked against someone else’s lag box was never going to be a product story.

What ahnexus is

ahnexus is the Astrohacker Nexus TermSurf app: Rust local server + React SPA, full pane, same install story as ahcalc / ahhelp.

You connect (host, account, optional avatar). You get:

  • Channels — join, leave, send, members, topics (/topic)
  • Actions/me as real ChatAction::Me, not cosmetic italics on normal text
  • Discovery/channels lists the server catalog on Console (not only rooms you already joined)
  • PMs/msg nick text, tabs at /chat/pm/… (no messaging yourself; the protocol forbids it)
  • Broadcasts/broadcast when permitted; inbound ServerBroadcast as Console lines
  • Console (>_) — system lines, lists, broadcasts—not a place for plain room chat
  • Avatar--avatar /path/to.png or pick/drop on Connect; sent on Login each session (BBS sessions do not magically keep last week’s face after a full disconnect)
  • Files — browse the user area; download/upload through the product path

It is a usable multi-channel client, not a pixel clone of the official Nexus GUI, and not every protocol module (voice, news, full admin).

How you try it

Apple silicon, Astrohacker cask installed:

ahnexus

Connect to nexus.astrohacker.com (or any Nexus host you use). Prefer the docs and in-app help (ahhelp) for flags and smoke paths—including --avatar for scripted login.

Public TermSurf source stays on the usual track: github.com/astrohackerlabs/termsurf. Install remains Homebrew cask astrohacker when you want the packaged app.

Files: finishing the pane browser story

The July 28 field note was honest: system file open worked; the rest of transfer was still coming.

Since then, the transfer path moved a long way: drag-and-drop upload, multi-file cases, downloads to disk, progress feedback. That matters for ordinary websites and for Nexus file areas. A chat client that can list files but cannot save them is a museum exhibit.

Password-manager and cloud vault work continue under their own epics. This post does not claim a vault launch.

What we are not claiming

  • Not “full Nexus protocol done.” We closed ahnexus chat parity as good enough for multi-channel use: topics, list, /me, PMs, broadcasts, avatar. Deferred on purpose: secret channels, join/leave system lines in the transcript, full slash-table polish, every Console notice type.
  • Not English shell / model marketplace / wallet as available SKUs.
  • Not “we are a model lab.”
  • Not a soft-open of every Astrohacker cloud product.

Further protocol work (secrets, voice, news, admin, deeper users/files, client hygiene) is planned under epic Nexus protocol client parity—issues and experiments, not a single big-bang rewrite.

The line

Monorepo product crates moved through the late 0.1.9x range into 0.1.103 in this window. Public cask version is whatever your tap last installed; upgrade when you want host, ahnexus, and file pins together.

Install

Apple silicon, Homebrew:

brew tap astrohackerlabs/astrohacker
brew trust astrohackerlabs/astrohacker
brew install --cask astrohacker

App: /Applications/Astrohacker TermSurf.app. PATH tools include ahterm, ahweb, ahsh, ahcalc, ahhelp, ahnexus, and the Chromium helper as packaged.

Close

Localhost by port number was a small gift to a port-heavy day. Nexus in a pane is a larger one: the same layout that holds your agent and your frontend can hold multi-channel chat against a host we operate—or any Nexus BBS you choose.

Upstream protocol and server: github.com/zquestz/nexus.
Author’s writing: thoughts.greyh.at.
Our public TermSurf source: github.com/astrohackerlabs/termsurf.

Open TermSurf. Run ahnexus. Connect. Stay in the window.

← Back to blog