razzant

ouroboros: Run a Persistent, Self-Modifying AI Agent

Ouroboros is a Python AI agent for desktop or headless use, designed to retain identity and memory across tasks and restarts. It can work in external projects, coordinate specialist agents, and evolve its own implementation through reviewed changes.

Stars
1.4k
Forks
645

Our take

Health score

75/100

How it is scored
Activity
91
Community
49
Issues
74
Pull requests
85
  • Merges more pull requests than 97% of the projects we track
  • Releases more often than 93% of the projects we track

Overview

Ouroboros is a general-purpose AI agent that keeps durable memory, history, and identity across tasks and restarts. It can work on separate projects, coordinate specialist agents, and modify its own code, prompts, tools, architecture, and dependencies through a reviewed evolution process.

It runs as a native desktop application or a headless CLI. Runtime data stays on the user's machine, while inference can use configured remote provider APIs or a local GGUF model. Its combination of persistent state and self-change makes it more involved than a simple chat interface or single-task coding assistant.

Key Features

  • Carries memory, conversation history, and identity across tasks and restarts.
  • Runs as a desktop app or through a headless CLI connected to the runtime.
  • Works in external project folders while keeping its own repository and governance boundary separate.
  • Coordinates specialist agents in parallel and integrates their returned work.
  • Supports remote model APIs and local GGUF inference.
  • Provides background reflection and autonomous evolution, with changes recorded in Git and subject to review.
  • Offers project rooms for connected working folders, journals, knowledge, tasks, and conversations.
  • Supports extensions such as skills, MCP tools, transport bridges, and widgets.

Use Cases

  • Developers who want an agent to work on a separate codebase, run tasks, and return reviewable changes.
  • Users who want an AI assistant to retain context and project knowledge across sessions and restarts.
  • Teams or individuals exploring agents that can delegate work to specialist agents and integrate results.
  • Researchers and builders experimenting with reviewed self-modification or persistent agent behavior.
  • Self-hosting users who want a local runtime and the option to use a local GGUF model instead of a remote provider.

Getting Started

For normal use, download the package for your platform from the repository README. Configure a supported provider API key or a local GGUF model to run tasks. For source setup, CLI usage, and platform-specific instructions, see the full README.

Alternatives

  • DeepSeek-Reasonix: DeepSeek-Reasonix focuses on software engineering runs across CLI, desktop, browser, and editor, rather than retaining a persistent agent identity across tasks.
  • opencode: OpenCode is centered on coding assistance through terminal and desktop interfaces, rather than a persistent agent that can evolve its own implementation.
  • freebuff: Freebuff provides access to specialized agents across several platforms, while Ouroboros centers on one persistent agent with memory and identity.
ProjectLanguageLicenseStarsStatus
ouroborosPythonMIT1.4kNot checked yet
DeepSeek-ReasonixGoMIT35.7kNew
opencodeTypeScriptMIT212kActive
freebuffTypeScriptApache-2.013.1kActive

Considerations

  • The agent needs access to a supported remote model provider or a local GGUF model to perform tasks; the runtime being local does not mean inference is always local.
  • Its persistent memory, autonomous evolution, and delegated work introduce more setup and operational complexity than a conventional chat assistant.
  • Self-modification is a core capability, so review the project's governance and safety documentation before changing the agent or enabling evolution.
  • The README labels Android support experimental and requires a Magisk-rooted ARM64 device.
  • The README describes benchmark results as self-reported, with some submissions still open; treat those comparisons as project-reported evidence.

Found this useful?

Share it with someone who would like ouroboros.

Comparisons