Documentation
¶
Overview ¶
Command slack-tui is a keyboard-first terminal Slack client — a vim-modal three-pane chat client that runs inside your terminal like vim or lazygit. Data currently comes from a mock workspace; real Slack integration lands later.
Directories
¶
| Path | Synopsis |
|---|---|
|
internal
|
|
|
app
Package app is the root Bubble Tea model: navigation state, the modal NORMAL/INSERT keyboard engine (ported from tui-app.jsx's keydown router), and the View that composes the panes.
|
Package app is the root Bubble Tea model: navigation state, the modal NORMAL/INSERT keyboard engine (ported from tui-app.jsx's keydown router), and the View that composes the panes. |
|
auth
Package auth implements Slack's browser OAuth (sign-in) flow for a local app: a loopback HTTP server catches the redirect, then the code is exchanged for tokens.
|
Package auth implements Slack's browser OAuth (sign-in) flow for a local app: a loopback HTTP server catches the redirect, then the code is exchanged for tokens. |
|
config
Package config persists user preferences.
|
Package config persists user preferences. |
|
data
Package data defines the workspace domain types and the mock workspace ported from the handoff's data.js.
|
Package data defines the workspace domain types and the mock workspace ported from the handoff's data.js. |
|
doctor
Package doctor implements `slack-tui doctor`: a diagnostic report that catches the real-world setup failures — stale env tokens overriding the fresh tokens.json, tokens issued before scope additions (missing_scope), config split across the new and legacy dirs, and a silently absent Socket Mode falling back to polling.
|
Package doctor implements `slack-tui doctor`: a diagnostic report that catches the real-world setup failures — stale env tokens overriding the fresh tokens.json, tokens issued before scope additions (missing_scope), config split across the new and legacy dirs, and a silently absent Socket Mode falling back to polling. |
|
markup
Package markup ports the handoff's renderText syntax tokenizer: it splits text on fenced ``` blocks and inline-tokenizes `code`, @mentions, #channels and urls, styling each with the palette's distinct hues.
|
Package markup ports the handoff's renderText syntax tokenizer: it splits text on fenced ``` blocks and inline-tokenizes `code`, @mentions, #channels and urls, styling each with the palette's distinct hues. |
|
onboarding
Package onboarding is the first-run flow: a typewriter boot sequence, auth, a 5-step setup wizard with an interactive keyboard trainer, and a launch hand-off.
|
Package onboarding is the first-run flow: a typewriter boot sequence, auth, a 5-step setup wizard with an interactive keyboard trainer, and a launch hand-off. |
|
root
Package root is the top-level Bubble Tea model.
|
Package root is the top-level Bubble Tea model. |
|
source
Package source abstracts where workspace data comes from.
|
Package source abstracts where workspace data comes from. |
|
theme
Package theme holds the five color palettes, accent overrides, and density settings ported from the design handoff's CSS custom properties.
|
Package theme holds the five color palettes, accent overrides, and density settings ported from the design handoff's CSS custom properties. |
|
ui/components
Package components holds the presentational pieces of the app — sidebar, message list, thread rail, composer, title bar, status bar — ported from the handoff's tui-components.jsx.
|
Package components holds the presentational pieces of the app — sidebar, message list, thread rail, composer, title bar, status bar — ported from the handoff's tui-components.jsx. |
|
ui/pane
Package pane renders the core visual primitive: a single-line box-drawing border with the title embedded in the top rule and an optional right-label, ported from the handoff's Pane component.
|
Package pane renders the core visual primitive: a single-line box-drawing border with the title embedded in the top rule and an optional right-label, ported from the handoff's Pane component. |
Click to show internal directories.
Click to hide internal directories.