Skip to main content

Minimal Python AI Agent Clone

Project description

Wolo

Wolo is a minimal Python AI agent CLI tool, similar to Claude Code or opencode. It supports multiple OpenAI-compatible LLM backends and provides a complete toolset for coding tasks.

Features

  • Multi-Model Support: Works with any OpenAI-compatible API (OpenAI, Anthropic, DeepSeek, etc.)
  • Rich Tool System: Built-in tools for shell commands, file operations, search, and more
  • Session Management: Persistent sessions with resume capability
  • MCP Integration: Extend capabilities via Model Context Protocol
  • Token Compaction: Automatic context management for long sessions
  • Path Safety: Configurable write protection for sensitive directories

Installation

One-Click Installation (Recommended)

Linux / macOS:

curl -sSL https://raw.githubusercontent.com/lzjever/wolo/main/scripts/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/lzjever/wolo/main/scripts/install.ps1 | iex

Universal (Python):

python3 -c "$(curl -sSL https://raw.githubusercontent.com/lzjever/wolo/main/scripts/install.py)"

Installation Methods

The installer supports multiple methods:

  • auto (default): Automatically selects the best method (uv if available, otherwise pip)
  • uv: Uses the uv package manager for faster installation
  • pip: Standard pip installation
  • source: Installs from git source
# Specify installation method
WOLO_INSTALL_METHOD=uv bash <(curl -sSL https://raw.githubusercontent.com/lzjever/wolo/main/scripts/install.sh)

# Or using the Python installer
python3 <(curl -sSL https://raw.githubusercontent.com/lzjever/wolo/main/scripts/install.py) --method uv

Manual Installation

From PyPI:

# Using uv (recommended)
uv pip install mbos-wolo

# Or using pip
pip install mbos-wolo

From Source:

git clone https://github.com/lzjever/wolo.git
cd wolo

# Using uv
uv sync

# Or using pip
pip install -e .

Quick Start

# Execute a single task
wolo "fix the bug in main.py"

# Pipe context with prompt
git diff | wolo "write commit message"

# Start interactive session
wolo chat

# Resume a session
wolo -r <session-id>

# Wild mode (bypass safety checks/restrictions)
wolo --wild "run unrestricted task"

Configuration

Wolo can be configured via environment variables or config file.

Environment Variables (Recommended for Production):

export WOLO_API_KEY="your-api-key-here"
# or

Config File (Development):

wolo config init

The config file is stored at ~/.wolo/config.yaml:

endpoints:
  - name: default
    model: gpt-4
    api_base: https://api.openai.com/v1
    api_key: your-api-key

# Optional: Enable lexilux client for better compatibility
use_lexilux_client: true

# Optional: MCP server configuration
mcp:
  enabled: true
  servers:
    my-server:
      command: npx
      args: ["-y", "@my/mcp-server"]

Priority: Environment variables take precedence over config file (WOLO_API_KEY > config file).

Commands

Command Description
wolo "prompt" Execute a task
wolo chat Start interactive REPL
wolo -r <id> Resume session
wolo -l List sessions
wolo -w <id> Watch running session
wolo --wild "prompt" Execute in wild mode (no safety checks)
wolo config show Show configuration
wolo config docs Configuration help

Built-in Tools

Tool Description
shell Execute shell commands
read Read file contents
write Write file contents
edit Edit file by replacement
multiedit Batch file edits
grep Search file contents
glob Find files by pattern
task Spawn sub-agent
todowrite Track task progress
question Ask user questions
batch Parallel tool execution
skill Load custom skills

Development

# Install with dev dependencies
make dev-install

# Run tests
make test

# Run with coverage
make test-cov

# Lint and format
make lint
make format

# Build package
make build

Project Structure

wolo/
├── wolo/              # Main package
│   ├── agent.py       # Agent loop
│   ├── llm_adapter.py # LLM client (lexilux-based)
│   ├── session.py     # Session management
│   ├── tools.py       # Tool implementations
│   ├── cli/           # CLI subsystem
│   ├── compaction/    # Token compaction
│   └── mcp/           # MCP integration
├── tests/             # Test suite
├── docs/              # Documentation
└── pyproject.toml     # Project config

License

Apache-2.0

Contributing

See CONTRIBUTING.md for guidelines.

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

mbos_wolo-0.13.3.tar.gz (190.3 kB view details)

Uploaded Source

Built Distribution

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

mbos_wolo-0.13.3-py3-none-any.whl (244.3 kB view details)

Uploaded Python 3

File details

Details for the file mbos_wolo-0.13.3.tar.gz.

File metadata

  • Download URL: mbos_wolo-0.13.3.tar.gz
  • Upload date:
  • Size: 190.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for mbos_wolo-0.13.3.tar.gz
Algorithm Hash digest
SHA256 f6e6807d01f89de1b43a2aa9f5f58c9c9af46eaab394ab6900188e7a5e2a6303
MD5 bf240dfb1957bd6b4cad0a4d413cf03e
BLAKE2b-256 b0702f68f7324575a887cd3937aaa42b379f00698950fc4ed01c882923d96808

See more details on using hashes here.

File details

Details for the file mbos_wolo-0.13.3-py3-none-any.whl.

File metadata

  • Download URL: mbos_wolo-0.13.3-py3-none-any.whl
  • Upload date:
  • Size: 244.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for mbos_wolo-0.13.3-py3-none-any.whl
Algorithm Hash digest
SHA256 51b0f8f01820e148001a9090e5ddd26ac6ef1904f6ca6ab17f5e38736ede82ed
MD5 e128de844472867d4ea1f64045f978c8
BLAKE2b-256 fd3571fa2fc5b45aff2f3acf5978023bdc85c3549b1ae83c51f7422446fd8b49

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