How codeandgyan/klaude-code works
Klaude is a terminal chat coding assistant: the user submits a prompt, the app sends conversation context to a streaming model, executes any returned tools, and renders the reply and status in the terminal UI. The graph includes prompt/context preparation, model and tool handling, and the UI’s major display areas. Some modules, including tools and provider, were not excerpted; their relationships are shown only where the source index or excerpts support them.
Main entry points: src/index.js App entry · tui/index.js Terminal UI · output.js Output pane · statusBar.js Status bar
Components 20
App orchestration
- App entry
src/index.js - Project context
src/context.js
Assistant runtime
- System prompt
src/systemPrompt.js - Chat orchestration
src/chat.js - Model provider
src/provider.js - Tool execution
src/tools.js
Terminal interface
- Terminal UI
src/tui/index.js - Prompt input
src/tui/footer/chat.js
UI presentation
- Header content
src/tui/header/index.js - Welcome card
src/tui/header/welcomeCard.js - Output pane
src/tui/body/output.js - Log stream
src/tui/body/logStream.js - Code formatting
src/tui/body/format.js - Output scrolling
src/tui/body/scroll.js - Tool display
src/tui/body/toolBox.js - Status bar
src/tui/footer/statusBar.js - Progress display
src/tui/footer/progress.js - Status vocabulary
src/tui/footer/statusVocabulary.js - UI theme
src/tui/theme.js
Other components
- Terminal user
Connections 27
- Terminal user → Prompt input: enters prompt
README.md - App entry → Project context: loads file list
src/index.js - App entry → System prompt: builds instructions
src/index.js - App entry → Terminal UI: creates interface
src/index.js - App entry → Chat orchestration: submits conversation
src/index.js - Chat orchestration → Model provider: requests stream
src/chat.js - Chat orchestration → Tool execution: executes calls
src/chat.js - Prompt input → App entry: submits prompt
src/tui/footer/chat.js - Terminal UI → Header content: creates header
src/tui/index.js - Terminal UI → Output pane: creates output
src/tui/index.js - Terminal UI → Tool display: creates tool display
src/tui/index.js - Terminal UI → Prompt input: creates input
src/tui/index.js - Terminal UI → Status bar: creates status
src/tui/index.js - App entry → Output pane: streams reply
src/index.js - App entry → Status bar: updates progress
src/index.js - App entry → Tool display: logs tool events
src/index.js - Header content → Welcome card: includes card
src/tui/header/index.js - Output pane → Log stream: appends output
src/tui/body/output.js - Log stream → Code formatting: formats text
src/tui/body/logStream.js - Log stream → Output scrolling: uses scrolling
src/tui/body/logStream.js - Output pane → Output scrolling: manages scrolling
src/tui/body/output.js - Status bar → Progress display: renders progress
src/tui/footer/statusBar.js - Progress display → Status vocabulary: picks status words
src/tui/footer/progress.js - Output pane → UI theme: uses colors
src/tui/body/output.js - Tool display → UI theme: uses colors
src/tui/body/toolBox.js - Status bar → UI theme: uses colors
src/tui/footer/statusBar.js - Welcome card → UI theme: uses colors
src/tui/header/welcomeCard.js