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/mbos-agent/wolo/main/scripts/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/mbos-agent/wolo/main/scripts/install.ps1 | iex

Universal (Python):

python3 -c "$(curl -sSL https://raw.githubusercontent.com/mbos-agent/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/mbos-agent/wolo/main/scripts/install.sh)

# Or using the Python installer
python3 <(curl -sSL https://raw.githubusercontent.com/mbos-agent/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/mbos-agent/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.0.tar.gz (211.8 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.0-py3-none-any.whl (271.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mbos_wolo-0.13.0.tar.gz
  • Upload date:
  • Size: 211.8 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.0.tar.gz
Algorithm Hash digest
SHA256 06110bcf80f7b3a36a06d6e2051c640b918b5dc468110e575c2d2c07577be763
MD5 b5e7d6296c14b97da6b588aabd7cadc3
BLAKE2b-256 0215aa4f1255a6939278f82353b7414e3d13323cb03365c0d279f2a7eafcbc5c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mbos_wolo-0.13.0-py3-none-any.whl
  • Upload date:
  • Size: 271.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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e81dd7f20b0d587443481eea16772f8b5322238d5b6cbcde3d89f0bafd7eebde
MD5 631bbb697f4cf0c7448ecae1f402d56e
BLAKE2b-256 9cca74221ae20620b1f2950840109142ac96c6da9a2e11ed6e3a53500e77206f

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