Skip to main content

AI-powered command-line tool for accelerated development workflows

Project description

SWE-CLI Logo

SWE-CLI: One-Stop 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.4.tar.gz (237.2 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.4-py3-none-any.whl (319.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: swe_cli-0.1.4.tar.gz
  • Upload date:
  • Size: 237.2 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.4.tar.gz
Algorithm Hash digest
SHA256 1aac80d4a703f1b43e332a593289f4cfae951ca23b4961eb86c5b6a053c2013c
MD5 93e4529df719a782c9d4322786df7981
BLAKE2b-256 30cd2c2cf9dab2f18d45f3e6ea93fb875e0f25f1df1c3cf7c41e324832efe8cc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swe_cli-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 319.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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 25e13e81aa8957ab74d4cc152caf9e23da4b9cf830965ae50928fa0afb952151
MD5 7fb574055cdd0ed0c8c2d394e161997d
BLAKE2b-256 04958db06a8b61e1b9a50eb40c3e5e073aed1a47afbb0c5c13d637adf7a22043

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