Show HN: We built a terminal-only Bluesky / AT Proto client written in Fortran

A unique open-source project has emerged, allowing users to access the Bluesky social network directly from the terminal using Fortran, combined with the processing power of Rust and C.
Yes, that Fortran.
A terminal-only Bluesky / AT Protocol client written in Fortran, with a Rust native firehose decoder for the relay-raw stream path.
Fortran TUI (src/)
└─ C libcurl bridge (cshim/)
└─ Fortran iso_c_binding module (src/atproto/firehose_bridge.f90)
└─ Rust staticlib (bridge/firehose-bridge/)
envelope → CAR → DAG-CBOR → NormalizedEvent → JSONL
+ firehose_bridge_cli binary (used by relay_raw_tail.py)
Session state is saved in ~/.fortransky/session.json. Use an app password, not your main Bluesky password.
sudo apt install -y gfortran cmake pkg-config libcurl4-openssl-dev
Requires rustc >= 1.70. Install via rustup if not present.
The relay_raw_tail.py helper is launched as a subprocess by the TUI. It must be able to import cbor2 and websockets using whichever python3 is on PATH at the time Fortransky runs.
Build & Run:
./scripts/build.sh builds the Rust bridge first, then runs CMake.
Run with ./build/fortransky.
Key Commands:
l: login + fetch timelinex: logouta <handle>: author feeds <query>: search postsc: compose postj: stream tailm: toggle stream mode (jetstream / relay-raw)q: quit
Navigation:
j/k: move selectionn/p: next / previous pager: replyl: likeR: repost
Technical Notes:
- jetstream: connects to Bluesky's Jetstream WebSocket service. Lower bandwidth, JSON native.
- relay-raw: connects to the raw AT Protocol relay. Uses native Rust decoder for binary CBOR frames.
- JSON parser is hand-rolled and lightweight.
- Stream view shows raw DIDs; handle resolution is not yet implemented.
Changelog Highlights:
- v1.1: Native Rust firehose decoder integrated.
- v1.0: Like, repost, quote-post actions.
- v0.7: C libcurl bridge replacing shell curl.
Source: Hacker News










