Simple, free, local-first AI coding assistant. Perfect for beginners.
Project description
DevCLI
The Free, Local-First AI Coding Assistant
Claude Code's powerful interface + Free open-source models = DevCLI
๐ What is DevCLI?
DevCLI brings AI-powered coding assistance to everyone - completely free and private. Unlike cloud-based alternatives, DevCLI runs entirely on your machine using local models via Ollama.
The Best of Both Worlds:
- Claude Code's intuitive chat interface โจ
- 100% free open-source models ๐
- Complete privacy - never leaves your machine ๐
โจ Key Features
๐ Completely Free
No API costs, no subscriptions, no hidden fees. Use powerful models like DeepSeek, Llama, and Qwen without spending a dime.
๐ Privacy First
Your code never leaves your machine. No telemetry, no tracking, no cloud uploads.
๐ฌ Interactive Chat Mode
Just type devcli and start chatting - like Claude Code, but free!
๐ฏ Project-Aware
Understands your entire codebase. Get answers with specific file names and line numbers.
๐ค Auto-Discovery
Automatically finds and configures your Ollama models. No manual setup!
๐ Three Output Modes
- Normal - Beautiful, interactive
- Quiet - Clean, pipeable (
--quiet) - JSON - Structured, automatable (
--json)
๐ Quick Start
Installation
# Install DevCLI from PyPI (recommended)
pip install devcli
# Or use quick install script
curl -sSL https://raw.githubusercontent.com/YOUR_USERNAME/devcli/main/install.sh | bash
# Or install from source for development
git clone https://github.com/YOUR_USERNAME/devcli.git
cd devcli
pip install -e .
Setup
# Install Ollama (if you haven't)
# Visit: https://ollama.ai
# Pull some models
ollama pull llama3.1
ollama pull deepseek-r1:7b
# Auto-discover models
devcli models-sync
Start Chatting!
# Interactive mode (just type devcli!)
$ devcli
Welcome to DevCLI! ๐ค
Model: llama3.1
Project context: โ loaded
> what does this project do?
[AI explains your project...]
> where is the authentication code?
[AI provides specific file paths...]
> exit
Goodbye! ๐
๐ Usage
Interactive Mode (Recommended)
# Just type devcli to start chatting
devcli
# In-chat commands:
> /model deepseek-r1 # Switch models
> /nocontext # Toggle project context
> /reset # Clear history
> help # Show commands
> exit # Quit
One-Shot Questions
# Normal mode
devcli ask "what does this project do?"
# With specific model
devcli ask "where is the auth logic?" --model deepseek-r1
# Without context (generic question)
devcli ask "explain async/await" --no-context
Automation & Scripting
# Quiet mode - clean output for pipes
devcli ask "list all functions" --quiet | grep important
# JSON mode - structured data for scripts
devcli ask "analyze code" --json | jq '.response'
# Use in scripts
RESPONSE=$(devcli ask "check tests" --json | jq -r '.response')
echo "AI says: $RESPONSE"
Project Understanding
# Scan your project
cd /path/to/your/project
devcli init
# Now ask context-aware questions
devcli ask "how does the config system work?"
# โ AI responds with specific file names and line numbers!
๐ฏ Comparison
| DevCLI | Claudish | Claude Code | GitHub Copilot | |
|---|---|---|---|---|
| Cost | ๐ Free | ๐ฐ API costs | ๐ฐ $20/month | ๐ฐ $10/month |
| Privacy | ๐ 100% local | โ๏ธ Cloud | โ๏ธ Cloud | โ๏ธ Cloud |
| Dependencies | โ Standalone | โ Needs Claude Code | โ Standalone | โ Needs IDE |
| Models | ๐ Any Ollama model | ๐ OpenRouter | ๐ Anthropic only | ๐ OpenAI only |
| Interactive Chat | โ Built-in | โ Via Claude Code | โ Yes | โ No |
| Project Context | โ Custom scan | โ Via Claude Code | โ Yes | โ ๏ธ Limited |
| Offline | โ Yes | โ No | โ No | โ No |
| Auto-Discovery | โ Yes | โ No | N/A | N/A |
| JSON Output | โ Yes | โ Yes | โ No | โ No |
๐ Commands
Core Commands
devcli # Interactive chat (default!)
devcli ask "question" # One-shot question
devcli init # Scan project
devcli models-sync # Auto-discover models
Configuration
devcli config-show # View settings
devcli config-set key value # Update setting
devcli model-add name --provider ollama --model llama3.1
Output Modes
devcli ask "question" # Normal (beautiful)
devcli ask "question" --quiet # Quiet (pipeable)
devcli ask "question" --json # JSON (automatable)
See COMMANDS.md for complete reference.
๐จ Examples
Example 1: Understand a New Codebase
$ cd unfamiliar-project/
$ devcli init
โ Project initialized! 23 files scanned
$ devcli
> what does this project do?
[AI]: This is a REST API for task management built with FastAPI...
> where is the database connection code?
[AI]: The database connection is in `src/db/connection.py` lines 15-30...
> how does authentication work?
[AI]: Authentication uses JWT tokens. The logic is in:
- `src/auth/jwt.py` (token generation)
- `src/middleware/auth.py` (verification)
Example 2: Automation
# Find all TODO comments
devcli ask "list all TODO comments" --quiet | grep -i urgent > urgent.txt
# Check test coverage
COVERAGE=$(devcli ask "analyze test coverage" --json | jq -r '.response')
if echo "$COVERAGE" | grep -q "low"; then
echo "โ ๏ธ Low test coverage detected!"
fi
# Generate documentation
for file in src/*.py; do
devcli ask "document $file" --quiet >> DOCS.md
done
Example 3: Multi-Model Comparison (Coming Soon)
# Try different models for the same task
devcli ask "optimize this function" --model llama3.1
devcli ask "optimize this function" --model deepseek-r1
devcli ask "optimize this function" --model qwen2.5
# Pick the best answer!
๐๏ธ Architecture
devcli/
โโโ cli.py # Main CLI with Typer
โโโ config.py # Configuration management (Pydantic)
โโโ core/
โ โโโ scanner.py # File scanning & filtering
โ โโโ context.py # Project context building
โโโ providers/
โโโ base.py # Provider interface
โโโ ollama.py # Ollama integration
Tech Stack:
- CLI: Typer - Modern CLI framework
- UI: Rich - Beautiful terminal output
- Config: Pydantic - Type-safe configuration
- Models: Ollama - Local LLM runtime
๐บ๏ธ Roadmap
โ v0.1.0 - Foundation
- Project understanding & context
- Ollama integration
- Configuration system
- Auto-discovery
โ v0.2.0 - Interactive
- Interactive chat mode
- Model switching
- Conversation history
โ v0.3.0 - Polish (Current)
- JSON output mode
- Quiet mode
- Professional documentation
- MIT License
๐ง v0.4.0 - Advanced (Next)
- Status line (model/cost/context)
- Debug logging
- Token usage tracking
- Streaming responses
๐ฎ v0.5.0 - Power Features
- Code editing
- Model comparison
- OpenRouter integration
- RAG with embeddings
๐ฏ v1.0.0 - Production
- PyPI release
- CI/CD pipeline
- Comprehensive tests
- 1000+ GitHub stars
๐ค Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Ways to contribute:
- ๐ Report bugs
- ๐ก Suggest features
- ๐ Improve documentation
- ๐ง Submit pull requests
- โญ Star the repo!
๐ License
MIT License - see LICENSE for details.
๐ Acknowledgments
Inspired by:
- Claude Code - Brilliant UX and agentic workflows
- Claudish - JSON output and quiet mode ideas
- Aider - Pioneering AI pair programming
- Ollama - Making local LLMs accessible
Built with:
๐ Star History
Star the repo to support development! โญ
๐ Support
- ๐ Documentation
- ๐ Issues
- ๐ฌ Discussions
- ๐ฆ Twitter
Made with โค๏ธ by developers, for developers
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 devcli_ai-0.3.1.tar.gz.
File metadata
- Download URL: devcli_ai-0.3.1.tar.gz
- Upload date:
- Size: 26.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a2670a6da0da00809c2ecece424bf0e4b310c4231dcb2784e68bc6825aeb94d
|
|
| MD5 |
2c0ada448ef6af10701cab3c2c6efccb
|
|
| BLAKE2b-256 |
6e487ae3a2e456ad37c10d4231495251184e7b32ec661645c5579779478cf6bd
|
File details
Details for the file devcli_ai-0.3.1-py3-none-any.whl.
File metadata
- Download URL: devcli_ai-0.3.1-py3-none-any.whl
- Upload date:
- Size: 23.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a903a47559f22417f7f9289a5fd8b94424cf07825ba796d209628904c88549ca
|
|
| MD5 |
c74197d140a2e9aeedc06bc00507bf79
|
|
| BLAKE2b-256 |
0fd763c591321136e8b64fdaf251b3937c547a6221c12e7641aad14441582a27
|