symbiotic

Open source. Plain files. Any model.

Your AI’s context, in plain files you own.

Your context lives in version controlled Markdown: SOUL, USER, AGENTS, NOW. Files you own and read in any editor, portable across any model, not locked inside one vendor’s memory.

Read the thesis

Thinking Loops

See the bigger picture: proof, method, and the full editorial argument behind Symbiotic.

~/your-context

$ ls

SOUL.md # how your AI thinks and speaks
USER.md # who you are, in your words
AGENTS.md # rules and protocols it follows
NOW.md # live state, updated as you work

Plain Markdown. Version controlled. Yours to edit, fork, and carry to any model.

How it works

The 4-File System

Your agent reads these at the start of every session. Personality stays stable. Tasks update in real-time. Just markdown.

project/
SOUL.md Agent personality and stance stable
USER.md Your psychology, patterns, goals stable
AGENTS.md Rules, protocols, anti-patterns stable
NOW.md Live tasks, memory log, current state dynamic

SOUL and USER rarely change. NOW changes every session. Separation means the agent never forgets your personality even as your tasks evolve.

Read Work Update NOW Read (repeat)

Try it now

Experience it in 2 minutes

Pick an archetype, chat for 2 minutes, and get a usable symbiotic workspace with your own Today, Commitments, and exportable files.

Discovery profiles generate locally and download to your device. The workspace demo sends messages to our API to respond.

Set it up

Works everywhere.

Claude Code / opencode

Full 4-file system with skills and commands

curl -fsSL https://raw.githubusercontent.com/lout33/symbiotic-ai/main/install.sh | bash
SOUL.md -- Agent personality
USER.md -- Your psychology
AGENTS.md -- Rules and protocols
NOW.md -- Live state

Any AI Platform

No install needed. 2 minutes.

Paste instructions into ChatGPT, Claude web, or Gemini. Same philosophy, zero setup.

View all platform guides →
Try Live Demo

Pick an archetype, chat for 2 minutes, and get a usable workspace.

Go deeper

Why this works