{"$schema":"https://ejfox.com/schema/page-twin@1.json","kind":"project","url":"https://ejfox.com/projects/github-sloth","json_url":"https://ejfox.com/projects/github-sloth.json","generator":"ejfox.com/json-twin@1","data":{"cacheVersion":"2026-05-13-gear-cards","html":"<!-- TODO (EJ): NEEDS A HERO IMAGE: a terminal screenshot. -->\n<p class=\"\">A minimalist amber-on-black terminal UI for GitHub PRs, reviews, and checks, written in Rust. It is designed to be complementary to lazygit.</p>\n<p class=\"\">I wanted my own top-level minimalist view of all of my open work — most of my work collaborations happen through GitHub. It's part of a process of redesigning all of my tools and daily interfaces to the world with an eye towards exactly what I need and what serves me.</p>\n<p class=\"\">I've been having a lot of fun lately writing minimalist TUIs I can run in tmux panes — my workspace lately is often just a full-screen terminal with different tmux panes and windows, and I really like it when the interface is just text. It lets me think about the functionality and core offerings rather than diving into padding and spacing and layout the way I do in CSS and front-end.</p>\n<figure role=\"figure\" aria-label=\"The PR rollup logic in Rust — status glyphs and age coloring\" class=\"\">\n<img src=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/github-sloth/code.png\" alt=\"The PR rollup logic in Rust — status glyphs and age coloring\" loading=\"lazy\" decoding=\"async\" srcset=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_640/projects/github-sloth/code.png 640w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_960/projects/github-sloth/code.png 960w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/github-sloth/code.png 1280w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1920/projects/github-sloth/code.png 1920w\" sizes=\"(max-width: 430px) 92vw, (max-width: 768px) 85vw, 900px\" title=\"The PR rollup logic in Rust — status glyphs and age coloring\" width=\"1400\" height=\"900\" style=\"--splay-rot:1.75deg;\" data-dimensions=\"1400×900\" class=\"img-full my-8 rounded-sm img-splay w-full mx-auto py-4\" crossorigin=\"anonymous\">\n<figcaption class=\"\">The PR rollup logic in Rust — status glyphs and age coloring</figcaption>\n</figure>\n<figure role=\"figure\" aria-label=\"The TUI rendering — ratatui layout and styled spans for the PR list\" class=\"\">\n<img src=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/github-sloth/code2.png\" alt=\"The TUI rendering — ratatui layout and styled spans for the PR list\" loading=\"lazy\" decoding=\"async\" srcset=\"https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_640/projects/github-sloth/code2.png 640w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_960/projects/github-sloth/code2.png 960w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1280/projects/github-sloth/code2.png 1280w, https://res.cloudinary.com/ejf/image/upload/c_scale,f_auto,q_auto:good,w_1920/projects/github-sloth/code2.png 1920w\" sizes=\"(max-width: 430px) 92vw, (max-width: 768px) 85vw, 900px\" title=\"The TUI rendering — ratatui layout and styled spans for the PR list\" width=\"1400\" height=\"900\" style=\"--splay-rot:1.34deg;\" data-dimensions=\"1400×900\" class=\"img-full my-8 rounded-sm img-splay w-full mx-auto py-4\" crossorigin=\"anonymous\">\n<figcaption class=\"\">The TUI rendering — ratatui layout and styled spans for the PR list</figcaption>\n</figure>","title":"GitHub Sloth","metadata":{"title":"GitHub Sloth","date":"2026-05-01T00:00:00.000Z","category":"Tools","featured":false,"draft":false,"url":"https://github.com/ejfox/github-sloth","tech":["Rust"],"state":"deployed","ai-involvement":"ai-assisted","tags":["cli","terminal","git"],"words":180,"images":2,"imageDetails":{"total":2,"cloudinary":2,"withDimensions":0},"links":0,"codeBlocks":0,"headers":{},"toc":[],"type":"post"}},"_links":{"self":"https://ejfox.com/projects/github-sloth.json","html":"https://ejfox.com/projects/github-sloth","index":"/projects.json"}}