Agentic coding CLI with multi-provider LLM support
Project description
chalilulz
Agentic coding CLI with multi-provider LLM support
OpenRouter · Ollama · Mistral · Groq · Gemini
Features
- Multi-Provider Support — Seamlessly switch between OpenRouter, Ollama, Mistral, Groq, and Gemini
- Streaming Responses — Token-by-token output directly in the terminal
- Agent Safety Guardrails — 25-round max agent loop guard and interactive
[y/N]prompts before executing dangerous tools (likebash,rm,write) - Interactive REPL — Supports
readlinetab-completion for/commandsand local file paths! - Context Window Truncation — Dynamic bounding up to ~60k tokens to prevent API capacity errors
- Session Persistence — Use
/save <name>and/load <name>to seamlessly pause and resume work - Gorgeous ANSI Rendering — Renders markdown blocks, bold headings (
#), and list items (-) natively - Agent Skills — Load custom system instruction sets from
.skills/directory - Zero Dependencies — Pure Python standard library inside — no massive packages required
Installation
Quick Install (pip)
# Install globally via git
pip install git+https://github.com/ForgedInFiles/chalilulz.git
# Or install locally (editable mode)
git clone https://github.com/ForgedInFiles/chalilulz.git
cd chalilulz
pip install -e .
Requirements
- Python 3.8 or higher
- API keys for your chosen provider (optional for local Ollama)
Quick Start
# After installation, run from anywhere
chalilulz
# Or set a specific model
chalilulz --model openrouter:arcee-ai/trinity-large-preview:free
# Run with Ollama (default)
chalilulz --model ollama:llama2
# Run with Mistral
chalilulz --model mistral:mistral-small-latest --mistral-key $MISTRAL_API_KEY
# Run with Groq
chalilulz --model groq:llama-3.1-70b-versatile --groq-key $GROQ_API_KEY
# Auto-approve tool execution
chalilulz --yes
Configuration
You can configure persistent defaults by creating ~/.config/chalilulz/config.json:
{
"model": "openrouter:anthropic/claude-3.5-sonnet",
"ollama_host": "http://localhost:11434",
"mistral_key": "YOUR_MISTRAL_KEY",
"yes": false
}
Or you can use Environment Variables:
| Variable | Description |
|---|---|
OPENROUTER_API_KEY |
API key for OpenRouter |
MISTRAL_API_KEY |
API key for Mistral AI |
GROQ_API_KEY |
API key for Groq |
GOOGLE_API_KEY |
API key for Gemini |
CHALILULZ_MODEL |
Default model (e.g., openrouter:arcee-ai/trinity-large-preview:free) |
CHALILULZ_OLLAMA_HOST |
Ollama host (default: http://localhost:11434) |
Available Tools
| Tool | Description |
|---|---|
read |
Read files with line numbers |
write |
Write/create files (auto mkdir) |
edit |
Replace a unique string in files |
multi_edit |
Apply large non-contiguous patches to files via JSON array |
glob |
Find files by glob pattern sorted by mtime (ignores .git/, node_modules/, etc) |
grep |
Search files by regex |
bash |
Execute shell commands |
ls |
List directory contents |
mkdir |
Create directories recursively |
rm |
Delete files or directories |
mv |
Move/rename files |
cp |
Copy files or directories |
find |
Recursive find by name pattern |
load_skill |
Load full skill instructions by name |
REPL Commands
During an active session, you can use the following commands:
/model <slug>- Switch provider/model live (e.g.,/model ollama:codellama)/save <name>- Save the current session context to~/.local/share/chalilulz/sessions//load <name>- Load a previously saved session context/yes- Enable auto-approval for dangerous tool execution (bash,rm,write,edit)/no- Disable auto-approval (default behavior)/skills list- List available.skills/bundles/c- Clear the terminal/qorexit- Quit application/help- Show command help
License
MIT License — Feel free to use, modify, and distribute.
Built with love for developers who love CLI tools
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chalilulz-0.0.1b7.tar.gz.
File metadata
- Download URL: chalilulz-0.0.1b7.tar.gz
- Upload date:
- Size: 43.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87ada5c39ca3d75870e8b3d4ce919b723b0da35c79cd8b509e930fdab11351fd
|
|
| MD5 |
09556f7017a43500ef0caf734178ec0a
|
|
| BLAKE2b-256 |
830e88513564430b6a733014d9ee314111d718a53d2e797125d05d888f1c9486
|
File details
Details for the file chalilulz-0.0.1b7-py3-none-any.whl.
File metadata
- Download URL: chalilulz-0.0.1b7-py3-none-any.whl
- Upload date:
- Size: 33.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66b5ecd3b0736820ea601d585821f7490645825cfc7f3532dccb3e16265610e3
|
|
| MD5 |
ac75522ba6ef37b6dacd81f36892e68c
|
|
| BLAKE2b-256 |
15a76c5947c5c75bb6f7924f9f22a749a20b35eaa7e92986a292b59a8a1773d0
|