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.2.tar.gz (190.1 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.2-py3-none-any.whl (244.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mbos_wolo-0.13.2.tar.gz
  • Upload date:
  • Size: 190.1 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.2.tar.gz
Algorithm Hash digest
SHA256 1b9a454486d4ab242e074d0bd82e59b7d7578929a449f5667ce298370522dda8
MD5 d67a27e66c7b1c81590ce1ce5db85b88
BLAKE2b-256 0a1901d6c0ce88992e3a68d0571bb5defec720285e4dd3f1b0a592b72a8bd1fe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mbos_wolo-0.13.2-py3-none-any.whl
  • Upload date:
  • Size: 244.0 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 35ed42278c45ea5841fca8c3dcb40ed54c3bb19f08167d01d5f47e5045c65d9a
MD5 46185ba65e5d38d5281e5e0bb1eae92d
BLAKE2b-256 f5b5c5fcc706d88da5bef3eae2fc74a4de9a02a3435e2b192378fed89d85c013

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