Skip to main content

General AI Agent System

Project description

OURO

PyPI License: MIT Python 3.12+

An open-source AI agent built on a single, unified loop.

Ouro is derived from Ouroboros—the ancient symbol of a serpent consuming its own tail to form a perfect circle. It represents the ultimate cycle: a closed loop of self-consumption, constant renewal, and infinite iteration.

At Ouro AI Lab, this is our blueprint. We are building the next generation of AI agents capable of autonomous evolution—systems that learn from their own outputs, refine their own logic, and achieve a state of infinite self-improvement.

Installation

Prerequisites: Python 3.12+.

pip install ouro-ai

Or install from source (for development):

git clone https://github.com/ouro-ai-labs/ouro.git
cd ouro
./scripts/bootstrap.sh   # requires uv

Quick Start

1. Configure Models

On first run, ~/.ouro/models.yaml is created with a template. Edit it to add your provider and API key:

models:
  openai/gpt-4o:
    api_key: sk-...

  anthropic/claude-sonnet-4:
    api_key: sk-ant-...

  chatgpt/gpt-5.2-codex:
    timeout: 600

  ollama/llama2:
    api_base: http://localhost:11434

default: openai/gpt-4o
current: openai/gpt-4o

For chatgpt/* subscription models, run ouro --login (or /login in interactive mode) and select provider before use. OAuth models shown in /model are seeded from ouro's bundled catalog (synced from pi-ai openai-codex model list). Maintainer note: refresh this catalog via python scripts/update_oauth_model_catalog.py. Login uses a browser-based OAuth (PKCE) flow with a localhost callback server. If browser auto-open fails, ouro prints a URL you can open manually (for remote machines, SSH port-forwarding may be required). Advanced OAuth overrides (rarely needed) are documented in docs/configuration.md.

See LiteLLM Providers for the full list.

2. Run

# Interactive mode
ouro

# Single task (returns raw result)
ouro --task "Calculate 123 * 456"

# Resume last session
ouro --resume

# Resume specific session (ID prefix)
ouro --resume a1b2c3d4

CLI Reference

Flag Short Description
--task TEXT -t Run a single task and exit
--model ID -m LiteLLM model ID to use
--resume [ID] -r Resume a session (latest if no ID given)
--login - Open OAuth provider selector and login
--logout - Open OAuth provider selector and logout
--verify Enable self-verification (Ralph Loop) in --task mode
--reasoning-effort LEVEL - Set run-scoped reasoning effort (`default
--verbose -v Enable verbose logging to ~/.ouro/logs/

Interactive Commands

Slash Commands

Command Description
/help Show help
/reset Clear conversation and start fresh
/stats Show memory and token usage statistics
/resume [id] List or resume a previous session
/model Pick a model (arrow keys + Enter)
/model edit Open ~/.ouro/models.yaml in editor (auto-reload on save)
/login Open OAuth provider selector and login
/logout Open OAuth provider selector and logout
/theme Toggle dark/light theme
/verbose Toggle thinking display
/reasoning Open reasoning menu
/compact Trigger memory compression and show token savings
/exit Exit (also /quit)

Keyboard Shortcuts

Key Action
/ Command autocomplete
Ctrl+C Graceful interrupt (cancels current operation, rolls back incomplete memory)
Ctrl+L Clear screen
Ctrl+T Toggle thinking display
Ctrl+S Show quick stats
Up/Down Navigate command history

Features

  • Unified agent loop: Think-Act-Observe cycle — planning, sub-agents, and tool use all happen in one loop, chosen autonomously by the agent
  • Self-verification: Ralph Loop verifies the agent's answer against the original task and re-enters if incomplete (--verify)
  • Parallel execution: Concurrent readonly tool calls in a single turn, plus multi_task for spawning parallel sub-agents with dependency ordering
  • Memory system: LLM-driven compression (sliding window / selective / deletion), git-aware long-term memory, and YAML session persistence resumable via --resume
  • OAuth login: --login / /login to authenticate with ChatGPT Codex subscription models; bundled OAuth catalog auto-synced
  • TUI: Dark/light themes, slash-command autocomplete, live status bar, token & cache tracking (/stats)
  • Skills: Extensible skill registry — list, install, and manage via /skills
  • Benchmarks: First-class Harbor integration for agent evaluation (see Evaluation)

Evaluation

Ouro can be evaluated on agent benchmarks using Harbor. A convenience script harbor-run.sh is provided at the repo root:

  1. Edit harbor-run.sh to set your model, dataset, and ouro version.
  2. Run:
export OURO_API_KEY=<your-api-key>
./harbor-run.sh                    # run with defaults in the script
./harbor-run.sh -l 5               # limit to 5 tasks
./harbor-run.sh --n-concurrent 4   # 4 parallel workers

Extra flags are forwarded to harbor run, so any Harbor CLI option works. See ouro_harbor/README.md for full details.

Configuration

See Configuration Guide for all settings.

Documentation

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

For development setup, see the Installation section (install from source).

License

MIT License

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

ouro_ai-0.2.4.tar.gz (184.7 kB view details)

Uploaded Source

Built Distribution

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

ouro_ai-0.2.4-py3-none-any.whl (168.8 kB view details)

Uploaded Python 3

File details

Details for the file ouro_ai-0.2.4.tar.gz.

File metadata

  • Download URL: ouro_ai-0.2.4.tar.gz
  • Upload date:
  • Size: 184.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ouro_ai-0.2.4.tar.gz
Algorithm Hash digest
SHA256 423c53f3d47f64713937e2f2bb29d73143e41095c89c8e9fff3c2b83299dfe03
MD5 ef413bc149834ffdd4177bad86828cd4
BLAKE2b-256 8c6c35b3caada610e06f8c7d0e24feaf525061ccba22f6c8bff48a2bf8b7b274

See more details on using hashes here.

Provenance

The following attestation bundles were made for ouro_ai-0.2.4.tar.gz:

Publisher: release.yml on ouro-ai-labs/ouro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ouro_ai-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: ouro_ai-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 168.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ouro_ai-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8e593a2562aaab986e15dfaa701fbacf0148bc405518beb2ca3633d607d66012
MD5 b4ee17eb94bb95c7b5e315d236410845
BLAKE2b-256 d3b08b4720629c3b6834ee16a574901b720469cd9ad525b36bad39555983f2e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for ouro_ai-0.2.4-py3-none-any.whl:

Publisher: release.yml on ouro-ai-labs/ouro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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