# Yolop

**Navigation:** [Products](/products/) | [Use Cases](/use-cases/) | [Blog](/blog/) | [Docs](https://docs.everruns.com/) | [GitHub](https://github.com/everruns/yolop)

---

> Point it at your repo and get out of the way.

Yolop is a terminal coding agent that's *autonomous by default*. Named after the Ukrainian *йолоп* — a fool — because it doesn't believe in per-tool approval pop-ups. It plans, edits, runs, and verifies, and asks for consent only when it actually matters.

```bash
brew install everruns/tap/yolop
```

- **1 binary** — plan · edit · run · verify
- **7 providers** — bring your own model
- **MIT** — licensed, in Rust

---

## Plans, edits, runs, and verifies — in one binary.

A terminal coding agent built on [the Everruns Runtime](/products/runtime). Autonomous by default, with persistent sessions, agent skills, MCP servers, and editor integration.

### Autonomous by default

Runs writes, edits, deletes, and bash commands without prompting — behind a standing write blocklist that rejects `.git/`, `node_modules/`, `target/` and friends at any depth.

### Soft approval, not pop-up fatigue

An AI-judgement layer pauses for spoken consent only at critical moments, and writes an audit trail. Levels: `protective` / `normal` / `off`.

### Goal loops

`/goal <condition>` keeps working across turns until a separate evaluator model confirms the condition is met — even in one-shot mode.

### Plans and verifies its own work

`write_todos` with loop detection, and a shell that actually runs your tests, builds, and linters to check the result.

### Persistent, resumable sessions

Durable per-session event logs on disk. Pick up where you left off with `--session <id>`; results survive a restart.

### Runs where you work

Interactive TUI, one-shot `--print` for scripts and CI, or inside your editor over the Agent Client Protocol.

---

## What comes in the box.

- **Repo map + AST grep.** `repo_map` and `repo_symbols` build a multi-language symbol overview; structural `ast_grep` spans Rust, Python, TypeScript, Go, C#, and more.
- **Optional LSP.** Real language servers — rust-analyzer, pyright, gopls, clangd — behind diagnostics, definition, references, and rename. Off by default; opt in per project.
- **Background tasks that wake it.** `spawn_background` runs detached, streams to a log, and proactively wakes the agent when a task finishes while it is idle.
- **Infinity context + memory.** Old history is trimmed from the live prompt but stays queryable, and a structured `MEMORY.md` keeps what matters.
- **MCP, skills, and hooks.** Wire in stdio and HTTP MCP servers, drop in `SKILL.md` files, and gate behavior with deterministic hooks.
- **Web access, built in.** `web_fetch` turns a page into clean markdown with DNS-pinned SSRF protection, and `duckduckgo_search` needs no API key.
- **Git worktree isolation.** Each session can work on its own branch in an isolated directory, so your main checkout stays untouched.

---

## Choose your provider.

Seven providers behind one flag. Yolop auto-detects credentials from your environment and uses the first it finds.

- **OpenAI** — gpt-5.6-sol (default)
- **Anthropic** — claude-opus-4-8
- **Codex subscription** — ChatGPT login
- **OpenRouter** — openai/gpt-5.6-sol
- **Google** — gemini-2.5-flash
- **Ollama** — llama3.2 · local
- **Custom** — any OpenAI-compatible

Pick one with `--provider`, override the model with `-m`. Resolution order: OpenAI → Codex → Anthropic → OpenRouter → Google → Ollama → Custom.

---

## The limits are specific and enforced.

Autonomy is the default, but it runs inside concrete boundaries.

### Protected paths, always.

*Blocklist.* Writes into `.git/`, `node_modules/`, `target/`, `dist/`, `build/`, `.venv/` and more are rejected at any depth.

### Bounded execution.

*Shell caps.* Commands run from workspace root with a 120s wall-clock timeout and a 1 MiB per-stream output cap; large output spills to disk.

### Spoken approval + audit.

*Consent.* Soft approval pauses at critical moments and records every decision to the session log via `record_approval`.

> Soft approval is not a sandbox. It asks the model to pause at the right time, but it does not mechanically block a tool call. For deterministic enforcement, use hooks.
>
> — docs/features/approvals.md

---

## Same agent, three surfaces.

One binary, run in the shape that fits the task.

### Interactive TUI

A scrolling transcript, multiline composer, slash commands, and a background-tasks panel. The default when you type `yolop`.

```bash
yolop
```

### One-shot / CI

Headless `--print` mode prints to stdout with no TUI, for scripts, pipelines, and cron.

```bash
yolop -p "…"
```

### In your editor

Speaks the Agent Client Protocol over stdio. One command auto-configures Zed.

```bash
yolop into zed
```

---

## Running in three lines.

1. **Install.** Homebrew on macOS & Linux, or `cargo install yolop --locked` from source.
2. **Point it at a repo.** `cd` into your project — or use `-C /path/to/repo` to work elsewhere.
3. **Run `yolop`.** First launch with no credentials opens a guided setup: provider → credentials → model.

```bash
$ brew install everruns/tap/yolop
$ cd your/repo
$ yolop
# first run → guided setup: provider → credentials → model
# or skip the TUI entirely:
$ OPENAI_API_KEY=sk-… yolop -p "summarize the build setup"
✓ autonomous by default — no per-tool pop-ups
```

---

## Run it on your own repo.

Yolop plans, edits, runs, and verifies while you review the diff. It's open source, MIT-licensed, and still experimental — one `brew install` away.

Install: `brew install everruns/tap/yolop`

GitHub: https://github.com/everruns/yolop
