https://github.com/malbiruk/frond
TUI LLM chat client with branching and complete context control, built in Rust
https://github.com/malbiruk/frond
chat-client chatgpt cli context-management conversation-branching editable-chat knowledge-management llm prompt-engineering rust structured-thinking tui
Last synced: 12 days ago
JSON representation
TUI LLM chat client with branching and complete context control, built in Rust
- Host: GitHub
- URL: https://github.com/malbiruk/frond
- Owner: malbiruk
- Created: 2025-06-21T12:22:22.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-08-09T11:18:24.000Z (10 months ago)
- Last Synced: 2025-08-09T11:36:46.437Z (10 months ago)
- Topics: chat-client, chatgpt, cli, context-management, conversation-branching, editable-chat, knowledge-management, llm, prompt-engineering, rust, structured-thinking, tui
- Language: Rust
- Homepage:
- Size: 299 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# frond
## about
`frond` 🌿 -- TUI LLM chat client with branching and complete context control, built in Rust.
## idea
1. **full context control**
- you choose what the LLM sees. edit, hide, reorder messages. switch roles (user/assistant), split or merge messages.
2. **flexible, branchable conversations**
- fork from anywhere. explore side paths without losing the main thread. flow data in and out easily. remix and reuse.
3. **structured thinking space**
- you see the full picture: folders → dialogues → trees → branches → messages. context for the llm stays tight, but you don’t lose the broader map.
## why?
interacting with LLMs is powerful — to learn, code, brainstorm, write — but most clients limit how you manage the conversation.
usual web apps:
- let you edit only user messages (not agent)
- always auto-branch on edit
- don't show token count
- silently drop old messages
- hard to navigate or search past chats
`frond` gives you:
- full context control (edit anything, reorder, hide, split/merge, switch roles)
- clear token usage
- branching, folders, tags
- full edit history and checkpoints
- proper search (by folder/dialogue/branch/message, filtered by tag etc.)
it’s also fast, and TUI makes it easy to pass folder structures, files, or other context to the LLM.
heavily inspired by zed’s text threads — but zed has no branching or extensive history organization features, and web UIs don’t give you this level of control.
## features
- **core**
- fully editable context (user and assistant messages)
- switch roles, split/merge messages, reorder
- branching conversations
- fork from any message, navigate trees and branches
- token count per branch
- know how much context you’re sending
- **editing & history**
- ctrl+z / ctrl+shift+z for undo/redo
- per-message edit history (if not last)
- full tree history (snapshots / checkpoints)
- clone, detach, attach branches
- save trees or branches to new dialogue
- import or mention other dialogues/trees/branches/messages
- **commands & input**
- special commands: `/file`, `/tree`, `/prompt`, `/now`, `/fetch`
- support for images/files (not just text)
- paste folding (large blocks, syntax-aware)
- syntax highlighting (markdown and code)
- copy sections between \`\`\` and \`\`\`
- **organization**
- saved trees and branches
- pins, tags + folder-based organization
- create a dialogue from folder/tag
- shows as multiple orphaned trees
- trash system (per tree, branch, or full dialogue)
- my prompts (reusable prompt library)
- **navigation & ui**
- search by folder, dialogue, branch, message
- filter by tag, search contents or titles
- live updates across sessions
- editing one view updates others (sqlite-based)
- gui tabs & windows (planned)
- tui is split-friendly already, gui will support tabbed workflows
- **context visibility**
- hide messages from llm (for notes or pruning)
- keeps them in tree, out of prompt
- optional links/mentions (reference other trees/branches, not sent to llm)
- **later ideas**
- RAG (chat with documents)
- mcps and agentic capabilities (multi-chain or planner support)