Yao AgentsYour AI Team, On Your Devices, Under Your Control

The App Runtime
for the AI Era

Build AI agents and web apps — with a single binary.

$ curl -fsSL https://get.yaoapps.com | bash
assistants/coder/package.yao
{
  "name": "Coder",
  "type": "assistant",
  "description": "Full-stack coding assistant",
  "capabilities": "Write, review and refactor code",
  "connector": "claude.opus",
  "mcp": { "servers": [{ "server_id": "coder.tools" }] },
  "automated": true,
  "mentionable": true
}
models/order.mod.yao
{
  "name": "Order",
  "columns": [
    { "name": "customer", "type": "string", "length": 200 },
    { "name": "total", "type": "decimal" },
    { "name": "status", "type": "enum", "option": ["pending", "paid", "shipped"] }
  ],
  "relations": {
    "items": { "type": "hasMany", "model": "order_item", "key": "order_id" }
  }
}
api/order.http.yao
{
  "name": "Order API",
  "version": "1.0.0",
  "description": "Order management API",
  "paths": [
    {
      "path": "search",
      "method": "GET",
      "process": "models.order.Paginate",
      "in": [":params", ":query"]
    }
  ]
}
pages/landing/landing.html
<root>
  <header is="header"></header>
  <main class="landing">
    <h1 s:trans>Orders</h1>
    <div s:for="{{orders}}" s:for-item="item">
      <span>{{ item.customer }}</span><span>{{ item.total }}</span>
      <button s:on-click="Detail" s:data-id="{{ item.id }}">View</button>
    </div>
  </main>
  <footer is="footer"></footer>
</root>
scripts/order.ts
import { Process } from "@yao/runtime";

function LatestOrders() {
  const orders = Process(
    "models.order.Get",
    { wheres: [{ column: "status", value: "paid" }] }
  );
  return orders.map(o => ({
    id: o.id,
    customer: o.customer,
    total: "$" + o.total
  }));
}
Terminal
$ yao start

  Agenthttp://localhost:5099/v1/agent/assistants
  APIhttp://localhost:5099/v1/api/order/search
  SUI Pagehttp://localhost:5099/landing
  Dashboardhttp://localhost:5099/dashboard/auth/entry

$ yao run scripts.order.LatestOrders
  [{ "id": 1, "customer": "Acme Corp", "total": "$1,200" }, ...]

$ yao agent test -i "Hello" -n assistants.coder
  ► [direct] assistants.coder
    └─ PASSED (1.2s)