Files
huskies/website/docs/quickstart.html
T

166 lines
7.5 KiB
HTML
Raw Permalink Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Quickstart — Huskies Docs</title>
<meta name="description" content="Get huskies running in minutes: Docker setup, first story, first agent run.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;500;600;700;800&family=Karla:ital,wght@0,300;0,400;0,500;1,300;1,400&display=swap" rel="stylesheet">
<link rel="stylesheet" href="docs.css">
</head>
<body>
<div class="shell">
<header class="reveal r1">
<a href="/" class="logo">huskies</a>
<nav>
<a href="/#how">How it works</a>
<a href="/#features">Features</a>
<a href="/docs/" class="active">Docs</a>
<a href="https://code.crashlabs.io/crashlabs/huskies">Source</a>
<a href="https://code.crashlabs.io/crashlabs/huskies/releases">Releases</a>
<a href="mailto:hello@huskies.dev" class="nav-cta">Get in touch</a>
</nav>
</header>
</div>
<div class="shell">
<div class="docs-layout">
<aside class="sidebar reveal r2">
<div class="sidebar-section">
<div class="sidebar-heading">Getting started</div>
<nav>
<a href="/docs/">Overview</a>
<a href="quickstart.html" class="active">Quickstart</a>
</nav>
</div>
<div class="sidebar-section">
<div class="sidebar-heading">Reference</div>
<nav>
<a href="configuration.html">Configuration</a>
<a href="commands.html">Bot commands</a>
<a href="cli.html">CLI</a>
</nav>
</div>
<div class="sidebar-section">
<div class="sidebar-heading">Guides</div>
<nav>
<a href="pipeline.html">Pipeline stages</a>
<a href="transports.html">Chat transports</a>
</nav>
</div>
</aside>
<main class="docs-main reveal r3">
<h1 class="page-title">Quickstart</h1>
<p class="page-subtitle">Get huskies running in your project in a few minutes. This guide covers Docker setup, running from a binary, your first story, and your first agent run.</p>
<h2>Option A: Docker (recommended)</h2>
<p>The easiest way to run huskies is with Docker Compose. This requires Docker and a Claude API key.</p>
<ol class="step-list">
<li>
<div>
<strong>Get the compose file.</strong> Download <code>docker-compose.yml</code> from the <a href="https://code.crashlabs.io/crashlabs/huskies/releases">releases page</a> or copy it from the repository's <code>docker/</code> directory.
</div>
</li>
<li>
<div>
<strong>Set your API key.</strong> Create a <code>.env</code> file next to the compose file:
<pre><code>ANTHROPIC_API_KEY=sk-ant-...</code></pre>
</div>
</li>
<li>
<div>
<strong>Mount your project.</strong> Edit the compose file to mount your project directory:
<pre><code>volumes:
- /path/to/your/project:/workspace</code></pre>
</div>
</li>
<li>
<div>
<strong>Start the server.</strong>
<pre><code>docker compose up</code></pre>
Open <a href="http://localhost:3000">http://localhost:3000</a> to see the pipeline board.
</div>
</li>
</ol>
<h2>Option B: Binary</h2>
<p>Download the pre-built binary for your platform from the <a href="https://code.crashlabs.io/crashlabs/huskies/releases">releases page</a> and place it somewhere on your <code>PATH</code>.</p>
<h3>macOS (Apple Silicon)</h3>
<pre><code>curl -L https://code.crashlabs.io/crashlabs/huskies/releases/download/latest/huskies-aarch64-apple-darwin \
-o /usr/local/bin/huskies
chmod +x /usr/local/bin/huskies</code></pre>
<h3>Linux (x86-64)</h3>
<pre><code>curl -L https://code.crashlabs.io/crashlabs/huskies/releases/download/latest/huskies-x86_64-unknown-linux-musl \
-o /usr/local/bin/huskies
chmod +x /usr/local/bin/huskies</code></pre>
<h2>Option C: Build from source</h2>
<p>Requires Rust (stable), Node.js, and npm.</p>
<pre><code>git clone https://code.crashlabs.io/crashlabs/huskies
cd huskies
cargo build --release
# Binary is at target/release/huskies</code></pre>
<h2>Initialise your project</h2>
<p>From your project directory, run the init command. This creates the <code>.huskies/</code> directory with the pipeline structure and configuration files.</p>
<pre><code>cd /path/to/your/project
huskies init --port 3000</code></pre>
<p>This creates:</p>
<ul>
<li><code>.huskies/project.toml</code> — project-wide settings</li>
<li><code>.huskies/agents.toml</code> — agent definitions (coder, QA, mergemaster)</li>
<li><code>.huskies/work/</code> — the 6-stage pipeline directory</li>
<li><code>.mcp.json</code> — MCP server config for Claude Code integration</li>
<li><code>.huskies/specs/</code> — placeholder spec files for your project context</li>
</ul>
<div class="note">
<strong>Claude Code integration:</strong> The <code>.mcp.json</code> file automatically registers huskies' MCP tools with Claude Code. Open a Claude Code session in your project and it will discover tools like <code>create_story</code>, <code>start_agent</code>, and <code>get_pipeline_status</code> automatically.
</div>
<h2>Start the server</h2>
<pre><code>huskies --port 3000</code></pre>
<p>Open <a href="http://localhost:3000">http://localhost:3000</a> to see the pipeline board, agent status, and chat interface.</p>
<h2>Run the setup wizard</h2>
<p>Open a Claude Code session in your project directory (or use the web chat UI), and tell Claude:</p>
<pre><code>help me set up this project with huskies</code></pre>
<p>Claude will walk you through the setup wizard — generating project context (<code>specs/00_CONTEXT.md</code>), tech stack docs (<code>specs/tech/STACK.md</code>), and test/release scripts. Review each step and confirm or ask to retry.</p>
<h2>Create your first story</h2>
<p>In the chat UI or via a chat transport, type:</p>
<pre><code>I want to add a health check endpoint to the API</code></pre>
<p>Claude will create a story file in <code>.huskies/work/1_backlog/</code> with a user story and acceptance criteria. Review it, then move it to current:</p>
<pre><code>move &lt;story-number&gt; current</code></pre>
<h2>Start an agent</h2>
<p>Once a story is in <code>2_current/</code>, start a coding agent:</p>
<pre><code>start &lt;story-number&gt;</code></pre>
<p>The agent creates an isolated git worktree, implements the feature against the acceptance criteria, runs quality gates (clippy, tests, biome), and exits. The server automatically advances the story to QA if all gates pass.</p>
<h2>Review and merge</h2>
<p>Once QA passes, the story moves to <code>4_merge/</code>. To merge:</p>
<pre><code>start &lt;story-number&gt;</code></pre>
<p>The mergemaster agent resolves any conflicts and squash-merges to your main branch. The worktree is cleaned up automatically.</p>
<div class="note">
<strong>Tip:</strong> Use <code>status</code> in the chat at any time to see the current pipeline state, active agents, and their progress.
</div>
</main>
</div>
<footer class="reveal r3">
<span>&copy; 2026 Libby Labs Ltd.</span>
<a href="/privacy.html">Privacy Policy</a>
</footer>
</div>
</body>
</html>