I built a Slack client because:wave: was lagging
A developer created a terminal-based Slack client due to performance issues with the existing desktop app. The new client, named slk, aims to provide a faster and more efficient experience for users who primarily communicate through text. Utilizing modern TUI libraries, the client supports features like real-time messaging, images, and multi-workspace functionality.
- ▪The developer was frustrated with Slack's sluggish performance and decided to build a terminal-based client.
- ▪The new client, slk, leverages the Kitty graphics protocol to render true-pixel images and avatars in the terminal.
- ▪It includes features such as real-time messaging, multi-workspace support, and a user-friendly interface with themes.
Hacker News (Newest) files mainly under programming. We currently carry 5,306 of its stories.
Story provenance
Source · retrieval · rights · ranking — open for full record
inspect →
Story provenance
Attribution is not the same as permission. This drawer separates discovery metadata, excerpts, WeSearch-generated summaries, reuse status, and whether the publisher receives the visit. Nothing here claims a legal grant the publisher has not made.
Record
| Original publisher | Grant Ammons |
| Canonical URL | https://grant.dev/posts/built-a-slack-client |
| Publication time | Tue, 19 May 2026 09:15:30 +0000 |
| Retrieval time | 2026-05-19T09:34:57.479Z |
| Last seen | 2026-05-19T09:34:57.479Z |
| Headline source | Publisher (no WeSearch rewrite) |
| Excerpt source | publisher body |
| Excerpt method | First ~120 words (~800 chars) of extracted publisher body, fair-use limited. |
| Summary | WeSearch · cerebras-chat (WeSearch summarizer) |
| Summary source text | contentText |
| Citation coverage | Summary is a WeSearch-generated derivative; primary citation is the original publisher URL. |
| Cluster | RiuUVgOxDO19 |
| Cluster logic | Grouped by semantic title/content similarity across sources within a rolling window. Same-publisher template collisions are excluded from coverage comparison. |
| Ranking reason | Story pages are not engagement-ranked. Hub feeds use recency, with optional source-diversified chronological ordering (cap consecutive stories per source). No personalized ranking. |
| Publisher visit | Yes — open original |
| Substitutes article? | No — link-out required for full text |
Rights status (four layers)
WeSearch handling by dimension
| Indexing | May the item be indexed (stored, ranked, made findable)? | Allowed |
| Snippet | May a short excerpt of the publisher's text be shown? | Allowed |
| AI summary | May WeSearch generate its own short summary of the article? | Limited |
| Retrieval / RAG | May the content be exposed for third-party retrieval-augmented generation? | Not asserted |
| Model training | May the content be used to train AI models? | Not asserted |
| Commercial reuse | May the content be reused commercially? | Not permitted |
Basis: Derived from the published RSS/Atom feed. Contact: [email protected]. Reviewed: 2026-07-24.
Opening excerpt (first ~120 words) tap to expand
Home PostsI built a Slack client because :wave: was laggingMay 15, 2026 · 7 min · Grant AmmonsSlack was having a bad day on my machine. Typing :wave: was taking two seconds to autocomplete. Two seconds to autocomplete an emoji! The fan was spinning. The whole app felt sluggish.I have Slack running pretty much nonstop. Most people do. And the whole time I was watching that emoji dropdown crawl I kept thinking.. man, this is just text.Terminals are great at text. The tools I rely on every day - vim, btop, tig, k9s - are a joy to use. They are incredibly fast and responsive. They feel alive. Meanwhile the app that I have to live in all day, where all my conversations happen, is the slowest thing on my machine.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at Grant Ammons.