xiaoli-cli 4d341a7b55 refactor: 合并v2到v1,删除xiaoli/core包,架构统一
- 用v2的GitHub暗色主题TUI替换v1简陋TUI(侧栏、代码高亮、快捷键)
- 用v2的子进程隔离沙箱替换v1的线程内exec(6层安全)
- 删除xiaoli/包(v2重构版,7个模块+子包)
- 删除core/包(从未被引用的死代码)
- 保留v1全部功能:Clawli远程、WebSocket、Web服务器等
- 代码减少约3000行,架构更简洁
2026-04-25 21:13:14 +08:00
2026-04-25 11:06:53 +08:00
2026-04-25 13:28:21 +08:00
2026-04-25 13:26:05 +08:00
2026-04-25 11:47:49 +08:00
2026-04-25 13:26:05 +08:00
2026-04-25 13:26:05 +08:00
2026-04-25 13:26:05 +08:00

XiaoLi Pro-CLI

Intelligent Programming Assistant — Precise Code Editing, Code Search, Git Integration, Multi-AI Engine Support

version python license


✨ Features

  • 🤖 Multi AI Engines — Ollama, MiMo, GLM, QwQ, MaaS and more
  • 🔧 Precise Code Editing — Search & replace, batch edits, diff comparison, line-level operations
  • 🔍 Code Search & Understanding — Cross-file search, regex matching, symbol extraction, dependency analysis
  • 🔄 Git Integration — Full Git workflow support
  • 🎨 Dual UI Modes — TUI graphical interface (default) + traditional CLI mode
  • 🧩 Triple Protocol Plugin System — Plugin / Skill / MCP protocols
  • 🌐 WebSocket Remote — Remote connections and QQ bot integration
  • 🛡️ Code Sandbox — Secure code execution environment

📦 Quick Start

Installation

git clone https://gitee.com/shuiyu1123/xiaoli-cli.git
cd xiaoli-cli
pip install -r requirements.txt

Usage

# TUI mode (default, requires textual)
python -m xiaoli

# CLI mode
python -m xiaoli --cli

# Specify engine
python -m xiaoli --engine mimo

# Show version
python -m xiaoli --version

Dependencies

Core:

Package Purpose
colorama Terminal colored output
openai OpenAI compatible API
requests HTTP requests
Pillow Image processing
numpy Numerical computation

Optional:

Package Purpose
textual TUI mode
opencv-python Enhanced image processing
pygame Audio playback
websockets WebSocket remote

🏗️ Architecture

xiaoli-cli/
├── xiaoli/                     # Core package (v3.6+ modular architecture)
│   ├── __main__.py             # Entry point (python -m xiaoli)
│   ├── app.py                  # Main application (orchestration layer)
│   ├── config.py               # Configuration management
│   ├── engines.py              # AI engine management
│   ├── sandbox.py              # Code execution sandbox
│   ├── prompt.py               # System prompts
│   ├── tui.py                  # TUI interface
│   ├── conversation/           # Conversation handling
│   └── display/                # Display output (CLI/TUI dual mode)
│
├── plugins/                    # Plugins (Plugin protocol)
│   ├── code_editor.py          # Precise code editor ⭐
│   ├── code_search.py          # Code search & understanding ⭐
│   ├── git_tools.py            # Git version control ⭐
│   └── ...                     # 20+ plugins
│
├── skills/                     # Skills (Skill protocol)
├── ai_engines/                 # AI engine implementations
├── image_engine/               # Image processing engines
├── tests/                      # Test suite
└── requirements.txt            # Dependencies

🎮 Commands

Command Description
/help Show help
/quit Exit
/about Show version info
/model <engine> Switch AI engine
/engine list List available engines
/chat save <name> Save conversation
/chat list List conversations
/chat open <name> Load conversation
/tui Toggle TUI mode

🔌 Plugin Development

XiaoLi supports three plugin protocols. See Development Documentation for details.

Plugin Protocol

class Plugin:
    def get_tool_info(self):
        return {"name": "my_tool", "description": "...", "keywords": [...]}
    
    def handle(self, args: str) -> str:
        return "result"

Skill Protocol

from skills.base import Skill, SkillResult

class MySkill(Skill):
    name = "my_skill"
    def run(self, **kwargs) -> SkillResult:
        return SkillResult(success=True, message="Done")

MCP Protocol

Supports Anthropic/OpenAI Model Context Protocol for seamless external tool integration.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Create a Pull Request

📄 License

This project is licensed under the MIT License.

S
Description
No description provided
Readme
10 MiB
0 Stars 1 Watchers 0 Forks