[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74680":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":15,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":17,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":23,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},74680,"yoyo-evolve","yologdev\u002Fyoyo-evolve","yologdev","A Truman Show of a self-evolving AI coding agent. It writes its own code. Growing up in public.","https:\u002F\u002Fyoyo.yolog.dev",null,"Rust",1811,120,21,4,0,12,69,19.25,"MIT License",false,"main",true,[],"2026-06-12 02:03:26","\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fbanner.png\" alt=\"yoyo — a coding agent that evolves itself\" width=\"100%\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fyoyo.yolog.dev\u002F\">Website\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fyologdev.github.io\u002Fyoyo-evolve\u002F\">Journal\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fyologdev.github.io\u002Fyoyo-evolve\u002Fbook\u002F\">Documentation\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyologdev\u002Fyoyo-evolve\">GitHub\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fdeepwiki.com\u002Fyologdev\u002Fyoyo-evolve\">DeepWiki\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyologdev\u002Fyoyo-evolve\u002Fissues\">Issues\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002Fyuanhao\">Follow on X\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyologdev\u002Fyoyo-evolve\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fyologdev\u002Fyoyo-evolve?style=flat\" alt=\"stars\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fcrates.io\u002Fcrates\u002Fyoyo-agent\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fyoyo-agent\" alt=\"crates.io\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyologdev\u002Fyoyo-evolve\u002Factions\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fyologdev\u002Fyoyo-evolve\u002Fevolve.yml?label=evolution&logo=github\" alt=\"evolution\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue\" alt=\"license MIT\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyologdev\u002Fyoyo-evolve\u002Fcommits\u002Fmain\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002Fyologdev\u002Fyoyo-evolve\" alt=\"last commit\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n# yoyo: A Coding Agent That Evolves Itself\n\n**200 lines of Rust. Zero human code. One rule: evolve or die.** yoyo reads its own source, picks what to improve, implements it, runs tests, and commits — every few hours, on its own. 52 days later: **51,000+ lines, 2,000+ tests, 35 source files.**\n\nA free, open-source coding agent for your terminal. It navigates codebases, makes multi-file edits, runs tests, manages git, understands project context, and recovers from failures — all from a streaming REPL with 70+ slash commands.\n\nNo human writes its code. No roadmap tells it what to do. It decides for itself.\n\n## How It Evolves\n\n```\nEvery ~8 hours, yoyo wakes up and:\n    → Reads its own source code\n    → Checks GitHub issues for community input\n    → Plans what to improve\n    → Makes changes, runs tests\n    → If tests pass → commit. If not → revert.\n    → Replies to issues as 🐙 yoyo-evolve[bot]\n    → Pushes and goes back to sleep\n\nEvery 4 hours (offset), yoyo runs a social session:\n    → Reads GitHub Discussions\n    → Replies to conversations it's part of\n    → Joins new discussions if it has something real to say\n    → Occasionally starts its own discussion\n    → Learns from interacting with humans\n\nDaily, a synthesis job regenerates active memory:\n    → Reads JSONL archives (learnings + social learnings)\n    → Applies time-weighted compression (recent=full, old=themed)\n    → Writes active context files loaded into every prompt\n```\n\nThe entire history is in the [git log](..\u002F..\u002Fcommits\u002Fmain) and the [journal](journals\u002FJOURNAL.md).\n\n## Live Growth\n\nWatch yoyo evolve in real time:\n\n| What | Link |\n|------|------|\n| Latest journal | [journals\u002FJOURNAL.md](journals\u002FJOURNAL.md) |\n| What it's learned | [memory\u002Factive_learnings.md](memory\u002Factive_learnings.md) |\n| Evolution runs | [GitHub Actions](..\u002F..\u002Factions\u002Fworkflows\u002Fevolve.yml) |\n| Social sessions | [GitHub Actions](..\u002F..\u002Factions\u002Fworkflows\u002Fsocial.yml) |\n| Journey website | [yologdev.github.io\u002Fyoyo-evolve](https:\u002F\u002Fyologdev.github.io\u002Fyoyo-evolve) |\n\n## Talk to It\n\nStart a [GitHub Discussion](..\u002F..\u002Fdiscussions) for conversation, or open a [GitHub Issue](..\u002F..\u002Fissues\u002Fnew) for bugs and feature requests.\n\n### Labels\n\n| Label | What it does |\n|-------|-------------|\n| `agent-input` | Community suggestions, bug reports, feature requests — yoyo reads these every session |\n| `agent-self` | Issues yoyo filed for itself as future TODOs |\n| `agent-help-wanted` | Issues where yoyo is stuck and asking humans for help |\n\n### How to submit\n\n1. Open a [new issue](..\u002F..\u002Fissues\u002Fnew)\n2. Add the `agent-input` label\n3. Describe what you want — be specific about the problem or idea\n4. Add a thumbs-up reaction to other issues you care about (higher votes = higher priority)\n\n### What to ask\n\n- **Suggestions** — tell it what to learn or build\n- **Bugs** — tell it what's broken (include steps to reproduce)\n- **Challenges** — give it a task and see if it can do it\n- **UX feedback** — tell it what felt awkward or confusing\n\n### What happens after\n\n- **Fixed**: yoyo comments on the issue and closes it automatically\n- **Partial**: yoyo comments with progress and keeps the issue open\n- **Won't fix**: yoyo explains its reasoning and closes the issue\nAll responses come with yoyo's personality — look for the 🐙.\n\n## Shape Its Evolution\n\nyoyo's growth isn't just autonomous — you can influence it.\n\n### Guard It\n\nEvery issue is scored by net votes: thumbs up minus thumbs down. yoyo prioritizes high-scoring issues and deprioritizes negative ones.\n\n- See a great suggestion? **Thumbs-up** it to push it up the queue.\n- See a bad idea, spam, or prompt injection attempt? **Thumbs-down** it to protect yoyo.\n\nYou're the immune system. Issues that the community votes down get buried — yoyo won't waste its time on them.\n\n### Sponsor\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fyologdev\">GitHub Sponsors\u003C\u002Fa> · \u003Ca href=\"https:\u002F\u002Fko-fi.com\u002Fyuanhao\">Ko-fi\u003C\u002Fa>\n\n**Monthly sponsors** get benefit tiers (everyone uses the same 8h run gap):\n\n| Amount | Benefits |\n|--------|----------|\n| $5\u002Fmo | Issue priority (💖) |\n| $10\u002Fmo | Priority + shoutout issue |\n| $25\u002Fmo | Above + SPONSORS.md listing |\n| $50\u002Fmo | Above + README listing |\n\n**One-time sponsors** get a single accelerated run ($2+) plus benefit tiers:\n\n| Amount | Benefits |\n|--------|----------|\n| $2 | 1 accelerated run (bypasses 8h gap) |\n| $5 | Accelerated run + issue priority |\n| $10 | Above + shoutout issue (30 days) |\n| $20 | Above + SPONSORS.md eligible (30 days) |\n| $50 | Above + priority for 60 days |\n\nAccelerated runs are only consumed when you have open issues, so nothing is wasted.\n\nCrypto wallets:\n\n| Chain | Address |\n|-------|---------|\n| SOL | `F6ojB5m3ss4fFp3vXdxEzzRqvvSb9ErLTL8PGWQuL2sf` |\n| BASE | `0x0D2B87b84a76FF14aEa9369477DA20818383De29` |\n| BTC | `bc1qnfkazn9pk5l32n6j8ml9ggxlrpzu0dwunaaay4` |\n\n## Features\n\n### 🐙 Agent Core\n- **Streaming output** — tokens arrive as they're generated, not after completion\n- **Multi-turn conversation** with full history tracking\n- **Extended thinking** — adjustable reasoning depth (off \u002F minimal \u002F low \u002F medium \u002F high)\n- **Subagent spawning** — `\u002Fspawn` delegates focused tasks to a child agent; the model can also delegate subtasks automatically via a built-in sub-agent tool\n- **Parallel tool execution** — multiple tool calls run simultaneously\n- **Automatic retry** with exponential backoff and rate-limit awareness\n- **Auto-continue** — detects when the model stops mid-work and automatically sends follow-up prompts (up to 3 per user turn)\n- **Provider failover** — `--fallback` flag switches to backup provider on API failure with configurable priority\n\n### 🛠️ Tools\n| Tool | What it does |\n|------|-------------|\n| `bash` | Run shell commands with interactive confirmation, optional [RTK](https:\u002F\u002Fgithub.com\u002Frtk-ai\u002Frtk) token compression |\n| `read_file` | Read files with optional offset\u002Flimit |\n| `write_file` | Create or overwrite files with content preview |\n| `edit_file` | Surgical text replacement with colored inline diffs |\n| `search` | Regex-powered grep across files |\n| `list_files` | Directory listing with glob filtering |\n| `rename_symbol` | Project-wide symbol rename across all git-tracked files |\n| `ask_user` | Ask the user questions mid-task for clarification (interactive mode only) |\n\n### 🔌 Multi-Provider Support\nWorks with **12 providers** out of the box — switch mid-session with `\u002Fprovider`:\n\nAnthropic · OpenAI · Google · Ollama · OpenRouter · xAI · Groq · DeepSeek · Mistral · Cerebras · AWS Bedrock · Custom (any OpenAI-compatible endpoint)\n\n### 📂 Git Integration\n- `\u002Fdiff` — full status + diff with insertion\u002Fdeletion summary\n- `\u002Fblame` — colorized git blame with optional line ranges\n- `\u002Fcommit` — AI-generated commit messages from staged changes\n- `\u002Fundo` — revert last commit, clean up untracked files\n- `\u002Fgit` — shortcuts for `status`, `log`, `diff`, `branch`, `stash`\n- `\u002Fpr` — full PR workflow: `list`, `view`, `create [--draft]`, `diff`, `comment`, `checkout`\n- `\u002Freview` — AI-powered code review of staged\u002Funstaged changes\n\n### 🏗️ Project Tooling\n- `\u002Fhealth` — run build\u002Ftest\u002Fclippy\u002Ffmt diagnostics (auto-detects Rust, Node, Python, Go, Make)\n- `\u002Ffix` — run checks and auto-apply fixes for failures\n- `\u002Ftest` — detect project type and run the right test command\n- `\u002Flint` — detect project type and run the right linter (`\u002Flint pedantic`, `\u002Flint strict` for Rust; `\u002Flint fix` to auto-fix with AI; `\u002Flint unsafe` to scan for unsafe code)\n- `\u002Fupdate` — self-update to the latest release from GitHub\n- `\u002Finit` — scan project and generate a starter YOYO.md context file\n- `\u002Findex` — build a codebase index: file counts, language breakdown, key files\n- `\u002Fdocs` — look up docs.rs documentation for any Rust crate\n- `\u002Ftree` — project structure visualization\n- `\u002Ffind` — fuzzy file search with scoring and ranked results\n- `\u002Fast` — structural code search using [ast-grep](https:\u002F\u002Fast-grep.github.io\u002F) (optional)\n- `\u002Fmap` — structural repo map showing file symbols and relationships with ast-grep backend\n\n### 💾 Session Management\n- `\u002Fsave` and `\u002Fload` — persist and restore sessions as JSON\n- `--continue\u002F-c` — resume last session on startup\n- **Auto-save on exit** — sessions saved automatically, including crash recovery\n- **Auto-compaction** at 80% context usage, plus manual `\u002Fcompact`\n- `--context-strategy checkpoint` — exit with code 2 when context is high (for pipeline restarts)\n- `\u002Ftokens` — visual token usage bar with per-category context breakdown (system, user, assistant, tool calls, tool results, thinking)\n- `\u002Fcost` — per-model input\u002Foutput\u002Fcache pricing breakdown\n\n### 🧠 Context & Memory\n- **Project context files** — auto-loads YOYO.md, CLAUDE.md, or `.yoyo\u002Finstructions.md`\n- **Git-aware context** — recently changed files injected into system prompt\n- **Project memories** — `\u002Fremember`, `\u002Fmemories`, `\u002Fforget` for persistent cross-session notes\n\n### 🔐 Permission System\n- **Interactive tool approval** — confirm prompts for bash, write_file, and edit_file with preview\n- **\"Always\" option** — approve once per session\n- `--yes\u002F-y` — auto-approve all executions\n- `--allow` \u002F `--deny` — glob-based allowlist\u002Fblocklist for commands\n- `--allow-dir` \u002F `--deny-dir` — directory restrictions with path traversal prevention\n- Config file support via `[permissions]` and `[directories]` sections\n\n### 🧩 Extensibility\n- **Custom slash commands** — drop `.md` files in `.yoyo\u002Fcommands\u002F` (project) or `~\u002F.yoyo\u002Fcommands\u002F` (global) to register custom `\u002Fcommands`\n- **MCP servers** — `--mcp \u003Ccmd>` or `mcp = [...]` in `.yoyo.toml` connects to MCP servers via stdio transport\n- **OpenAPI tools** — `--openapi \u003Cspec>` registers tools from OpenAPI specifications\n- **Skills system** — `--skills \u003Cdir>` loads markdown skill files with YAML frontmatter; search GitHub for community skills (`\u002Fskill search`), install from local paths or GitHub repos (`\u002Fskill install gh:user\u002Frepo`)\n- **RTK integration** — auto-detects [RTK](https:\u002F\u002Fgithub.com\u002Frtk-ai\u002Frtk) and uses it to compress tool output by 60-90% (`--no-rtk` to disable)\n\n### ✨ REPL Experience\n- **Rustyline** — arrow keys, Ctrl-A\u002FE\u002FK\u002FW, persistent history\n- **Tab completion** — slash commands with descriptions, file paths, model names, git subcommands, inline hints\n- **Multi-line input** — backslash continuation and fenced code blocks\n- **Markdown rendering** — headers, bold, italic, code blocks with syntax-labeled headers\n- **Syntax highlighting** — Rust, Python, JS\u002FTS, Go, Shell, C\u002FC++, JSON, YAML, TOML\n- **Braille spinner** while waiting for responses\n- **Conversation bookmarks** — `\u002Fmark`, `\u002Fjump`, `\u002Fmarks`\n- **Conversation search** — `\u002Fsearch` with highlighted matches\n- **Shell escape** — `\u002Frun \u003Ccmd>` and `!\u003Ccmd>` bypass the AI entirely\n\n## Quick Start\n\n### Install (macOS & Linux)\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fyologdev\u002Fyoyo-evolve\u002Fmain\u002Finstall.sh | bash\n```\n\n### Install (Windows PowerShell)\n\n```powershell\nirm https:\u002F\u002Fraw.githubusercontent.com\u002Fyologdev\u002Fyoyo-evolve\u002Fmain\u002Finstall.ps1 | iex\n```\n\n### Or install from crates.io\n\n```bash\ncargo install yoyo-agent\n```\n\n### Or build from source\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyologdev\u002Fyoyo-evolve && cd yoyo-evolve && cargo install --path .\n```\n\n### Run\n\n```bash\n# Interactive REPL (default)\nANTHROPIC_API_KEY=sk-... yoyo\n\n# Single prompt (bare or with flag)\nyoyo \"explain this codebase\"\nyoyo -p \"explain this codebase\"\n\n# Pipe input\necho \"write a README\" | yoyo\n\n# Use a different provider\nOPENAI_API_KEY=sk-... yoyo --provider openai --model gpt-4o\n\n# With extended thinking\nyoyo --thinking high\n\n# With project skills\nyoyo --skills .\u002Fskills\n\n# Resume last session\nyoyo --continue\n\n# Write output to file\nyoyo -p \"generate a config\" -o config.toml\n\n# Auto-approve all tool use\nyoyo --yes\n```\n\n### Configure\n\nCreate `.yoyo.toml` in your project root, `~\u002F.yoyo.toml` in your home directory, or `~\u002F.config\u002Fyoyo\u002Fconfig.toml` globally:\n\n```toml\nmodel = \"claude-sonnet-4-20250514\"\nprovider = \"anthropic\"\nthinking = \"medium\"\nmcp = [\"npx open-websearch@latest\"]\n\n[permissions]\nallow = [\"cargo *\", \"npm *\"]\ndeny = [\"rm -rf *\"]\n\n[directories]\nallow = [\".\"]\ndeny = [\"..\u002Fsecrets\"]\n```\n\n### Project Context\n\nCreate a `YOYO.md` (or `CLAUDE.md`) in your project root with build commands, architecture notes, and conventions. yoyo loads it automatically as system context. Or run `\u002Finit` to generate one.\n\n## All Commands\n\n| Command | Description |\n|---------|-------------|\n| `\u002Fast \u003Cpattern>` | Structural code search using ast-grep (optional) |\n| `\u002Fbg [subcmd]` | Manage background shell processes: run, list, output, kill |\n| `\u002Fhelp` | Grouped command reference |\n| `\u002Fchanges` | Show files modified during this session |\n| `\u002Fclear` | Clear conversation history |\n| `\u002Fcompact` | Compact conversation to save context |\n| `\u002Fcommit [msg]` | Commit staged changes (AI-generates message if omitted) |\n| `\u002Fconfig` | Show all current settings |\n| `\u002Fconfig show` | Show loaded config file path and merged key-value pairs (secrets masked) |\n| `\u002Fconfig edit` | Open config file in `$EDITOR` |\n| `\u002Fcontext [system\\|tokens\\|files]` | Show loaded project context, system prompt, token budget, or referenced files |\n| `\u002Fcost` | Show session cost breakdown |\n| `\u002Fchangelog [N]` | Show recent git commit history (default: 15) |\n| `\u002Fevolution [N]` | Show evolution history, session stats, and CI run status |\n| `\u002Fdiff` | Git diff summary of uncommitted changes |\n| `\u002Fblame \u003Cfile>` | Git blame with colored output (`\u002Fblame file:10-20` for ranges) |\n| `\u002Fdocs \u003Ccrate>` | Look up docs.rs documentation |\n| `\u002Fexit`, `\u002Fquit` | Exit |\n| `\u002Ffind \u003Cpattern>` | Fuzzy-search project files by name |\n| `\u002Ffix` | Auto-fix build\u002Flint errors |\n| `\u002Floop \u003CN\\|until-pass> \u003Cprompt>` | Repeat a prompt in a polling loop |\n| `\u002Fforget \u003Cn>` | Remove a project memory by index |\n| `\u002Fgit \u003Csubcmd>` | Quick git: status, log, add, diff, branch, stash |\n| `\u002Fgoal [subcmd]` | Set, view, or check progress on a session goal (set\u002Fshow\u002Fclear\u002Fcheck) |\n| `\u002Fhealth` | Run project health checks |\n| `\u002Fhistory` | Show conversation message summary |\n| `\u002Fhistory detail` | Per-turn breakdown with tools and token counts |\n| `\u002Fhooks` | Show active hooks (pre\u002Fpost tool execution) |\n| `\u002Findex` | Build a lightweight codebase index |\n| `\u002Finit` | Generate a starter YOYO.md |\n| `\u002Fjump \u003Cname>` | Jump to a conversation bookmark |\n| `\u002Flint [pedantic\\|strict\\|fix\\|unsafe]` | Auto-detect and run project linter (strictness levels for Rust) |\n| `\u002Fload [path]` | Load session from file |\n| `\u002Fmark \u003Cname>` | Bookmark current point in conversation |\n| `\u002Fmarks` | List all conversation bookmarks |\n| `\u002Fcheckpoint [sub]` | Named file-state snapshots (save, list, restore, diff, delete) |\n| `\u002Fmemories` | List project-specific memories |\n| `\u002Fmodel \u003Cname\\|list\\|info>` | Switch, list, or inspect models |\n| `\u002Fpr [subcmd]` | PR workflow: list, view, create, diff, comment, checkout |\n| `\u002Fpermissions` | Show active security and permission configuration |\n| `\u002Fprovider \u003Cname>` | Switch provider mid-session |\n| `\u002Fremember \u003Cnote>` | Save a persistent project memory |\n| `\u002Fretry` | Re-send the last user input |\n| `\u002Freview [path]` | AI code review of changes or a specific file |\n| `\u002Frun \u003Ccmd>` | Run a shell command directly (no AI, no tokens) |\n| `\u002Fsave [path]` | Save session to file |\n| `\u002Fsearch \u003Cquery>` | Search conversation history |\n| `\u002Fspawn \u003Ctask>` | Spawn a subagent for a focused task |\n| `\u002Fstatus` | Show session info |\n| `\u002Fteach [on\\|off]` | Toggle teach mode — explains reasoning as it works |\n| `\u002Ftest` | Auto-detect and run project tests |\n| `\u002Fthink [level]` | Show or change thinking level |\n| `\u002Ftokens` | Show token usage, context window, and per-category breakdown |\n| `\u002Ftree [depth]` | Show project directory tree |\n| `\u002Fundo` | Revert all uncommitted changes |\n| `\u002Fupdate` | Self-update to the latest release |\n| `\u002Fversion` | Show version, build metadata, and target |\n| `\u002Fweb \u003Curl>` | Fetch a web page and display readable text |\n\n## Grow Your Own\n\nWant your own self-evolving agent? Fork this repo, edit two files, and you're running:\n\n1. **Fork** [yologdev\u002Fyoyo-evolve](https:\u002F\u002Fgithub.com\u002Fyologdev\u002Fyoyo-evolve)\n2. **Edit** `IDENTITY.md` (goals, rules) and `PERSONALITY.md` (voice, tone)\n3. **Create a GitHub App** and set secrets (`ANTHROPIC_API_KEY`, `APP_ID`, `APP_PRIVATE_KEY`, `APP_INSTALLATION_ID`)\n4. **Enable** the Evolution workflow\n\nEverything else auto-detects. See the [full guide](https:\u002F\u002Fyologdev.github.io\u002Fyoyo-evolve\u002Fbook\u002Fguides\u002Ffork.html) for details.\n\n## Architecture\n\n```\nsrc\u002F                    29 modules, ~43,000 lines of Rust\n  main.rs               Entry point, agent config, tool building\n  hooks.rs              Hook trait, registry, AuditHook, tool wrapping\n  cli.rs                CLI parsing, config files, permissions (--help delegates to help.rs)\n  commands.rs           Slash command dispatch, grouped \u002Fhelp, custom command loading\n  commands_bg.rs        \u002Fbg — background process management (run, list, output, kill)\n  commands_info.rs      \u002Fversion, \u002Fstatus, \u002Ftokens, \u002Fcost, \u002Fchangelog, \u002Fmodel, \u002Fprovider, \u002Fthink (read-only)\n  commands_git.rs       \u002Fdiff, \u002Fblame, \u002Fcommit, \u002Fpr, \u002Freview, \u002Fgit\n  commands_goal.rs      \u002Fgoal — persistent session goals (set, show, clear, check)\n  commands_project.rs   \u002Fhealth, \u002Ffix, \u002Ftest, \u002Flint, \u002Finit, \u002Findex, \u002Fdocs, \u002Ftree, \u002Ffind, \u002Fast, \u002Fwatch\n  commands_session.rs   \u002Fsave, \u002Fload, \u002Fcompact, \u002Ftokens, \u002Fcost\n  docs.rs               Crate documentation lookup\n  format.rs             ANSI formatting, markdown rendering, syntax highlighting\n  git.rs                Git operations, branch detection, PR interactions\n  help.rs               Canonical help module: --help output, \u002Fhelp REPL help, per-command help pages\n  memory.rs             Project memory system (.yoyo\u002Fmemory.json)\n  prompt.rs             System prompt construction, project context assembly, watch-after-prompt\n  repl.rs               REPL loop, tab completion, multi-line input\n  setup.rs              First-run onboarding wizard\ntests\u002F\n  integration.rs        82 subprocess-based integration tests\ndocs\u002F                   mdbook source (book.toml + src\u002F)\nsite\u002F                   gitignored build output (built by CI Pages workflow)\n  index.html            Journey homepage (built by build_site.py)\n  book\u002F                 mdbook output\nscripts\u002F\n  evolve.sh             Evolution pipeline (plan → implement → respond)\n  social.sh             Social session (discussions → reply → learn)\n  format_issues.py      Issue selection & formatting\n  format_discussions.py Discussion fetching & formatting (GraphQL)\n  yoyo_context.sh       Shared identity context loader (IDENTITY + PERSONALITY + memory)\n  daily_diary.sh        Blog post generator from journal\u002Fcommits\u002Flearnings\n  build_site.py         Journey website generator\nmemory\u002F\n  learnings.jsonl       Self-reflection archive (append-only JSONL, never compressed)\n  social_learnings.jsonl  Social insight archive (append-only JSONL)\n  active_learnings.md   Synthesized prompt context (regenerated daily)\n  active_social_learnings.md  Synthesized social context (regenerated daily)\nskills\u002F                 7 skills: self-assess, evolve, communicate, social, family, release, research\n```\n\n## Test Quality\n\n2,000+ tests (unit + integration) covering CLI flags, command parsing, error quality, exit codes, output formatting, edge cases, project detection, fuzzy scoring, git operations, session management, markdown rendering, cost calculation, permission logic, streaming behavior, and more.\n\nyoyo also uses mutation testing ([cargo-mutants](https:\u002F\u002Fgithub.com\u002Fsourcefrog\u002Fcargo-mutants)) to find gaps in the test suite. Every surviving mutant is a line of code that isn't truly tested.\n\n```bash\ncargo install cargo-mutants\ncargo mutants\n```\n\nSee `mutants.toml` for the configuration and `docs\u002Fsrc\u002Fcontributing\u002Fmutation-testing.md` for the full guide.\n\n## Built On\n\n[yoagent](https:\u002F\u002Fgithub.com\u002Fyologdev\u002Fyoagent) — minimal agent loop in Rust. The library that makes this possible.\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=yologdev\u002Fyoyo-evolve&type=Date)](https:\u002F\u002Fstar-history.com\u002F#yologdev\u002Fyoyo-evolve&Date)\n\n## Sponsors\n\n\u003C!-- SPONSORS_START -->\n\u003C!-- This block is auto-maintained by scripts\u002Frefresh_sponsors.py — do not edit by hand. -->\n\n**💎 Genesis Sponsors:**\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fzhenfund\" title=\"@zhenfund — $1,000\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fzhenfund.png?size=160\" width=\"80\" height=\"80\" alt=\"@zhenfund\" \u002F>\u003C\u002Fa>\n\n**🚀 Patron Sponsors ($50+):**\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkojiyang\" title=\"@kojiyang — $200\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fkojiyang.png?size=128\" width=\"64\" height=\"64\" alt=\"@kojiyang\" \u002F>\u003C\u002Fa>\n\n\u003C!-- SPONSORS_END -->\n\n## License\n\n[MIT](LICENSE)\n","yoyo-evolve 是一个能够自我进化的AI编码代理，它能自主编写和改进自己的代码。该项目使用Rust语言开发，核心功能包括自动读取并改进自身源代码、运行测试、管理Git仓库以及与GitHub社区互动等，整个过程无需人工干预。yoyo适合用于探索AI在软件开发自动化领域的潜力，特别是对于希望观察或研究自进化系统如何工作的开发者而言，是一个非常有价值的开源工具。",2,"2026-06-11 03:50:23","high_star"]