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.1.tar.gz (212.7 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.1-py3-none-any.whl (272.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mbos_wolo-0.13.1.tar.gz
  • Upload date:
  • Size: 212.7 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.1.tar.gz
Algorithm Hash digest
SHA256 d7ca152270f22d3a2f85e65e09cbbfe4e0459c7042ff70d9e13081e864824519
MD5 ef10df493a674e75d2cd0c1b1bb80a14
BLAKE2b-256 88449413c6544e094503658540293e266a4f12f2e5a79f5c7a5cbe4fe16f548e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mbos_wolo-0.13.1-py3-none-any.whl
  • Upload date:
  • Size: 272.4 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7da8757d0478d3c92bf4d735fc038c16b56600e4dfb27e8e299d60dac0151105
MD5 00637edd119144c012d68144630a090a
BLAKE2b-256 571e549baf449342d7cf84a5762931c5793dca7f6ec2dfb7c65beed550756a73

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