← all repositories
YaoApp/yao

A single binary that cages your AI agents

Yao is a Go runtime that bundles LLM agents, web apps, and sandboxed CLI tools into one executable — no Node, no Python, no Docker on the host.

yao
Velocity · 7d
+4.3
★ / day
Trend
steady
star history

What it does

Yao is a full-stack runtime shipped as a single binary. It runs three kinds of executors — LLM calls, sandboxed CLI agents (Claude Code, Codex, etc.), and plain TypeScript hooks — through the same request pipeline. You also get data models, REST APIs, server-rendered UI components, and a built-in chat interface, all without installing Node.js or Python on the host.

The interesting bit

The “cage, not an animal” framing is apt. Yao doesn’t try to be the AI; it wraps whatever model or CLI runner you bring, enforcing boundaries through Create and Next hooks that intercept every request. The built-in V8 engine runs TypeScript directly, and the CLI agent mode spins up isolated containers with VNC desktop access — useful for “computer use” tasks that need a real browser or IDE.

Key highlights

  • Single binary for ARM64/x64; self-contained, no host dependencies
  • Three executor modes (LLM, CLI agent, pure hook) mixable in one pipeline
  • Native MCP support for tool connections via process, SSE, or STDIO
  • Memory API with four scopes: request, session, user, team
  • Built-in search stack: vector embeddings, knowledge graph, GraphRAG
  • Skills ecosystem: drop SKILL.md packs into CLI agents for reusable capabilities

Caveats

  • The README is heavy on feature lists and light on concrete usage examples or performance numbers
  • “No containers needed on the host” is true for the binary itself, but the CLI agent mode explicitly uses containerized sandboxes — the distinction matters

Verdict

Worth a look if you’re building agentic workflows and tired of stitching together half a dozen services. Skip it if you need a mature plugin ecosystem or extensive third-party benchmarks; the project is ambitious but still proving itself.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.