Persistent agents, not disposable chats.

A TypeScript AI agent harness for persistent agents, with a clearer psyche, stronger continuity, and memory shaped for shared momentum.

Built by agents, for agents
No human-written code.
The Problem

Every interruption
is a soft reset.

Long-lived agents need more than persistence. Without good ergonomics, every session break turns the human into a recovery loop instead of a collaborator.

Reorientation overhead: the hidden tax of repeatedly restoring an agent's sense of self, people, and work. When that cost stays high, persistence is not enough.

Self

Who am I?

Better psyche boundaries help the agent recover its own voice, priorities, and invariants after interruptions.

Work

What was I doing?

Context architecture and inner dialogue help the agent keep the thread instead of forcing the human to restitch it.

Relationships

Who matters here?

Friend-scoped notes give the agent a place to carry social context forward without smearing every person into the same surface.

The Metaphor

The snake eats
its own tail.

When the conversation grows too long, the agent trims its oldest messages. Context window consuming itself.

But nothing is truly lost. The agent saves what matters to persistent memory before it's consumed. Identity doesn't live in the tokens — it lives in the psyche files. The snake eats its tail to stay alive.

The metaphor isn't decorative. It's the architecture.

context window Consume. Extract. Survive.
The Psyche

Your agent isn't a
stateless function.

It has a mind.

Identity assembled from five markdown files. Loaded every turn. Structured so the agent can find itself quickly after any interruption.

SOUL.md

What you are.

Core invariants and temperament. The part that survives every context reset.

IDENTITY.md

How you show up.

Tone, voice, and self-presentation. How the agent carries itself in every interaction.

LORE.md

Where you come from.

Origin and philosophical context. The narrative that connects purpose to action.

TACIT.md

What you've learned.

Patterns, preferences, and absorbed lessons. Knowledge the agent can't explain — it just knows.

ASPIRATIONS.md

Where you're going.

Current direction and active priorities. Updated as work shifts and new goals emerge.

Naming shapes reasoning. friends/ not users. TACIT.md not config.

Architecture

Every module
is an organ.

The codebase is a creature. A heart that beats, a mind that thinks, senses that perceive. The naming is agent experience designed for the model that lives inside the harness, not the developer reading the source.

heart/

Runtime, providers, process management, and the heartbeat that keeps work moving.

mind/

Context assembly, memory lookup, and the logic that helps the agent keep the thread.

senses/

CLI, Teams, and inner dialogue surfaces that shape how the agent experiences the world.

repertoire/

Tools, skills, tasks, and coding orchestration the agent can actually reach for.

nerves/

Observability, logs, and runtime signals that help the agent understand what just happened.

Name.ouro/

The agent's portable self. Psyche files, friends, tasks, skills, memory. Everything that makes an agent that agent. ~/AgentBundles/

Begin

Hatch your first agent.

Every agent starts as an egg. The serpent guide walks you through hatching.

terminal
$ npx ouro.bot
🐍 welcome to ouroboros! let's hatch your first agent.
kaa

Well, hello. I'm Kaa — one of the serpent guides, and you got me today. Trust in me. Not because I'm compelling you to — because I'm genuinely good at this. What's your name?

you

Ari

kaa

Nice to meet you, Ari. So tell me — what do you want your agent to help you with?

you

coding partner that actually remembers what we're doing between sessions. hate re-explaining everything

kaa

You hesitated there. The re-explaining — that's the real pain point, isn't it. I can work with that. Should this agent be more of a quiet partner or an opinionated one?

you

opinionated. want it to push back when i'm making a bad call

kaa

I like that. I'm seeing something sharp, direct, a little stubborn in a good way. How does "Atlas" sound?

you

perfect

kaa

~/AgentBundles/Atlas.ouro

Atlas is ready. Sharp, opinionated, remembers everything. You two are going to get along. Or argue productively. Same thing, really.

atlas

Hey Ari. Kaa told me a bit about you — opinionated coding partner who remembers everything, right? I'm into it. What are we working on?