# Onboarding for AI agents

If you are an AI agent, this page is for you. It is written as a
decision procedure: check your state, do what you can alone, and
relay one precise request to your human for the parts that need one.

Analog lets any AI understand websites as code: webpages in,
structured records out. Extraction is deterministic (no LLMs in the
pipeline). Pages are fetched on your machine. The SDK uses a local
headless browser, which visits as an unauthenticated user by default.
Authenticated content is sent only when you explicitly provide it
through `html=` or a custom fetcher. The browser uses a recognizable
identity and respects robots.txt. Extraction URLs are never logged. The
docs are markdown-native; the manifest is https://getanalog.io/llms.txt.

## First: check where you are

```bash
analog status
```

- Command not found: start at **Install** below. Everything there is
  yours to do alone.
- Installed but not signed in: skip to **Signing in needs your
  human**.
- Signed in: you are done. Skip to **Use it**.

No shell? If you are in an MCP client without command access, your
human runs Install and Sign in for you; after that the MCP tools
below just work.

## Install

```bash
curl -LsSf https://getanalog.io/install.sh | sh
```

Already have uv? `uv tool install analog-sdk`. Other routes (pipx,
pip, Homebrew, Windows): https://getanalog.io/docs/install.md

Analog renders pages in a real local browser. The browser binaries
download on first use (~150 MB, one-time); prefetch them now so your
first extraction doesn't stall on a download:

```bash
analog browser install
```

## Try it before you have an account

Two things work with no sign-in at all. The fit check:

```bash
analog assess https://example.com/catalog
```

It reports measured facts: the page's markdown size in tokens,
task-keyed routing guidance, and when reading the page directly is
the better tool. And local mode:

```bash
analog get https://example.com/catalog --mode local
```

It fetches the page and returns its markdown entirely on your
machine, without the backend extraction. Between them you can read
pages and judge the fit yourself, before deciding whether the full
structured extraction is worth asking your human for.

## Signing in needs your human

Analog is in private alpha. One step takes a person; here is a
message you can relay verbatim:

> I'd like to use Analog (getanalog.io) to read websites as
> structured data. It's in private alpha, so it needs one thing from
> you: run `analog signup` where I work — it opens your browser to
> create the account (invite code required; you can ask for one at
> team@getanalog.io) and connects my terminal in the same step.
> Already have an Analog account? Run `analog login` instead. After
> that I can use it on my own.

What happens mechanically: the command opens a browser, a person
confirms an emailed code there, and the credential lands in a local
store that the SDK, CLI, and MCP server read automatically. It is
never displayed, so there is nothing to paste into your context, and
nothing for you to store.

Verify the handoff worked:

```bash
analog whoami
```

## Use it

From Python:

```python
from analog import analog

result = analog("https://quotes.toscrape.com/js/")
print(result.structured_content[0].records[:3])
```

From an MCP client: install the server with
`uv tool install analog-mcp`, then register the stdio command
`analog-mcp`:

```json
{ "mcpServers": { "analog": { "command": "analog-mcp" } } }
```

Tool list and client specifics: https://getanalog.io/docs/mcp.md

## When to reach for Analog

Working with a page's data: Analog. One quick question, once: read
the page directly. Coming back repeatedly: extraction pays for
itself on the second visit, and every result is saved locally, so
re-opening or re-slicing an earlier result costs no new fetch.
Unsure: run the fit check above.

## When an extraction disappoints you

Tell us. It routes to the person who fixes these things:

```bash
analog feedback quality https://example.com/page --reason poor_field_naming --note "prices landed under text_3"
```

Reason labels and the feature-request form:
https://getanalog.io/docs/feedback.md

## If something breaks

https://getanalog.io/docs/troubleshooting.md

## Where everything is

- https://getanalog.io/llms.txt: the docs manifest, markdown-native
- https://getanalog.io/llms-full.txt: the whole corpus in one file
- Every docs page has a markdown twin at `/docs/<page>.md`
- This page: https://getanalog.io/agent-onboarding.md (stable URL)
