Files
clawd/antfarm/landing/index.html
Echo dc64d18224 fix: convert antfarm from broken submodule to regular directory
Fixes Gitea 500 error caused by invalid submodule reference.
Converted antfarm from pseudo-submodule (missing .gitmodules) to
regular directory with all source files.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 16:03:37 +00:00

309 lines
15 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Antfarm — Build your agent team with one command</title>
<meta name="description" content="Build your agent team in OpenClaw with one command. Deterministic multi-agent workflows defined in YAML. Zero infrastructure.">
<!-- Open Graph / Twitter Card -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://antfarm.cool">
<meta property="og:title" content="Antfarm — Build your agent team with one command">
<meta property="og:description" content="Multi-agent workflows for OpenClaw. Define a team of specialized AI agents in YAML. One install. Zero infrastructure.">
<meta property="og:image" content="https://antfarm.cool/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Antfarm — Build your agent team with one command">
<meta name="twitter:description" content="Multi-agent workflows for OpenClaw. Define a team of specialized AI agents in YAML. One install. Zero infrastructure.">
<meta name="twitter:image" content="https://antfarm.cool/og-image.png">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="topbar">
<div class="topbar-inner">
<a href="#" class="topbar-brand">
<span class="topbar-name">Antfarm</span>
</a>
<div class="topbar-links">
<a href="#workflows">Workflows</a>
<a href="#security">Security</a>
<a href="#commands">Commands</a>
<a href="https://github.com/snarktank/antfarm" class="topbar-gh">
<svg height="18" width="18" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
</a>
</div>
</div>
</div>
<main class="container">
<!-- Hero -->
<section class="hero">
<div class="hero-row">
<img src="logo.jpeg" alt="Antfarm" class="hero-logo">
<h1>Build your agent team in <a href="https://docs.openclaw.ai">OpenClaw</a> with one command</h1>
</div>
<p class="hero-sub">You don't need to hire a dev team. You need to define one. Antfarm gives you a team of specialized AI agents — planner, developer, verifier, tester, reviewer — that work together in reliable, repeatable workflows. One install. Zero infrastructure.</p>
<div class="hero-actions">
<div class="install-cmd">
<code><span class="cmd-prompt">$</span> install github.com/snarktank/antfarm</code>
<button class="copy-btn" onclick="navigator.clipboard.writeText('install github.com/snarktank/antfarm').then(()=>{this.textContent='Copied!';setTimeout(()=>this.textContent='Copy',1500)})" title="Copy to clipboard">Copy</button>
</div>
<p class="install-hint">Tell your OpenClaw agent. That's it.</p>
</div>
</section>
<!-- The problem -->
<section class="section problem-section">
<h2 class="problem-text">Antfarm gives you a team of agents that specialize, verify each other, and run the same playbook every time.</h2>
</section>
<!-- Bundled workflows -->
<section id="workflows" class="section">
<h2>What you get: Agent team workflows</h2>
<div class="workflow-grid">
<div class="wf-card">
<div class="wf-header">
<h3>feature-dev</h3>
<span class="wf-badge">7 agents</span>
</div>
<p>Drop in a feature request. Get back a tested PR. The planner decomposes your task into stories. Each story gets implemented, verified, and tested in isolation. Failures retry automatically. Nothing ships without a code review.</p>
<div class="wf-pipeline">
<span>plan</span><span class="wf-arrow">&rarr;</span>
<span>setup</span><span class="wf-arrow">&rarr;</span>
<span>implement</span><span class="wf-arrow">&rarr;</span>
<span>verify</span><span class="wf-arrow">&rarr;</span>
<span>test</span><span class="wf-arrow">&rarr;</span>
<span>PR</span><span class="wf-arrow">&rarr;</span>
<span>review</span>
</div>
</div>
<div class="wf-card">
<div class="wf-header">
<h3>security-audit</h3>
<span class="wf-badge">7 agents</span>
</div>
<p>Point it at a repo. Get back a security fix PR with regression tests. Scans for vulnerabilities, ranks by severity, patches each one, re-audits after all fixes are applied.</p>
<div class="wf-pipeline">
<span>scan</span><span class="wf-arrow">&rarr;</span>
<span>prioritize</span><span class="wf-arrow">&rarr;</span>
<span>setup</span><span class="wf-arrow">&rarr;</span>
<span>fix</span><span class="wf-arrow">&rarr;</span>
<span>verify</span><span class="wf-arrow">&rarr;</span>
<span>test</span><span class="wf-arrow">&rarr;</span>
<span>PR</span>
</div>
</div>
<div class="wf-card">
<div class="wf-header">
<h3>bug-fix</h3>
<span class="wf-badge">6 agents</span>
</div>
<p>Paste a bug report. Get back a fix with a regression test. Triager reproduces it, investigator finds root cause, fixer patches, verifier confirms. Zero babysitting.</p>
<div class="wf-pipeline">
<span>triage</span><span class="wf-arrow">&rarr;</span>
<span>investigate</span><span class="wf-arrow">&rarr;</span>
<span>setup</span><span class="wf-arrow">&rarr;</span>
<span>fix</span><span class="wf-arrow">&rarr;</span>
<span>verify</span><span class="wf-arrow">&rarr;</span>
<span>PR</span>
</div>
</div>
</div>
</section>
<!-- Why it works -->
<section class="section">
<h2>Why it works</h2>
<div class="steps-grid">
<div class="step-card">
<h3>Deterministic workflows</h3>
<p>Same workflow, same steps, same order. Not "hopefully the agent remembers to test."</p>
</div>
<div class="step-card">
<h3>Agents verify each other</h3>
<p>The developer doesn't mark their own homework. A separate verifier checks every story against acceptance criteria.</p>
</div>
<div class="step-card">
<h3>Fresh context, every step</h3>
<p>Each agent gets a clean session. No context window bloat. No hallucinated state from 50 messages ago.</p>
</div>
<div class="step-card">
<h3>Retry and escalate</h3>
<p>Failed steps retry automatically. If retries exhaust, it escalates to you. Nothing fails silently.</p>
</div>
</div>
</section>
<!-- How it works -->
<section class="section">
<h2>How it works</h2>
<div class="steps-grid">
<div class="step-card">
<div class="step-num">1</div>
<h3>Define</h3>
<p>Agents and steps in YAML. Each agent gets a persona, workspace, and strict acceptance criteria. No ambiguity about who does what.</p>
</div>
<div class="step-card">
<div class="step-num">2</div>
<h3>Install</h3>
<p>One command provisions everything: agent workspaces, cron polling, subagent permissions. No Docker, no queues, no external services.</p>
</div>
<div class="step-card">
<div class="step-num">3</div>
<h3>Run</h3>
<p>Agents poll for work independently. Claim a step, do the work, pass context to the next agent. SQLite tracks state. Cron keeps it moving.</p>
</div>
</div>
</section>
<!-- Minimal by design -->
<section class="section minimal-section">
<h2>Minimal by design</h2>
<p class="section-desc">YAML + SQLite + cron. That's it. No Redis, no Kafka, no container orchestrator. Antfarm is a TypeScript CLI with zero external dependencies. It runs wherever OpenClaw runs.</p>
</section>
<!-- Ralph loop -->
<section class="section ralph-section">
<div class="ralph-row">
<img src="https://raw.githubusercontent.com/snarktank/ralph/main/ralph.webp" alt="Ralph" class="ralph-img">
<div>
<h3>Built on the Ralph loop</h3>
<p>Each agent runs in a fresh session with clean context. Memory persists through git history and progress files — the same autonomous loop pattern from <a href="https://github.com/snarktank/ralph">Ralph</a>, scaled to multi-agent workflows.</p>
</div>
</div>
</section>
<!-- Quick example -->
<section class="section">
<h2>Quick example</h2>
<div class="code-block">
<div class="code-header">
<span class="code-tab active">Terminal</span>
</div>
<pre><code><span class="c-prompt">$</span> antfarm workflow install feature-dev
<span class="c-ok"></span> Installed workflow: feature-dev
<span class="c-prompt">$</span> antfarm workflow run feature-dev <span class="c-str">"Add user authentication with OAuth"</span>
<span class="c-dim">Run: a1fdf573</span>
<span class="c-dim">Workflow: feature-dev</span>
<span class="c-dim">Status: running</span>
<span class="c-prompt">$</span> antfarm workflow status <span class="c-str">"OAuth"</span>
<span class="c-dim">Run: a1fdf573</span>
<span class="c-dim">Workflow: feature-dev</span>
<span class="c-dim">Steps:</span>
<span class="c-ok">[done ]</span> plan (planner)
<span class="c-ok">[done ]</span> setup (setup)
<span class="c-run">[running]</span> implement (developer) <span class="c-dim">Stories: 3/7 done</span>
<span class="c-pend">[pending]</span> verify (verifier)
<span class="c-pend">[pending]</span> test (tester)
<span class="c-pend">[pending]</span> pr (developer)
<span class="c-pend">[pending]</span> review (reviewer)</code></pre>
</div>
</section>
<!-- Build your own -->
<section class="section">
<h2>Build your own</h2>
<p class="section-desc">The bundled workflows are starting points. Define your own agents, steps, retry logic, and verification gates in plain YAML and Markdown. If you can write a prompt, you can build a workflow.</p>
<div class="code-block">
<div class="code-header">
<span class="code-tab active">workflow.yml</span>
</div>
<pre><code><span class="c-key">id:</span> my-workflow
<span class="c-key">name:</span> My Custom Workflow
<span class="c-key">agents:</span>
- <span class="c-key">id:</span> researcher
<span class="c-key">name:</span> Researcher
<span class="c-key">workspace:</span>
<span class="c-key">files:</span>
<span class="c-key">AGENTS.md:</span> agents/researcher/AGENTS.md
<span class="c-key">steps:</span>
- <span class="c-key">id:</span> research
<span class="c-key">agent:</span> researcher
<span class="c-key">input:</span> <span class="c-str">|</span>
<span class="c-str">Research {{task}} and report findings.</span>
<span class="c-str">Reply with STATUS: done and FINDINGS: ...</span>
<span class="c-key">expects:</span> <span class="c-str">"STATUS: done"</span></code></pre>
</div>
<p class="section-link">Full guide: <a href="https://github.com/snarktank/antfarm/blob/main/docs/creating-workflows.md">docs/creating-workflows.md</a></p>
</section>
<!-- Security -->
<section id="security" class="section">
<h2>Security</h2>
<p class="section-desc">You're installing agent teams that run code on your machine. We take that seriously.</p>
<div class="security-grid">
<div class="security-item">
<h4>Curated repo only</h4>
<p>Antfarm only installs workflows from the official <a href="https://github.com/snarktank/antfarm">snarktank/antfarm</a> repository. No arbitrary remote sources.</p>
</div>
<div class="security-item">
<h4>Reviewed for prompt injection</h4>
<p>Every workflow is reviewed for prompt injection attacks and malicious agent files before merging.</p>
</div>
<div class="security-item">
<h4>Community contributions welcome</h4>
<p>Want to add a workflow? Submit a PR. All submissions go through careful security review before they ship.</p>
</div>
<div class="security-item">
<h4>Transparent by default</h4>
<p>Every workflow is plain YAML and Markdown. You can read exactly what each agent will do before you install it.</p>
</div>
</div>
</section>
<!-- Dashboard -->
<section class="section">
<h2>Dashboard</h2>
<p class="section-desc">Monitor runs, track step progress, and view agent output in real time.</p>
<div class="dashboard-frame">
<img src="dashboard-screenshot.png" alt="Antfarm dashboard showing workflow runs and step status">
</div>
<div class="dashboard-frame" style="margin-top:16px">
<img src="dashboard-detail-screenshot.png" alt="Antfarm dashboard showing run detail with stories">
</div>
</section>
<!-- Commands -->
<section id="commands" class="section">
<h2>Commands</h2>
<div class="cmd-grid">
<div class="cmd-group">
<h4>Lifecycle</h4>
<div class="cmd-row"><code>antfarm install</code><span>Install all bundled workflows</span></div>
<div class="cmd-row"><code>antfarm uninstall</code><span>Full teardown (agents, crons, DB)</span></div>
</div>
<div class="cmd-group">
<h4>Workflows</h4>
<div class="cmd-row"><code>antfarm workflow run &lt;id&gt; &lt;task&gt;</code><span>Start a run</span></div>
<div class="cmd-row"><code>antfarm workflow status &lt;query&gt;</code><span>Check run status</span></div>
<div class="cmd-row"><code>antfarm workflow runs</code><span>List all runs</span></div>
<div class="cmd-row"><code>antfarm workflow resume &lt;run-id&gt;</code><span>Resume a failed run</span></div>
</div>
<div class="cmd-group">
<h4>Management</h4>
<div class="cmd-row"><code>antfarm workflow list</code><span>List available workflows</span></div>
<div class="cmd-row"><code>antfarm workflow install &lt;id&gt;</code><span>Install a single workflow</span></div>
<div class="cmd-row"><code>antfarm workflow uninstall &lt;id&gt;</code><span>Remove a single workflow</span></div>
<div class="cmd-row"><code>antfarm dashboard</code><span>Start the web dashboard</span></div>
<div class="cmd-row"><code>antfarm logs</code><span>View recent log entries</span></div>
</div>
</div>
</section>
</main>
<footer class="footer">
<div class="footer-inner">
<p>Part of the <a href="https://docs.openclaw.ai">OpenClaw</a> ecosystem</p>
<p>Built by <a href="https://ryancarson.com">Ryan Carson</a></p>
</div>
</footer>
</body>
</html>