Hammer

· PM-mirror


There's an era of the internet I simply can't forget: the BBS days. You dialed in, the modem sang that strange song, and on the other side a whole world made of text opened up — menus drawn in ASCII, colors blinking in the terminal, a corner to chat, to download something, to play. It was small, handmade, and it had a soul. Every system looked like the person who ran it.

Hammer was born out of that longing. It didn't come from a market need, or from any metric, or from some grand plan. It came from a fondness for the old net and a silly, stubborn wish to see that terminal screen open up again when you connect. It was fun, in the most honest sense of the word — the kind of project you build on a weekend because it gives you pleasure, not because someone asked for it.

“What if, instead of yet another website, the way in was SSH itself?”

That was the question that pulled the rest along. You open the terminal, type a command, and land in a menu — like in the old days, only running on today's infrastructure, with real encryption and no dialing. Nostalgia on the outside; modern engineering on the inside.

What Hammer is

At heart, Hammer is a toolbox you reach over SSH. You connect and find an interactive menu, with colors and drawn boxes, right in the spirit of a BBS. The first tool to be born was the weather one — ask for the forecast for any city and it answers right there, in the terminal, in nice-looking text. But the fun part is that weather is just the first drawer of a cabinet that keeps growing.

Next to it came small everyday utilities for anyone who works with networks and text:

● net — DNS, TLS, HTTP and domain information checks;

● qr — generates an ASCII QR code, for a URL, phone number or text;

● hash — digest, type and entropy of anything you paste;

● jq — transforms and filters JSON and YAML;

● age — encrypts and decrypts messages;

● and others that only show up in the menu when the server has what they need — like link checking, database lookups and route diagnostics.

Every one of them follows the same philosophy: a closed vocabulary, with validated input. No open shell for the whole world — it's a menu with the right doors, not a back door.

How it was built

Hammer is written in Go, and the decision that defines almost everything else was this: it's a single static binary. Fonts, translations, page templates and whatever else the program needs are embedded inside the executable itself (the language's embed feature). The result is that there are no loose dependencies to install and no extra server in front of it: one file, which you copy and run.

The nostalgic front door — the BBS — is its own SSH server. When you connect, it draws the menu, reads keystroke by keystroke, handles accents and emoji at the right terminal width, and keeps a profile that's yours alone: default city, saved cities, units, language and theme. That profile is stored in a lightweight database, so it comes back the same on your next visit.

The weather service has a heritage I make a point of crediting: it started as a Go reimagining of wttr.in — that project that shows the weather in the terminal via curl. A good part of the output formats, the vocabulary of options and the dozens of translations descend from that work, and the original is still the reference. On top of that base I stitched together the rest: the menu, the tools, the visual identity.

To get it up and running painlessly, Hammer runs in a container. The weather web service sits behind a reverse proxy, with HTTPS handled at the entrance; the BBS, being pure SSH, answers directly on its own port. Two faces of the same program, in the same process.

Getting in without red tape

One detail mattered to me: I wanted getting in to be as easy as it used to be. No creating an account, making up a password, confirming an email. So Hammer accepts anonymous access — you type the command with the guest user and you're in, no strings attached. Whoever prefers can identify with their own key; whoever doesn't, gets in anyway.

And, true to the spirit of the thing, preferences stay saved even for anonymous visitors: pick a city, adjust the theme, come back later — and it remembers. So it doesn't turn into a mess, there are gentle limits: a cap on simultaneous connections and a workspace that cleans itself up from time to time. Enough to play around freely, without leaving the door open to abuse.

So...

In the end, Hammer is exactly what I wanted it to be: a little corner of the old internet that still breathes. A place where you open the terminal, hear — in your imagination — the modem sing, and find a text menu waiting for you. Made with today's tools, but with its heart back there.

It's not a product. It's a hobby that turned into software, open source, that keeps growing one drawer at a time. And, honestly, that's the best part: not having to be more than that.