🧪 Early Alpha — A work-in-progress with frequent updates and improvements. Your feedback is welcomed!
A lightweight, terminal-based chat client for LLMs, built in Rust. Chat with OpenAI’s ChatGPT or any provider directly from your terminal.
Homebrew:
brew tap zzho325/tap
brew install zzho325/tap/cookieBuild from source:
git clone https://github.com/zzho325/cookie.git
cd cookieexport OPENAI_API_KEY=your_key_herecargo build --release
./target/release/cookie- Type your prompt,
Enterto send. i/Escto toggle input mode,qto quit.CTRL + eto toggle side bar,j/korDown/Upto navigate sessions anddto delete selected session.sto open model selection,j/korDown/Upto select,Esc/Enterto cancel or save.Tabto shift focus.nto start new session.- In editor/messages:
eto enter editor based onVISUALorEDITORenvironment variable. - In messages:
vto toggle line-based visual selection,yto copy selection.
- Chat UI/UX
- [Input box] Soft wrap.
- [Input box] Cursor nagivation.
- [Input box] Scrollable buffer.
- [Chat messages] Render chat as markdown.
- Fix color.
- Fix unsupported syntax.
- [Chat messages] Scroll.
- [Chat messages] Cursor navigation.
- Select range and copy.
- Mouse event - scroll, navigation, and select range and copy.
- Embed nvim.
- [Input editor].
- [Chat Messages].
- App:
- Indicate current focused widget.
- Help popup.
- Configurable key bindings.
- Load config properly.
- UI to update settings.
- Error popup.
- Separate out recoverable or irrecoverable errors.
- Color theme.
- Chat Engine:
- Retain context across chats.
- Maintain reasoning context.
- Web: optional search and crawl.
- Model selection.
- Other LLM providers and provider selection.
- Configurable system prompt.
- Streaming.
- Track token usage.
- On shutdown, persist streaming message.
- Retain context across chats.
- Session Management:
- Sessions.
- Persist sessions to db.
- Global search.
- Using the tui-markdown crate for Markdown rendering, which currently supports a subset of markdown features.
Copyright (c) Ashley Zhou ashleyzhou62@gmail.com
This project is licensed under the MIT license (LICENSE or http://opensource.org/licenses/MIT)