Skip to main content

AI-powered command-line tool for accelerated development workflows

Project description

SWE-CLI Logo

SWE-CLI: One-Stop, Cost Effective CLI-based Coding Agent for Modern Software Engineering


๐ŸŽฌ Demo

SWE-CLI 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

๐Ÿ“ Project Structure

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

๐ŸŽจ SOLID

Clean, maintainable code following SOLID principles

๐Ÿ”Œ Interface-Driven

Loose coupling through interface abstractions

๐Ÿ’‰ Dependency Injection

Services injected into ChatEngine

๐Ÿงฉ Service-Oriented

Modular services with clear responsibilities


๐Ÿ“„ License

MIT License

Copyright (c) 2025 SWE-CLI Contributors

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

swe_cli-0.1.5.tar.gz (365.3 kB view details)

Uploaded Source

Built Distribution

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

swe_cli-0.1.5-py3-none-any.whl (453.5 kB view details)

Uploaded Python 3

File details

Details for the file swe_cli-0.1.5.tar.gz.

File metadata

  • Download URL: swe_cli-0.1.5.tar.gz
  • Upload date:
  • Size: 365.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for swe_cli-0.1.5.tar.gz
Algorithm Hash digest
SHA256 f7ae5e71b09386c92953b4a00f594147ef1192dcb0d64186ed5c3d4cc3675574
MD5 a2681412081ddac6759fa600947abc7f
BLAKE2b-256 c79467a8dba096e77f52aae390872d8c76f99252d34324de25ef303eb8d9733c

See more details on using hashes here.

File details

Details for the file swe_cli-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: swe_cli-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 453.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for swe_cli-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b59aedffb1349c15da7fa7e46f136e3937946b39125c1db4790afb595902f36c
MD5 97a992ec9b799b84f1611effcebfb78a
BLAKE2b-256 798d95e72402fb35812a77d5e596f13872cf48c19aaf6b310f26dc3df4ab5c6f

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