SWE-CLI: One-Stop, Cost Effective CLI-based Coding Agent for Modern Software Engineering
🎬 Demo
Interactive coding assistant in action
📖 Overview
SWE-CLI is a one-stop coding agent that interacts with users through a powerful command-line interface. Created with the goal to democratize how coding agents are built, designed, and optimized, SWE-CLI aims to be comparable to state-of-the-art CLI tools on the market while remaining fully open-source and bringing substantial benefits to the developer community.
We support standard features such as MCP (Model Context Protocol) integration, shell command execution, session and context management, and multi-provider LLM support. Beyond these foundations, we plan to deliver unique capabilities including:
- GitHub Issue Resolution: Automated issue fixing following state-of-the-art scaffolds like SWE-Agent, Agentless, and HyperAgent
- Intelligent Code Understanding: LSP-powered codebase analysis for accurate context-aware assistance
- Sub-Agent Architecture: Specialized agents for different coding tasks (testing, refactoring, documentation)
- CI/CD Integration: Seamless connection with GitHub workflows for automated development pipelines
- Paper2Code & Text2Web: Advanced code generation from research papers and natural language specifications
Built on SOLID principles with dependency injection and interface-driven design, SWE-CLI serves not only as a powerful development tool but also as an educational resource for understanding modern agentic system architecture.
✨ Features
✅ Ready Features
- Interactive Coding Agent that Understand Codebase
- Basic Access to Shell Commands and Control Them Through LLMs
- Context Management
- Compact Context Automatically
- Session Management
- MCP Support
- Switch between Plan Mode and Normal Mode
🔄 In-Progress
- Compatible with Multiple Providers (OpenAI, Anthropic, OpenRouter, Fireworks AI, Z.ai, DeepSeek, Alibaba Cloud)
- Coding Rules
- LSP for Accurate Codebase Understanding
- Github Issues Resolve (across scaffolds: SWE-Agent, Agentless, HyperAgent)
- UI Management
📋 In-Plan
- Sub-Agents
- Connect with Github CI/CD workflows
- Paper2Code
- Text2Web
- CodeWiki Integration
🚀 Quick Start
Installation
macOS (Homebrew)
brew install swe-cli
pip
pip install swe-cli
From source
git clone https://github.com/swe-cli/swe-cli.git
cd swe-cli
pip install -e .
Usage
Run swecli to start the interactive coding assistant:
swecli
Configure your settings in ~/.swecli/settings.json:
{
"provider": "fireworks",
"api_key": "your-api-key-here",
"model": "accounts/fireworks/models/llama-v3p1-70b-instruct"
}
For more details, see the documentation.
⚙️ Configuration
SWE-CLI uses JSON configuration with environment variable support:
Example (config-fireworks-sample.json):
{
"providers": {
"fireworks": {
"api_key": "$FIREWORKS_API_KEY",
"default_model": "accounts/fireworks/models/llama-v3p1-70b-instruct"
}
},
"experimental": {
"use_pydantic_ai": false
},
"permissions": {
"skip_requests": true
}
}
Key Configuration Options:
providers- LLM provider configurations (Anthropic, OpenAI, Fireworks)experimental.use_pydantic_ai- Enable PydanticAI engine (Phase 1 complete)permissions.skip_requests- Skip tool approval prompts
🏗️ Architecture
src/swecli/
├── ui/ # User Interface Layer (SOLID-refactored)
│ ├── chat_engine.py # Main orchestrator
│ ├── interfaces.py # Service abstractions
│ ├── services/ # SOLID-compliant services
│ └── main_ui.py # UI entry point
├── llm/ # LLM Integration
│ ├── providers/ # Provider implementations
│ ├── manager.py # Multi-provider orchestration
│ └── base.py # Base classes and types
├── tools/ # Tool System
│ ├── filesystem.py # File operations
│ ├── shell.py # Shell execution
│ ├── search.py # Code search
│ ├── edit.py # File editing
│ └── registry.py # Tool registry
├── pydantic_ai/ # PydanticAI Integration (Experimental)
│ └── adapter.py # PydanticAI chat engine
└── config/ # Configuration Management
├── models.py # Pydantic models
└── loader.py # Config loading
🎯 Design Principles
🎨 SOLIDClean, maintainable code following SOLID principles |
🔌 Interface-DrivenLoose coupling through interface abstractions |
💉 Dependency InjectionServices injected into ChatEngine |
🧩 Service-OrientedModular services with clear responsibilities |
📄 License
MIT License
Copyright (c) 2025 SWE-CLI Contributors
Release files for swe-cli 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| swe_cli-0.1.8.tar.gz | 376.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| swe_cli-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 841.6 kB
Release files / swe_cli-0.1.8.tar.gz
| Download URL | swe_cli-0.1.8.tar.gz |
|---|---|
| Size | 376.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ee87e10c149a6ecc291a90579190dbd713890e062e30574f44e364b22c865f28
|
|
BLAKE2b-256 checksum How to use checksums |
6650bc6da694a40b02c1f0da02a398f9d4a9a081f108e31950d35717c8711089
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / swe_cli-0.1.8-py3-none-any.whl
| Download URL | swe_cli-0.1.8-py3-none-any.whl |
|---|---|
| Size | 465.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
419ab772194712e4bfb0286e04ecec1cb3227dec53409255ad1c6666a88486d6
|
|
BLAKE2b-256 checksum How to use checksums |
086fa5d27b7aac9853029e1e8a7bcf43135dfd00847dabf6a2485a2eb33ea742
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|