seed
A seed agent: the smallest starting point from which an agent can grow.
There is no framework here. The entire frozen layer is seed.py — a small loop that connects a language model to exactly one tool ( exec , which runs bash) and loads its system prompt from a file the agent itself owns and may rewrite. Everything an agent normally gets from a framework — tools, memory, skills, conventions — must instead be grown by the agent, session by session, into its self/ directory.
Plant one
mkdir my-agent && cd my-agent uvx --from git+https://github.com/vivekhaldar/seed.git seed
First run copies seed.py and run_seed.sh into this directory (never overwriting a file that already exists), germinates self/SELF.md , and commits those files together in a fresh git repo here — the loop is part of this individual's history, not only self/ . Then it drops you into a REPL. Start talking. Everything the agent wants to keep must be written into self/ — sessions are ephemeral and nothing else survives.
Come back to the same agent with the local runner — no need to uvx again:
./run_seed.sh ./run_seed.sh -m gemini-2.5-pro
A verbatim transcript of every session is recorded to self/sessions/*.json (updated after each turn). This is a flight recorder, not memory: the agent never loads it at boot, but you can read it — and the agent may grow tools to study its own past.
One seed, many individuals: each directory you plant in grows a different agent, diverging based on what it experiences.
... continue reading