GitHub - vivekhaldar/seed: A seed agent: the smallest starting point from which an agent can grow · GitHub
/" data-turbo-transient="true" />
Skip to content
Search/
Sign in<br>Sign upAppearance settings
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
vivekhaldar
seed
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
master
BranchesTags
Go to file
CodeOpen more actions menu
Latest commit
History<br>9 Commits<br>9 Commits
Folders and files<br>NameNameLast commit message<br>Last commit date<br>docs
docs
.gitignore
.gitignore
README.md
README.md
pyproject.toml
pyproject.toml
run_seed.sh
run_seed.sh
seed.py
seed.py
View all files
Repository files navigation
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 —<br>a small loop that connects a language model to exactly one tool (exec, which<br>runs bash) and loads its system prompt from a file the agent itself owns and<br>may rewrite. Everything an agent normally gets from a framework — tools,<br>memory, skills, conventions — must instead be grown by the agent, session by<br>session, into its self/ directory.
Plant one
mkdir my-agent && cd my-agent<br>uvx --from git+https://github.com/vivekhaldar/seed.git seed
First run copies seed.py and run_seed.sh into this directory (never<br>overwriting a file that already exists), germinates self/SELF.md, and<br>commits those files together in a fresh git repo here — the loop is part of<br>this individual's history, not only self/. Then it drops you into a REPL.<br>Start talking. Everything the agent wants to keep must be written into<br>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<br>./run_seed.sh -m gemini-2.5-pro
A verbatim transcript of every session is recorded to self/sessions/*.json<br>(updated after each turn). This is a flight recorder, not memory: the agent<br>never loads it at boot, but you can read it — and the agent may grow tools to<br>study its own past.
One seed, many individuals: each directory you plant in grows a different<br>agent, diverging based on what it experiences.
Configuration
Models and keys are handled entirely by llm<br>(Simon Willison's library). The default model is openai-codex/gpt-5.6-sol,<br>which uses the ChatGPT login from the Codex CLI:
codex login # one-time, per machine<br>./run_seed.sh # uses openai-codex/gpt-5.6-sol<br>./run_seed.sh -m gemini-2.5-pro # or override it for one session
Bundled providers: OpenAI via a Codex subscription or API key, Anthropic,<br>Gemini, and OpenRouter (one OpenRouter key unlocks hundreds of models).
Design
Why it's shaped this way — McCarthy's metacircular eval, homoiconicity, the<br>prior art, and the risks we consciously accepted: docs/DESIGN.md.
About<br>A seed agent: the smallest starting point from which an agent can grow<br>Resources<br>Readme<br>Activity<br>Stars<br>0 stars<br>Watchers<br>0 watching<br>Forks<br>0 forks<br>Report repository
Releases
Packages
Contributors
Languages
You can’t perform that action at this time.