Star, vote and view images
Star a commit
Press s to star the selected commit. Press it again to take the star back. Your starred commits are listed under gs, as Notifications and people shows.
Give a pastel
When pastéis mode is on for your dev-null.sh account, press P to give a pastel to the author of the selected commit. You cannot give one to yourself. After you give one, ttyl tells you how many you have left today.
Vote in a poll
- Select a commit with a poll and press v.
- Pick an option with j and k, or press its number.
- Press enter to vote. A vote is final.
// ttyl @ /dev/null ● 3 @ada ╭─ following ── /latest ── trending ─────────────────────────────────╮ ╭ thread ─────────────────────────────────────╮ │ │ +2 lines · space to expand │ │ ● Margaret @margaret · 14h 0000801 │ │ │ │ │ │ settling this for the team. tabs or │ │ ● Linus @linus · 2h 0000301 │ │ │ spaces? │ │ │ first commit here. hello /dev/null. │ │ │ ≡ 1 tabs │ │ │ │ │ │ 2 spaces │ │ ┆ Yesterday │ │ │ votes are final │ │ │ │ │ │ 7:45 PM · Oct 20, 2026 · commit 0000801 │ │ ● Margaret @margaret · 11h · 14 88 0000401 │ │ │ 0 4 │ │ │ notes from rewriting our scheduler. │ │ │ │ │ │ │ │ │ │ 1. the queue was never the bottleneck. │ │ │ │ │ 2. the lock around the queue was. │ │ │ │ │ +8 lines · space to expand │ │ │ │ │ │ │ │ │ ● Grace @grace · 12h · 9 0000601 │ │ │ │ │ the case against OFFSET, with numbers: │ │ │ │ │ https://use-the-index-luke.com/no-offset │ │ │ │ │ We need tool support for keyset pagination · use-the-index-lu… │ │ │ │ │ │ │ │ │ ● Ken @ken · 13h · 15 0000701 │ │ │ │ │ new desk, same bugs. │ │ │ │ │ a desk with two monitors · 1600×1200 │ │ │ │ │ no description · 1200×1600 │ │ │ │ │ │ │ │ │ ● Margaret @margaret · 14h · 4 0000801 │ │ │ │ ┃ settling this for the team. tabs or spaces? │ │ │ │ ┃ ≡ 1 tabs │ │ │ │ ┃ 2 spaces │ │ │ │ ┃ votes are final │ │ │ ╰────────────────────────────────────────────────────────────────────╯ ╰─────────────────────────────────────────────╯ 1-4 pick enter vote esc cancel Q quit
// ttyl @ /dev/null ● 3 @ada ─ following ── /latest ── trending ─────────────── │ ● Linus @linus · 2h 0000301 │ first commit here. hello /dev/null. │ ┆ Yesterday │ ● Margaret @margaret · 11h · 14 88 0000401 │ notes from rewriting our scheduler. │ │ 1. the queue was never the bottleneck. │ 2. the lock around the queue was. │ +9 lines · space to expand │ ● Ada @ada · 3h @margaret the fsync one gets… │ ● Grace @grace · 12h · 9 0000601 │ the case against OFFSET, with numbers: │ https://use-the-index-luke.com/no-offset │ We need tool support for keyset pagination · … │ ● Ken @ken · 13h · 15 0000701 │ new desk, same bugs. │ a desk with two monitors · 1600×1200 │ no description · 1200×1600 │ ● Margaret @margaret · 14h · 4 0000801 ┃ settling this for the team. tabs or spaces? ┃ ≡ 1 tabs ┃ 2 spaces ┃ votes are final │ ● Ada @ada · 15h rejected 0000901 1-4 pick enter vote esc cancel Q quit
Press esc to leave without voting.
View images
A commit with images lists them as ▣ lines with their descriptions. Press
i to view them inside the terminal.
- Press l for the next image and h for the previous one.
- Press O to open the image you see in your browser.
- Press esc to close the viewer.
// ttyl @ /dev/null ● 3 @ada ╭ 0000701 · 1 of 2 ──────────────────────────────────────────────────────╮ ╭─ following ── /lates│ │─────────────────────╮ │ │ │ │ 0000701 │ │ ● Grace @grace · 1h │ │ │ │ │ today's footgun: │ │itors · 1600×1200 │ │ │ │ │00×1600 │ │ │ $name = 'devnull'│ │6 · commit 0000701 │ │ │ echo "<b>$name</b│ │ │ │ │ +2 lines · space t│ │ │ │ │ │ │ │ │ ● Linus @linus · 2h │ │ │ │ │ first commit here.│ │ │ │ │ │ │ │ │ ┆ Yesterday │ │ │ │ │ │ │ │ │ ● Margaret @margaret│ │ │ │ │ notes from rewriti│ │ │ │ │ │ │ │ │ │ 1. the queue was n│ │ │ │ │ 2. the lock around│ │ │ │ │ +8 lines · space t│ │ │ │ │ │ │ │ │ ● Grace @grace · 12h│ │ │ │ │ the case against O│ │ │ │ │ https://use-the-in│ │ │ │ │ We need tool sup│ │ │ │ │ │ │ │ │ ● Ken @ken · 13h · │ │ │ │ ┃ new desk, same bug│ a desk with two monitors │ │ │ ┃ a desk with two │ 1600 × 1200 px │ │ │ ┃ no description ·╰────────────────────────────────────────────────────────────────────────╯ │ ╰────────────────────────────────────────────────────────────────────╯ ╰─────────────────────────────────────────────╯ h/l flip O browser esc close Q quit
// ttyl @ /dev/null ● 3 @ada ─ following ── /latest ── trending ─────────────── │ today's footgun: │ php │ $name = 'devnull'; │╭ 0000701 · 1 of 2 ────────────────────────────╮ ││ │ ││ │ ││ │ ●│ │1 ││ │ ││ │ ┆│ │ ││ │ ●│ │1 ││ │ ││ │ ││ │ ││ │ ││ │ ││ │… ││ │ ●│ │1 ││ │ ││ a desk with two monitors │ ││ 1600 × 1200 px │… │╰──────────────────────────────────────────────╯ ● Ken @ken · 13h · 15 0000701 ┃ new desk, same bugs. ┃ a desk with two monitors · 1600×1200 ┃ no description · 1200×1600 │ ● Margaret @margaret · 14h · 4 0000801 h/l flip O browser esc close Q quit
How the image looks depends on your terminal. A terminal that can draw
pictures, such as Ghostty, kitty, WezTerm or iTerm2, shows the image itself.
Other terminals get the blocky version above, drawn with half-block
characters in color, two pixels to a cell. ttyl asks the terminal which one it
can do when it starts. Inside tmux, ttyl turns on allow-passthrough for
its own pane to get the real picture. See Settings.
Report a commit
- Press ! on the commit.
- Pick spam, harassment, unsafe or other with j and k, or press its number from 1 to 4. Press enter.
- Add details if you want, then press enter to send the report.
Press esc at any step to cancel.