> ## Documentation Index
> Fetch the complete documentation index at: https://darwin.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Search for what can do it. Act to make it happen.

Build with one durable loop: discover an executable capability, select the exact revision, and move the work toward a truthful outcome.

<div className="darwin-home-cta">
  <div className="darwin-home-cta-copy">
    <div className="darwin-home-cta-title">Add Darwin to your product</div>
    <p>Search public capabilities and coordinate real work through one stable contract.</p>
  </div>

  <div className="darwin-home-cta-actions">
    <a className="darwin-home-button" href="/docs/get-started/quickstart">Start building</a>
    <a className="darwin-home-button" href="https://darwin.so/settings?tab=api-keys">Get an API key</a>
  </div>
</div>

<div className="darwin-examples">
  <input className="darwin-example-radio" type="radio" name="darwin-example" id="darwin-example-search" defaultChecked />

  <input className="darwin-example-radio" type="radio" name="darwin-example" id="darwin-example-act" />

  <div className="darwin-example-heading">
    <h2>Two operations, one workflow</h2>
    <span>TypeScript</span>
  </div>

  <div className="darwin-example-layout">
    <div className="darwin-example-nav">
      <label htmlFor="darwin-example-search">
        <span className="darwin-example-label-title">Search</span>
        <span className="darwin-example-label-description">Find and rank executable capabilities.</span>
      </label>

      <label htmlFor="darwin-example-act">
        <span className="darwin-example-label-title">Act</span>
        <span className="darwin-example-label-description">Start durable work from the selected revision.</span>
      </label>
    </div>

    <div className="darwin-example-stage">
      <div className="darwin-example-panel darwin-example-panel-search">
        ```typescript theme={null}
        import { DarwinClient } from '@darwinso/sdk';

        const darwin = new DarwinClient({
          token: process.env.DARWIN_API_KEY!,
        });

        const found = await darwin.search({
          query: 'OCR that handles handwriting and tables',
          limit: 5,
        });

        const selected = found.results[0];
        ```

        <a className="darwin-example-link" href="/docs/search/quickstart">Understand Search →</a>
      </div>

      <div className="darwin-example-panel darwin-example-panel-act">
        ```typescript theme={null}
        const action = await darwin.startAction({
          capabilityId: selected.capabilityId,
          capabilityRevision: selected.capabilityRevision,
          inputs: { file: 'https://example.com/invoice.pdf' },
          requestId: crypto.randomUUID(),
        });

        // Keep action.actionId. It is the durable handle for this work.
        ```

        <a className="darwin-example-link" href="/docs/act/quickstart">Understand Act →</a>
      </div>
    </div>
  </div>

  <p className="darwin-example-note">Search is read-only. Act preserves the selected capability revision and pauses whenever the user needs to supply information, connection, payment, or approval.</p>
</div>

## Choose how you build

<CardGroup cols={3}>
  <Card title="REST API" icon="braces" href="/docs/reference/search">
    Call the public v2 contract from any trusted server environment.
  </Card>

  <Card title="TypeScript and Python" icon="code" href="/docs/sdks/quickstart">
    Use generated clients with typed requests, responses, and errors.
  </Card>

  <Card title="MCP" icon="blocks" href="/docs/get-started/mcp">
    Give a compatible AI client focused Search and Action tools.
  </Card>
</CardGroup>

## What Darwin keeps explicit

<CardGroup cols={3}>
  <Card title="Selection" icon="list-check">
    Canonical ranking, match evidence, availability, and pricing stay visible before work starts.
  </Card>

  <Card title="Authority" icon="shield-check">
    Authentication, connection, payment, and approval remain separate decisions.
  </Card>

  <Card title="State" icon="route">
    One `actionId` survives waits, browser handoffs, retries, and client restarts.
  </Card>
</CardGroup>

## Start with the right guide

<CardGroup cols={2}>
  <Card title="Developer quickstart" icon="rocket" href="/docs/get-started/quickstart">
    Make your first Search and start an Action in four steps.
  </Card>

  <Card title="Build with an Agent Skill" icon="wand-magic-sparkles" href="/docs/get-started/agent-skills">
    Teach an AI when to search, when to act, and when to stop for the user.
  </Card>
</CardGroup>

[Service status](https://status.darwin.so) · [Pricing](https://darwin.so/pricing) · [Changelog](/docs/changelog)
