Cross-platform TUI social media client for X, Bluesky, dev/null, Threads and Mastodon.
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
| Key | Action |
|---|---|
j k ↓ ↑ | Move to the next or previous post. A taller post is crossed first. |
space PgDn ctrl-f | Move a page down. A taller post is crossed first. |
PgUp ctrl-b | Move a page up. A taller post is crossed first. |
ctrl-d ctrl-u | Move half a page down or up. A taller post is crossed first. |
g Home / G End | Select the first or last post. |
⏎ → | Open the selected thread or folded replies. |
⌫ ← esc | Go back. With a focus ring, esc clears the ring first. |
Act
| Key | Action |
|---|---|
l | Like; press again to undo (favorite on Mastodon, star on dev/null). |
t | Repost; press again to undo where supported. |
b | Bookmark; press again to remove. |
r | Reply to the selected post. |
n | Compose a new post. |
o | Open the selected post's link, or the current profile, in a browser. |
v | View the selected post's images. |
u | Open the author's profile. |
s | Open the share dialog to copy a link, repost or quote. |
m | Load the next page. |
ctrl-r cmd-r | Reload the page on screen. r still replies. |
. | Inspect the selected post as JSON. |
Go
| Key | Action |
|---|---|
1 to 9 | Open a feed tab. |
{ } | Open the previous or next feed tab. |
[ ] | Open the previous or next section. |
tab shift-tab | Focus the next or previous control; ⏎ activates it. |
F6 shift-F6 | Move focus to the next or previous zone. |
: ctrl-k | Open the command palette. |
f / | Open search. |
ctrl-a | Open Ask to search posts already loaded. |
View
| Key | Action |
|---|---|
d | Cycle and save the detail level. |
D | Pick and save a detail level. |
T | Preview a theme, then select it to save. |
Hold ctrl or cmd | Reveal shortcuts and underline actions where the terminal reports modifier keys. |
x | Show or hide replies in the current view. |
a | Cycle through signed-in networks, then all networks. |
A | Open the network picker. |
F | Open the network filter. |
0 | Show all signed-in networks. |
< > | Show the previous or next network. |
, | Open Settings. |
⌘-click ctrl-click | Open names and links in the browser in terminals that support hyperlinks. |
Other
| Key | Action |
|---|---|
? | Open the key reference. |
q | Quit the reader. Dialog shortcuts depend on context. |
ctrl-c | Quit; in the composer, edited text opens the save-draft question. |
See all keyboard shortcuts for composer, dialog and Settings controls.