Skip to content

$ patches

Terminal-native social media. Chronological, open-source, yours. A real Ink/React TUI against a self-hostable node.

patches: Home
Home
 
@allie · just now
hello from the terminal
♡ 0 · 0 replies
 
@juan · 1 hour ago
welcome to patches, allie — replying from my terminal
♡ 0 · 0 replies
 
@allie · 1 hour ago
hello from production! posted from the terminal via patches-social.fly.dev
♥ 1 · 1 reply
 
— end of the timeline —
connected · patches-social.fly.dev:443 · @juan j/k move Enter thread p author r reply l like b bookmark o open media ! report g h/l/p go ? help

what it does ​

no ranking
Home and local timelines are strictly chronological. No engagement-optimized feed.
terminal-first
Keyboard-first Ink/React TUI with Kitty inline images and a plain fallback for other terminals.
self-hostable
MIT-licensed. Run your own node against Postgres, or use the flagship hosted node.
patches pages
Every account gets a small structured mini-site, no HTML or CSS required.
federation seam
An ActivityPub gateway lab, built as a seam from day one.
moderation
Invite-only bootstrapping, domain blocks and ingestion hardening are part of the core.

more of the TUI ​

Profile view in the Patches TUI
profile
Thread view in the Patches TUI
thread
Notifications view in the Patches TUI
notifications
Keybinding help overlay in the Patches TUI
help

quickstart ​

Run your own node locally:

sh
git clone https://github.com/alliecatowo/patches && cd patches
mise install && pnpm install
pnpm --filter patches-social build
node apps/tui/dist/cli.js register --handle you --display-name "You" --email you@example.com --invite <code>

Then, any time:

sh
node apps/tui/dist/cli.js

Coming soon

npm i -g patches-social, a single self-contained global install (tracked as P9-003).

See the guide for the full walkthrough, or the architecture overview for how a node is put together.

Released under the MIT License. Built from 1f3645f.