Skip to main content

Agentic coding CLI with multi-provider LLM support

Project description

chalilulz

Python 3.8+ LLM CLI Open Source Cross Platform

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
  • Built-in Tools — File operations, grep search, glob patterns, bash execution, and more
  • Agent Skills — Load custom skill sets from .skills/ directory
  • Cross-Platform — Works on Linux, macOS, and Windows with ANSI color support
  • Zero Dependencies — Pure Python standard library — no external packages required

Installation

Quick Install (pip)

# Install globally from PyPI (coming soon)
pip install chalilulz

# Or install from source
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 .

Manual Install

# Clone the repository
git clone https://github.com/ForgedInFiles/chalilulz.git
cd chalilulz

# Make executable and add to PATH
chmod +x chalilulz.py

# Option 1: Add to your PATH (Linux/macOS)
sudo ln -s "$(pwd)/chalilulz.py" /usr/local/bin/chalilulz

# Option 2: Add to PATH on Windows (PowerShell)
# Add the folder to your PATH environment variable

# Option 3: Use directly
./chalilulz.py
python chalilulz.py

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

# Run with Gemini
chalilulz --model gemini:gemini-2.0-flash --gemini-key $GOOGLE_API_KEY

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 unique string in files
glob Find files by glob pattern sorted by mtime
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

Project Structure

chalilulz.py              # Main application
setup.py                  # Installation script
pyproject.toml           # Package configuration
tests/                    # Comprehensive test suite
  test_tools.py           # Tool function tests
  test_parsing.py         # Model parsing tests
  test_api.py             # API call tests
  test_skills.py          # Skills loading tests
  test_schema.py          # Schema generation tests
  test_main.py            # Main loop tests
  test_utils.py           # Utility function tests
  test_do_tool_calls.py   # Tool call execution tests
AGENTS.md                 # Development guidelines

Testing

# Run all tests
python -m unittest discover -s tests -p 'test_*.py' -v

# Run specific test module
python -m unittest tests.test_tools -v
python -m unittest tests.test_parsing -v
python -m unittest tests.test_api -v

# Run single test method
python -m unittest tests.test_tools.TestReadTool.test_read_basic -v

# Syntax check
python -m py_compile chalilulz.py

# Lint (requires ruff)
pip install ruff
ruff check chalilulz.py tests/

Usage Examples

Interactive Chat

$ chalilulz
> Write a hello world program in Python

With Custom Skills

Place skill files in .skills/ directory:

.skills/
├── code-review/
│   └── SKILL.md
└── refactor/
    └── SKILL.md

Model Switching

During runtime, use /model command to switch providers:

/model ollama:codellama
/model groq:llama-3.1-70b-versatile

Configuration

Model Syntax

provider:model-id

Supported Providers

Prefix Endpoint
ollama: http://localhost:11434
mistral: https://api.mistral.ai/v1
groq: https://api.groq.com/openai/v1
gemini: https://generativelanguage.googleapis.com/v1beta/openai
openrouter: https://openrouter.ai/api/v1

License

MIT License — Feel free to use, modify, and distribute.


Built with love for developers who love CLI tools

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chalilulz-0.0.1b0.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chalilulz-0.0.1b0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file chalilulz-0.0.1b0.tar.gz.

File metadata

  • Download URL: chalilulz-0.0.1b0.tar.gz
  • Upload date:
  • Size: 24.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for chalilulz-0.0.1b0.tar.gz
Algorithm Hash digest
SHA256 ad958be26ce2fccc4cdf94bd6fdf891178f456f791bf5d0a1dc91ae45b08f9a1
MD5 87ae92d2716ef2a88cea12ac2a8a0ddc
BLAKE2b-256 b8de685dc98d7856c7bbf4b00bfc16f976c211d17101303f3691b9b57a979cfa

See more details on using hashes here.

File details

Details for the file chalilulz-0.0.1b0-py3-none-any.whl.

File metadata

  • Download URL: chalilulz-0.0.1b0-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for chalilulz-0.0.1b0-py3-none-any.whl
Algorithm Hash digest
SHA256 2b1b18cfa12ab320be0eae90c7e9271b7be10a91dc567b12986138cea0767f38
MD5 e4fffa6f9a2a184b6d13f3a9307598fe
BLAKE2b-256 36bc3fd98d5a635fb54ccfb145505c7805e6863d0dc04ced8756ac21a2e14a31

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page