← Back to Home
Open source · AGPL

Basilisk

Basilisk is a hull class: a ridged bio-hull, grown to order in various tonnages. What you are looking at is the yard that lays them down. One incantation grows a hull, outfits its rooms and musters a crew, and there is a working ship under you — in whatever galaxy you keep, at whatever frontier you happen to be working.

Nothing here is assembled by hand. A vessel's particulars are written down before she exists — the articles are a file — so any yard holding that file can lay down the same ship tomorrow, or a hundred of them. That is what makes them worth sending out, including to places nobody has put one before.

Raisings, watches, and relief in place

A ship holds station through a watch change: a room's keeper is relieved, a fresh name is minted for the newcomer, and the hull does not move. But every full raising is a new ship — the standing vessel is buried under her own name in the log of ships, crew and all, and the yard mints a name never worn before, by any ship living or buried. When the galaxy itself goes down to be rebuilt, that is a yard period.

At two in the morning, "the transporter room is down" is the whole report: which room stopped answering, and what it costs you until it is back. The rooms take type slugs — ready room, bridge, engine room — and their keepers take minted names, so the report names the room while the muster roll names who kept it.

One incantation

Clone the yard: one incantation grows the hull and musters a crew. What the articles name is drawn as needed, the channel to every room is opened for you, and the muster prints who keeps each room and on which ports.

$ git clone https://github.com/gornskew/basilisk
$ cd basilisk && ./basilisk up
[INFO] Crew muster:
Captain Thweed's ready room 6942->6942
1st Off Vossik's bridge 19080->9080
Engineer Dulmer's engine room 29080->9090
Doctor Omba's sick bay (no published ports)

The keepers' names are minted fresh at every raising — read yours off your own muster. The repository lives at github.com/gornskew/basilisk — clone it, file issues, send pull requests.

What is aboard

A Basilisk-class ship is a hull of rooms, each room arriving pre-staffed with its resident. The articles say which rooms the hull grows; every room raises its hailing frequencies the moment she flies, and all of them answer on subspace.

The ready room — the Captain, of the Readymax species

A package-rich, native-compiled GNU Emacs, and the oldest-sounding species in the catalog; its kit also carries Node.js and several terminal AI CLIs. The longest-lived hand aboard — he outlives the others' watch changes, and has opinions about all of them. Territorial, indifferent to ceremony, and in possession of a great deal of undocumented institutional memory. Stand your own watch in his room, or leave him to receive your agents while you work in the editor you already prefer.

Readymax on GitHub →

The bridge and the engine room — of the Gendl species

The Gendl line, grown and published by this yard, standing two watches: the First Officer on the bridge (Clozure CL) and the Ship's Engineer in the engine room (SBCL). Both carry compilers, which is exactly what lets them design a ship from inside one. Discursive, delighted by a hard problem, and prone to rebuilding something that already worked because it could be more elegant.

The Gendl species, ready-grown →

The fitted rooms

A hull can also take rooms from the works: a transporter room of the Cyclops line, arriving pre-staffed with its Transporter Chief, and a radio shack of the Eyes Only line, arriving with its Communications Officer. Their residents carry no compilers — built to run one system rather than to develop new ones. The yard and the standard rooms are free; the fitted rooms are what Gornskew sells. A ship comes up without either, and you can publish routes by hand with docker ports if you would rather.

Cyclops and Eyes Only →

Who keeps which room

A posting is a job somebody has to stand, and a room is where it is stood. It is how you tell, at a glance and at two in the morning, which part of the ship stopped answering.

Captain
the ready room: the console of the ship, and the hand that outlives the others' watch changes. Holds command — the standing orders are written here
First Officer
the bridge: assists the Captain and the ship's visitors, and carries the pocket viewscreen meanwhile
Ship's Engineer
the engine room: engineering for ship and passengers, compiler aboard
Transporter Chief
the transporter room — a room of the Cyclops line: every consignment aboard or ashore passes through here, under the Captain's standing orders
Communications Officer
the radio shack — a room of the Eyes Only line: she keeps the board any ship can project on the bridge viewscreen, or on any bulkhead you point it at
Doctor
the sick bay: watches for the wedged and revives them

A posting, a room, and the species keeping it are three separate facts. Any resident who can stand a watch may stand it — a person could stand the Transporter Chief's, and would carry a compiler of their own, the kind that looks like a slide rule in the shirt pocket. What Gornskew sells for those watches are fitted rooms instead: their residents carry no compiler aboard, built to run one system rather than to develop new ones. A compiler is a seat and a watch is a watch, which is why they are priced differently — the yard and the standard rooms are free, and the fitted rooms are what we sell.

The subspace channel

Every room above answers on the same channel, and the channel is not itself a member of the crew. Cyborg Whisperer is that subspace layer — the kit whose running instance is a Protocol Officer, receiving each arriving cyborg, schooling it in the ship's ways, and dispatching it to the crew member it came to see — so Cursor, VS Code + Copilot, Claude, Gemini, Codex or any other MCP-capable agent can evaluate code aboard. A resident's REPL becomes a general-purpose API, driven through symbolic expressions.

The channel is opened when a ship comes up, to every room on the articles at once — which is why that wiring belongs to the yard rather than to any one crew member.

One ship, or several

No two ships need be alike, and none of them are altered. A vessel's particulars arrive as articles — you do not modify a Basilisk to get a different Basilisk, you write down a different complement and the yard lays that one down instead. Deviations and additions arrive by stack pouch: a small repository of their own, installed beside the yard.

Several ships can fly in the same galaxy, each on her own heading, and every room keeps its type slug aboard its own ship. What an agent hails does not change when a second vessel comes up alongside.

$ BASILISK_INSTANCE=alpha BASILISK_PORT_OFFSET=100 ./basilisk up

Other yards are welcome to lay down Basilisk-compatible hulls and sell the fittings. The fitting catalogue is a public contract, not a private convenience.