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.12.0.tar.gz (197.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.12.0-py3-none-any.whl (251.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mbos_wolo-0.12.0.tar.gz
  • Upload date:
  • Size: 197.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.12.0.tar.gz
Algorithm Hash digest
SHA256 cf4bc423b662e6d3c4655b783c2b9b655ff41cbba557d9b0e21f97abdec2def9
MD5 b1ec705b50cd106d51dd49c4c5781957
BLAKE2b-256 8ed4ad3c0225116f69054fbe96e5d1147763af1e473da3441aca3b8b55ea0221

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mbos_wolo-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 251.7 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.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 27b37ca3f1c5735d4a7ec11b94515d9ae0e589f1234726788cfbf82b848e81f3
MD5 8b53b35046aed9c1f07370fe0fd63f92
BLAKE2b-256 3e1a4f762eb5863a52a8cb452921f7d4705170127acfad77802433b4fc0e5786

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