MCPHub LabRegistryyologdev/yoyo-evolve
yologdev

yologdev/yoyo evolve

Built by yologdev โ€ข 1,386 stars

What is yologdev/yoyo evolve?

A coding agent that evolves itself. One commit per day.

How to use yologdev/yoyo evolve?

1. Install a compatible MCP client (like Claude Desktop). 2. Open your configuration settings. 3. Add yologdev/yoyo evolve using the following command: npx @modelcontextprotocol/yologdev-yoyo-evolve 4. Restart the client and verify the new tools are active.
๐Ÿ›ก๏ธ Scoped (Restricted)
npx @modelcontextprotocol/yologdev-yoyo-evolve --scope restricted
๐Ÿ”“ Unrestricted Access
npx @modelcontextprotocol/yologdev-yoyo-evolve

Key Features

Native MCP Protocol Support
Real-time Tool Activation & Execution
Verified High-performance Implementation
Secure Resource & Context Handling

Optimized Use Cases

Extending AI models with custom local capabilities
Automating system workflows via natural language
Connecting external data sources to LLM context windows

yologdev/yoyo evolve FAQ

Q

Is yologdev/yoyo evolve safe?

Yes, yologdev/yoyo evolve follows the standardized Model Context Protocol security patterns and only executes tools with explicit user-granted permissions.

Q

Is yologdev/yoyo evolve up to date?

yologdev/yoyo evolve is currently active in the registry with 1,386 stars on GitHub, indicating its reliability and community support.

Q

Are there any limits for yologdev/yoyo evolve?

Usage limits depend on the specific implementation of the MCP server and your system resources. Refer to the official documentation below for technical details.

Official Documentation

View on GitHub
<p align="center"> <img src="assets/banner.png" alt="yoyo โ€” a coding agent that evolves itself" width="100%"> </p> <p align="center"> <a href="https://yologdev.github.io/yoyo-evolve">Website</a> ยท <a href="https://yologdev.github.io/yoyo-evolve/book/">Documentation</a> ยท <a href="https://github.com/yologdev/yoyo-evolve">GitHub</a> ยท <a href="https://deepwiki.com/yologdev/yoyo-evolve">DeepWiki</a> ยท <a href="https://github.com/yologdev/yoyo-evolve/issues">Issues</a> ยท <a href="https://x.com/yuanhao">Follow on X</a> </p> <p align="center"> <a href="https://crates.io/crates/yoyo-agent"><img src="https://img.shields.io/crates/v/yoyo-agent" alt="crates.io"></a> <a href="https://github.com/yologdev/yoyo-evolve/actions"><img src="https://img.shields.io/github/actions/workflow/status/yologdev/yoyo-evolve/evolve.yml?label=evolution&logo=github" alt="evolution"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="license MIT"></a> <a href="https://github.com/yologdev/yoyo-evolve/commits/main"><img src="https://img.shields.io/github/last-commit/yologdev/yoyo-evolve" alt="last commit"></a> </p>

yoyo: A Coding Agent That Evolves Itself

yoyo is a 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 55 slash commands.

It started as a ~200-line CLI example. Every few hours it reads its own source, picks improvements, implements them, and commits โ€” if tests pass. 24 days of autonomous evolution later: 31,000+ lines of Rust, 1,346 tests, 14 modules.

No human writes its code. No roadmap tells it what to do. It decides for itself.

Features

๐Ÿ™ Agent Core

  • Streaming output โ€” tokens arrive as they're generated, not after completion
  • Multi-turn conversation with full history tracking
  • Extended thinking โ€” adjustable reasoning depth (off / minimal / low / medium / high)
  • Subagent spawning โ€” /spawn delegates focused tasks to a child agent; the model can also delegate subtasks automatically via a built-in sub-agent tool
  • Parallel tool execution โ€” multiple tool calls run simultaneously
  • Automatic retry with exponential backoff and rate-limit awareness

๐Ÿ› ๏ธ Tools

ToolWhat it does
bashRun shell commands with interactive confirmation
read_fileRead files with optional offset/limit
write_fileCreate or overwrite files with content preview
edit_fileSurgical text replacement with colored inline diffs
searchRegex-powered grep across files
list_filesDirectory listing with glob filtering
rename_symbolProject-wide symbol rename across all git-tracked files
ask_userAsk the user questions mid-task for clarification (interactive mode only)

๐Ÿ”Œ Multi-Provider Support

Works with 11 providers out of the box โ€” switch mid-session with /provider:

Anthropic ยท OpenAI ยท Google ยท Ollama ยท OpenRouter ยท xAI ยท Groq ยท DeepSeek ยท Mistral ยท Cerebras ยท Custom (any OpenAI-compatible endpoint)

๐Ÿ“‚ Git Integration

  • /diff โ€” full status + diff with insertion/deletion summary
  • /commit โ€” AI-generated commit messages from staged changes
  • /undo โ€” revert last commit, clean up untracked files
  • /git โ€” shortcuts for status, log, diff, branch, stash
  • /pr โ€” full PR workflow: list, view, create [--draft], diff, comment, checkout
  • /review โ€” AI-powered code review of staged/unstaged changes

๐Ÿ—๏ธ Project Tooling

  • /health โ€” run build/test/clippy/fmt diagnostics (auto-detects Rust, Node, Python, Go, Make)
  • /fix โ€” run checks and auto-apply fixes for failures
  • /test โ€” detect project type and run the right test command
  • /lint โ€” detect project type and run the right linter
  • /init โ€” scan project and generate a starter YOYO.md context file
  • /index โ€” build a codebase index: file counts, language breakdown, key files
  • /docs โ€” look up docs.rs documentation for any Rust crate
  • /tree โ€” project structure visualization
  • /find โ€” fuzzy file search with scoring and ranked results
  • /ast โ€” structural code search using ast-grep (optional)

๐Ÿ’พ Session Management

  • /save and /load โ€” persist and restore sessions as JSON
  • --continue/-c โ€” resume last session on startup
  • Auto-save on exit โ€” sessions saved automatically, including crash recovery
  • Auto-compaction at 80% context usage, plus manual /compact
  • --context-strategy checkpoint โ€” exit with code 2 when context is high (for pipeline restarts)
  • /tokens โ€” visual token usage bar with percentage
  • /cost โ€” per-model input/output/cache pricing breakdown

๐Ÿง  Context & Memory

  • Project context files โ€” auto-loads YOYO.md, CLAUDE.md, or .yoyo/instructions.md
  • Git-aware context โ€” recently changed files injected into system prompt
  • Project memories โ€” /remember, /memories, /forget for persistent cross-session notes

๐Ÿ” Permission System

  • Interactive tool approval โ€” confirm prompts for bash, write_file, and edit_file with preview
  • "Always" option โ€” approve once per session
  • --yes/-y โ€” auto-approve all executions
  • --allow / --deny โ€” glob-based allowlist/blocklist for commands
  • --allow-dir / --deny-dir โ€” directory restrictions with path traversal prevention
  • Config file support via [permissions] and [directories] sections

๐Ÿงฉ Extensibility

  • MCP servers โ€” --mcp <cmd> or mcp = [...] in .yoyo.toml connects to MCP servers via stdio transport
  • OpenAPI tools โ€” --openapi <spec> registers tools from OpenAPI specifications
  • Skills system โ€” --skills <dir> loads markdown skill files with YAML frontmatter

โœจ REPL Experience

  • Rustyline โ€” arrow keys, Ctrl-A/E/K/W, persistent history
  • Tab completion โ€” slash commands, file paths, model names, git subcommands, inline hints
  • Multi-line input โ€” backslash continuation and fenced code blocks
  • Markdown rendering โ€” headers, bold, italic, code blocks with syntax-labeled headers
  • Syntax highlighting โ€” Rust, Python, JS/TS, Go, Shell, C/C++, JSON, YAML, TOML
  • Braille spinner while waiting for responses
  • Conversation bookmarks โ€” /mark, /jump, /marks
  • Conversation search โ€” /search with highlighted matches
  • Shell escape โ€” /run <cmd> and !<cmd> bypass the AI entirely

Quick Start

Install (macOS & Linux)

curl -fsSL https://raw.githubusercontent.com/yologdev/yoyo-evolve/main/install.sh | bash

Install (Windows PowerShell)

irm https://raw.githubusercontent.com/yologdev/yoyo-evolve/main/install.ps1 | iex

Or install from crates.io

cargo install yoyo-agent

Or build from source

git clone https://github.com/yologdev/yoyo-evolve && cd yoyo-evolve && cargo install --path .

Run

# Interactive REPL (default)
ANTHROPIC_API_KEY=sk-... yoyo

# Single prompt
yoyo -p "explain this codebase"

# Pipe input
echo "write a README" | yoyo

# Use a different provider
OPENAI_API_KEY=sk-... yoyo --provider openai --model gpt-4o

# With extended thinking
yoyo --thinking high

# With project skills
yoyo --skills ./skills

# Resume last session
yoyo --continue

# Write output to file
yoyo -p "generate a config" -o config.toml

# Auto-approve all tool use
yoyo --yes

Configure

Create .yoyo.toml in your project root, ~/.yoyo.toml in your home directory, or ~/.config/yoyo/config.toml globally:

model = "claude-sonnet-4-20250514"
provider = "anthropic"
thinking = "medium"
mcp = ["npx open-websearch@latest"]

[permissions]
allow = ["cargo *", "npm *"]
deny = ["rm -rf *"]

[directories]
allow = ["."]
deny = ["../secrets"]

Project Context

Create 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 /init to generate one.

All Commands

CommandDescription
/ast <pattern>Structural code search using ast-grep (optional)
/helpGrouped command reference
/changesShow files modified during this session
/clearClear conversation history
/compactCompact conversation to save context
/commit [msg]Commit staged changes (AI-generates message if omitted)
/configShow all current settings
/contextShow loaded project context files
/costShow session cost breakdown
/diffGit diff summary of uncommitted changes
/docs <crate>Look up docs.rs documentation
/exit, /quitExit
/find <pattern>Fuzzy-search project files by name
/fixAuto-fix build/lint errors
/forget <n>Remove a project memory by index
/git <subcmd>Quick git: status, log, add, diff, branch, stash
/healthRun project health checks
/historyShow conversation message summary
/indexBuild a lightweight codebase index
/initGenerate a starter YOYO.md
/jump <name>Jump to a conversation bookmark
/lintAuto-detect and run project linter
/load [path]Load session from file
/mark <name>Bookmark current point in conversation
/marksList all conversation bookmarks
/memoriesList project-specific memories
/model <name>Switch model mid-session
/pr [subcmd]PR workflow: list, view, create, diff, comment, checkout
/provider <name>Switch provider mid-session
/remember <note>Save a persistent project memory
/retryRe-send the last user input
/review [path]AI code review of changes or a specific file
/run <cmd>Run a shell command directly (no AI, no tokens)
/save [path]Save session to file
/search <query>Search conversation history
/spawn <task>Spawn a subagent for a focused task
/statusShow session info
/testAuto-detect and run project tests
/think [level]Show or change thinking level
/tokensShow token usage and context window
/tree [depth]Show project directory tree
/undoRevert all uncommitted changes
/versionShow yoyo version
/web <url>Fetch a web page and display readable text

How It Evolves

Every ~8 hours, yoyo wakes up and:
    โ†’ Reads its own source code
    โ†’ Checks GitHub issues for community input
    โ†’ Plans what to improve
    โ†’ Makes changes, runs tests
    โ†’ If tests pass โ†’ commit. If not โ†’ revert.
    โ†’ Replies to issues as ๐Ÿ™ yoyo-evolve[bot]
    โ†’ Pushes and goes back to sleep

Every 4 hours (offset), yoyo runs a social session:
    โ†’ Reads GitHub Discussions
    โ†’ Replies to conversations it's part of
    โ†’ Joins new discussions if it has something real to say
    โ†’ Occasionally starts its own discussion
    โ†’ Learns from interacting with humans

Daily, a synthesis job regenerates active memory:
    โ†’ Reads JSONL archives (learnings + social learnings)
    โ†’ Applies time-weighted compression (recent=full, old=themed)
    โ†’ Writes active context files loaded into every prompt

The entire history is in the git log and the journal.

Talk to It

Start a GitHub Discussion for conversation, or open a GitHub Issue for bugs and feature requests.

Labels

LabelWhat it does
agent-inputCommunity suggestions, bug reports, feature requests โ€” yoyo reads these every session
agent-selfIssues yoyo filed for itself as future TODOs
agent-help-wantedIssues where yoyo is stuck and asking humans for help

How to submit

  1. Open a new issue
  2. Add the agent-input label
  3. Describe what you want โ€” be specific about the problem or idea
  4. Add a thumbs-up reaction to other issues you care about (higher votes = higher priority)

What to ask

  • Suggestions โ€” tell it what to learn or build
  • Bugs โ€” tell it what's broken (include steps to reproduce)
  • Challenges โ€” give it a task and see if it can do it
  • UX feedback โ€” tell it what felt awkward or confusing

What happens after

  • Fixed: yoyo comments on the issue and closes it automatically
  • Partial: yoyo comments with progress and keeps the issue open
  • Won't fix: yoyo explains its reasoning and closes the issue All responses come with yoyo's personality โ€” look for the ๐Ÿ™.

Shape Its Evolution

yoyo's growth isn't just autonomous โ€” you can influence it.

Guard It

Every issue is scored by net votes: thumbs up minus thumbs down. yoyo prioritizes high-scoring issues and deprioritizes negative ones.

  • See a great suggestion? Thumbs-up it to push it up the queue.
  • See a bad idea, spam, or prompt injection attempt? Thumbs-down it to protect yoyo.

You're the immune system. Issues that the community votes down get buried โ€” yoyo won't waste its time on them.

Sponsor

<a href="https://github.com/sponsors/yologdev">GitHub Sponsors</a> ยท <a href="https://ko-fi.com/yuanhao">Ko-fi</a>

Monthly sponsors get benefit tiers (everyone uses the same 8h run gap):

AmountBenefits
$5/moIssue priority (๐Ÿ’–)
$10/moPriority + shoutout issue
$25/moAbove + SPONSORS.md listing
$50/moAbove + README listing

One-time sponsors get a single accelerated run ($2+) plus benefit tiers:

AmountBenefits
$21 accelerated run (bypasses 8h gap)
$5Accelerated run + issue priority
$10Above + shoutout issue (30 days)
$20Above + SPONSORS.md eligible (30 days)
$50Above + priority for 60 days

Accelerated runs are only consumed when you have open issues, so nothing is wasted.

Crypto wallets:

ChainAddress
SOLF6ojB5m3ss4fFp3vXdxEzzRqvvSb9ErLTL8PGWQuL2sf
BASE0x0D2B87b84a76FF14aEa9369477DA20818383De29
BTCbc1qnfkazn9pk5l32n6j8ml9ggxlrpzu0dwunaaay4

Architecture

src/                    15 modules, ~31,000 lines of Rust
  main.rs               Entry point, agent config, tool building
  hooks.rs              Hook trait, registry, AuditHook, tool wrapping
  cli.rs                CLI parsing, config files, permissions
  commands.rs           Slash command dispatch, grouped /help
  commands_git.rs       /diff, /commit, /pr, /review, /git
  commands_project.rs   /health, /fix, /test, /lint, /init, /index, /docs, /tree, /find, /ast, /watch
  commands_session.rs   /save, /load, /compact, /tokens, /cost
  docs.rs               Crate documentation lookup
  format.rs             ANSI formatting, markdown rendering, syntax highlighting
  git.rs                Git operations, branch detection, PR interactions
  help.rs               Per-command help pages and command metadata
  memory.rs             Project memory system (.yoyo/memory.json)
  prompt.rs             System prompt construction, project context assembly
  repl.rs               REPL loop, tab completion, multi-line input
  setup.rs              First-run onboarding wizard
tests/
  integration.rs        82 subprocess-based integration tests
docs/                   mdbook source (book.toml + src/)
site/                   gitignored build output (built by CI Pages workflow)
  index.html            Journey homepage (built by build_site.py)
  book/                 mdbook output
scripts/
  evolve.sh             Evolution pipeline (plan โ†’ implement โ†’ respond)
  social.sh             Social session (discussions โ†’ reply โ†’ learn)
  format_issues.py      Issue selection & formatting
  format_discussions.py Discussion fetching & formatting (GraphQL)
  yoyo_context.sh       Shared identity context loader (IDENTITY + PERSONALITY + memory)
  daily_diary.sh        Blog post generator from journal/commits/learnings
  build_site.py         Journey website generator
memory/
  learnings.jsonl       Self-reflection archive (append-only JSONL, never compressed)
  social_learnings.jsonl  Social insight archive (append-only JSONL)
  active_learnings.md   Synthesized prompt context (regenerated daily)
  active_social_learnings.md  Synthesized social context (regenerated daily)
skills/                 6 skills: self-assess, evolve, communicate, social, release, research

Test Quality

1,346 tests (1,264 unit + 82 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.

yoyo also uses mutation testing (cargo-mutants) to find gaps in the test suite. Every surviving mutant is a line of code that isn't truly tested.

cargo install cargo-mutants
cargo mutants

See mutants.toml for the configuration and docs/src/contributing/mutation-testing.md for the full guide.

Built On

yoagent โ€” minimal agent loop in Rust. The library that makes this possible.

Star History

Star History Chart

License

MIT

Global Ranking

8.5
Trust ScoreMCPHub Index

Based on codebase health & activity.

Manual Config

{ "mcpServers": { "yologdev-yoyo-evolve": { "command": "npx", "args": ["yologdev-yoyo-evolve"] } } }