limit-cli
AI-powered terminal coding assistant with REPL and TUI.
An intelligent coding assistant that lives in your terminal. Features multi-provider LLM support, session persistence, and 18 built-in tools for file operations, git, and code analysis.
Part of the Limit ecosystem.
Why This Exists
Developers shouldn't have to leave their terminal to get AI assistance. limit-cli brings the power of LLMs directly to your command line with a beautiful TUI, full tool integration, and seamless session management.
Features
- Multi-provider LLM: Anthropic Claude, OpenAI GPT, z.ai GLM, and local models
- Two interfaces: Full TUI (default) or simple REPL mode with
--no-tui - 18 built-in tools: File I/O, bash execution, git operations, code analysis
- AST-aware search: Structural code matching with
ast-grep(Rust, TypeScript, Python) - LSP integration: Go-to-definition, find-references
- Session persistence: Auto-save and restore conversations
- Token tracking: SQLite-based usage tracking with cost estimation
- Web search: Fetch current information via Exa AI
- Markdown rendering: Rich formatting with syntax highlighting
- File autocomplete: Type
@to quickly reference files with fuzzy matching
Installation
One-line Install (Recommended)
|
via Cargo
Requirements: Unix-like OS (Linux, macOS), Rust 1.70+
Quick Start
# Set your API key
# Start the TUI
That's it! Start chatting with your AI coding assistant.
REPL Mode
Configuration
Create ~/.limit/config.toml:
= "anthropic"
[]
= "claude-sonnet-4-6-20260217"
= 4096
Environment Variables
| Variable | Provider |
|---|---|
ANTHROPIC_API_KEY |
Anthropic Claude |
OPENAI_API_KEY |
OpenAI |
ZAI_API_KEY |
z.ai |
Built-in Tools
File Operations
| Tool | Description |
|---|---|
file_read |
Read file contents (max 50MB) |
file_write |
Create or overwrite files |
file_edit |
Diff-based file editing |
Shell & Git
| Tool | Description |
|---|---|
bash |
Execute shell commands |
git_status |
Show repository status |
git_diff |
Show changes |
git_log |
Show commit history |
git_add |
Stage files |
git_commit |
Create commit |
git_push / git_pull |
Remote operations |
git_clone |
Clone repository |
Code Analysis
| Tool | Description |
|---|---|
grep |
Regex search in files |
ast_grep |
AST-aware code search (Rust, TypeScript, Python) |
lsp |
Language server operations |
Web
| Tool | Description |
|---|---|
web_search |
Search the web via Exa AI |
web_fetch |
Fetch URL content as markdown |
browser |
Browser automation for testing and scraping |
Session Management
Sessions are automatically saved to ~/.limit/sessions/:
# In the TUI/REPL
File Autocomplete
Type @ in the TUI to quickly reference files:
Read @Cargo.toml and analyze the dependencies
Features:
- Fuzzy matching powered by Frizbee
- Respects
.gitignoreand.ignore - Keyboard navigation (↑/↓/Enter/Tab/Esc)
Commands
| Command | Description |
|---|---|
/exit |
Save session and exit |
/clear |
Clear the screen |
/help |
Show available commands |
/model |
Show current model configuration |
/tldr |
Enable code analysis for this project |
/session list |
List all saved sessions |
/session new |
Create a new session |
/session load <id> |
Load a specific session |
/share |
Copy session to clipboard |
/share md |
Export session as markdown |
/share json |
Export session as JSON |
Code Analysis (TLDR)
TLDR provides token-efficient code analysis with 95% savings vs reading raw code. It's opt-in per project for performance reasons.
Enabling TLDR
# In the TUI, run:
# Or use the alias:
This enables code analysis for the current project. The setting persists in ~/.limit/tracking.db.
Permissive Mode
If the AI tries to use code analysis but TLDR isn't enabled, it will ask for permission:
AI: Code analysis (TLDR) is not enabled for this project.
Would you like to enable it? Run /tldr to activate.
Available Analysis Types
| Type | Description |
|---|---|
search |
Find functions/structs by keyword |
context |
Get dependencies and callers |
source |
Get function code (instead of file_read) |
impact |
Find who calls a function |
cfg |
Control flow graph |
dfg |
Data flow graph |
dead_code |
Find unreachable functions |
architecture |
Detect module layers |
Example Usage
Ask the AI natural language questions:
- "What does the
process_messagefunction do?" - "Who calls
handle_request?" - "Find all functions related to authentication"
- "Show me the architecture of this codebase"
Token Tracking
Usage statistics are tracked in ~/.limit/tracking.db:
- Request count
- Input/output tokens
- Cost estimation
- Duration metrics
License
MIT © Mário Idival