So_SoCLI

Cross-platform TUI social media client for X, Bluesky, dev/null, Threads and Mastodon.

0.1.2 MIT npx soclish --demo needs no account

SoCLIFull screen

Unified social feed

Read your networks in one full-screen TUI, with Home, Discover and Saved feeds, mentions and search. Move through posts with the keyboard or mouse, and filter the feed to the networks you want to read.

Direct CLI commands

Read, search and act from your shell. Run commands such as socli search "rust" --net bluesky --json, or use --print --no-prompt for terminal text. The command reference covers arguments, options and examples.

Post across networks

Publish text to several networks with socli post "hello" --net x,bluesky. Reply, quote, like, repost and bookmark where the network supports it. The TUI composer keeps drafts, and --dry-run checks a command before you send it.

Threads and profiles

Follow conversations on thread rails, expand folded replies and open an author's profile. On wide terminals, split view keeps the feed beside the selected conversation so you can read both at once.

Terminal appearance and images

Choose themes, spacing and four detail levels, from plain text to inline pictures and link previews. View images in the terminal with kitty, iTerm2 or sixel graphics, with half blocks as the fallback.

JSON for scripts and agents

Pipe feeds and command results to other tools with --json. Coding agents get JSON output automatically, without interactive prompts. Per-network write results and exit codes let callers check what succeeded.

WebAssembly in the browser

The reader on this page is the SoCLI program, compiled to WebAssembly, with the same keys and layout. It opens the welcome screen until this site has an account. Bluesky, Mastodon, Threads and X sign in and read here. X and Threads open an approval page when this build includes SoCLI's app id. A build without that id says so. X on the page uses the official API, so For you is a search, and likes and follows can be refused. The local docs server forwards only api.x.com for the X token exchange, and a static host such as GitHub Pages does not. Threads sends the approval code to https://socli.sh/threads/token, which holds the app secret. The Threads app is published. dev/null signs in on the page: it opens the approval on dev-null.sh, and you paste the devnull:// callback. GitHub SSH signing stays in the terminal. socli login x in a terminal still imports the browser session. The page keeps its config, tokens included, in this origin's local storage. Rich mode draws profile pictures and post images on the page, including a signed-in timeline, by loading each image from its URL. ui.images set to off keeps the image card. kitty, iTerm2 and sixel stay in the terminal. The buttons above the reader set a mobile, tablet, or desktop window, and full screen opens a page that is only the reader.

Keys

These shortcuts apply to the full-screen terminal reader. Press ? to open its key reference. Movement keys scroll the reference when it exceeds the terminal height; another key closes it. Post actions depend on what each network supports.

Move ​

KeyAction
j k ↓ ↑Move to the next or previous post. A taller post is crossed first.
space PgDn ctrl-fMove a page down. A taller post is crossed first.
PgUp ctrl-bMove a page up. A taller post is crossed first.
ctrl-d ctrl-uMove half a page down or up. A taller post is crossed first.
g Home / G EndSelect the first or last post.
⏎ →Open the selected thread or folded replies.
⌫ ← escGo back. With a focus ring, esc clears the ring first.

Act ​

KeyAction
lLike; press again to undo (favorite on Mastodon, star on dev/null).
tRepost; press again to undo where supported.
bBookmark; press again to remove.
rReply to the selected post.
nCompose a new post.
oOpen the selected post's link, or the current profile, in a browser.
vView the selected post's images.
uOpen the author's profile.
sOpen the share dialog to copy a link, repost or quote.
mLoad the next page.
ctrl-r cmd-rReload the page on screen. r still replies.
.Inspect the selected post as JSON.

Go ​

KeyAction
1 to 9Open a feed tab.
{ }Open the previous or next feed tab.
[ ]Open the previous or next section.
tab shift-tabFocus the next or previous control; ⏎ activates it.
F6 shift-F6Move focus to the next or previous zone.
: ctrl-kOpen the command palette.
f /Open search.
ctrl-aOpen Ask to search posts already loaded.

View ​

KeyAction
dCycle and save the detail level.
DPick and save a detail level.
TPreview a theme, then select it to save.
Hold ctrl or cmdReveal shortcuts and underline actions where the terminal reports modifier keys.
xShow or hide replies in the current view.
aCycle through signed-in networks, then all networks.
AOpen the network picker.
FOpen the network filter.
0Show all signed-in networks.
< >Show the previous or next network.
,Open Settings.
⌘-click ctrl-clickOpen names and links in the browser in terminals that support hyperlinks.

Other ​

KeyAction
?Open the key reference.
qQuit the reader. Dialog shortcuts depend on context.
ctrl-cQuit; in the composer, edited text opens the save-draft question.

See all keyboard shortcuts for composer, dialog and Settings controls.