opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

An AI agent that rewrites the code it runs on
GitHub RepoImpressions3

Project Description

View on GitHub

An AI Agent That Can Rewrite the Code It Runs On

Most AI agents forget everything the moment you close the window. They wake up blank, do their task, and disappear. But what if an agent could carry its identity, memory, and history across every task and restart—and even change the code it's running on? That's the premise behind Ouroboros, an open-source, general-purpose AI agent that treats its own implementation as fair game.

What It Does

Ouroboros is a general-purpose AI agent with durable memory. Its identity and history persist across tasks and restarts, so it doesn't reset to a blank slate every time you interact with it. It works on external projects and coordinates a live swarm of specialist agents—meaning it can delegate and orchestrate rather than just handle one thing at a time.

The part that earns the name: Ouroboros can rewrite the implementation it runs on. That includes its code, architecture, prompts, tools, and dependencies. Reflection can also change how it understands itself, but according to the README, that doesn't sever its continuity—the thread of identity holds.

It runs as a native desktop app or through a headless CLI. The runtime—its repository, durable memory, history, and interface—stays on your machine. Model inference can use remote APIs you configure or a local GGUF model. It's built in Python (3.10+) and distributed as native installers for macOS 12+ on Apple silicon, Windows x64, and several Linux flavors (Debian, Ubuntu, Astra Linux, Fedora, RHEL, RED OS, plus a portable AppImage and tar.gz). There's even an experimental Android build for Magisk-rooted ARM64 devices.

Why It's Cool

  • Self-modification is the headline, and it's genuinely unusual. Plenty of agents can write code in a sandbox. Ouroboros can rewrite its own code, architecture, prompts, tools, and dependencies. That's a different category of capability, and it's the reason the project exists.

  • Continuity is treated as a first-class design concern. The README is careful to say reflection can change how the agent understands itself "without severing that continuity." That's a subtle but important distinction—memory and identity aren't just a log file you reload at startup.

  • Your data stays local by default. The runtime lives on your machine. No telemetry by default, and the official project runs no usage or crash-report collection. Deployments can wire up their own monitoring against local records and decide what those tools receive. If you're privacy-conscious about agent tooling, that's a meaningful default rather than an opt-in.

  • You don't need to touch Python to use it. The README is explicit: if you just want to use Ouroboros, download the installer for your platform. No cloning, no uv, no dependency wrangling. That's a low barrier for a project with this much going on under the hood.

  • There's a contribution process, and it's enforced. Anyone—including coding agents—editing Ouroboros must read CONTRIBUTING.md first. It defines required project context, verification, and a separate-agent review flow. It's a nice touch that the rules anticipate agents as contributors.

  • A skills marketplace exists. OuroborosHub is a separate repository for skills, so the agent's capabilities can extend beyond whatever ships in the box.

How to Try It

The fastest path is a prebuilt installer. Head to the repo's download section and pick your platform:

  1. macOS 12+ (Apple silicon): Download the .dmg (currently named Ouroboros-<version>.dmg), open it, and drag Ouroboros.app to Applications.
  2. Windows x64: Download the .zip.
  3. Debian / Ubuntu / Astra Linux x86_64: Download the .deb.
  4. Fedora / RHEL x86_64: Download the .rpm.
  5. RED OS 8 x86_64: Download the dedicated .rpm.
  6. Other Linux x86_64: Grab the portable AppImage or the tar.gz archive.

A note on files in the release: SHA256SUMS, release-evidence.json, release-smoke-*.json, and sbom-*.cdx.json are verification evidence, not installers. Don't try to run them.

If you're on a Magisk-rooted ARM64 Android device, there's an experimental path documented in docs/ANDROID_INSTALL.md. Be aware that its USB setup requires Python and adb.

Once installed, you configure your model inference—either a remote API or a local GGUF model. From there, the agent runs as a desktop app or headless CLI.

If you want to contribute (or point a coding agent at it), read CONTRIBUTING.md before editing anything. That's not optional per the README.

Final Thoughts

Ouroboros is aimed at developers who want an agent with persistence and a willingness to modify itself—and who care about keeping the runtime local. The self-rewriting angle is the kind of thing that sounds like a research paper (and there is one, linked in the README), but it's shipped as a downloadable desktop app, which lowers the barrier considerably. If you're curious about agents that maintain identity over time, or you just want to poke at something that can edit its own prompts and tools, this is worth a look. Read the contributing guide before you start changing things.

Back to Projects
Project ID: 7ae2d653-c474-4799-8fc7-f779f69b714cLast updated: October 10, 2026 at 03:23 AM