Quickstart · Examples · Models · Cloud · Docs
# Tell it the task. It opens a browser and gets it done. Scout is an open-source agent that uses a real browser to finish a task for you. Describe what you need in plain words. Scout reads the page, clicks, types and scrolls until the job is done, then hands back the answer. If it cannot finish, it tells you what is missing and returns what it found. **Scout runs best on Outcrawl's cloud.** One line gives it a browser that sites treat like anyone at home, with captcha solving and a replay of every run. It also runs on your own machine.
A recorded run on Outcrawl's cloud, 13 October 2026, shown at 6x speed with nothing cut.
## Start in three steps **1. Install Scout.** You need Node 22 or later. On the cloud there is no browser to install. ```sh npm i @outcrawl/scout ``` **2. Add your keys.** An Outcrawl key for the browser ([get one free at outcrawl.ai](https://outcrawl.ai): 1,000 credits every month, no card needed) and a key for your model. Scout works with any AI model service that speaks the standard chat completions API, including a model running on your own computer: ```sh export OUTCRAWL_API_KEY=your-outcrawl-key export SCOUT_BASE_URL=https://your-endpoint/v1 export SCOUT_API_KEY=your-model-key export SCOUT_HANDS_MODEL=your-model-id ``` **3. Give it a task.** Save this as `task.ts` and run `npx tsx task.ts`: ```ts import { Scout } from '@outcrawl/scout'; const scout = new Scout({ browser: 'outcrawl', models: { hands: { model: process.env.SCOUT_HANDS_MODEL!, baseURL: process.env.SCOUT_BASE_URL!, apiKey: process.env.SCOUT_API_KEY!, }, }, }); const result = await scout.run('Find the top three stories on Hacker News right now'); console.log(result.data); console.log(result.replayUrl); // watch the whole run, step by step ``` Scout opens a browser on Outcrawl's cloud, works through the page, and prints the answer with a link to the replay. **Rather use a browser on your own machine?** Install one with `npm i playwright-core && npx playwright install chromium`, then change the one line to `browser: { launch: {} }`. Add `headless: false` inside `launch` to watch it work. Replays come with the cloud, so `replayUrl` stays empty on your own browser. > [!TIP] > Not writing the code yourself? Give this page to your coding agent and ask it to set Scout up and run your task. ## What you can ask it to do Tasks you would do in a browser yourself, written the way you would ask a colleague. Each of these is a working example you can run: - **Research.** "Go to Hacker News and report the three stories with the most comments: title, link and comment count." [`research.ts`](packages/scout/examples/research.ts) - **Fill in a form.** "Order a pizza on this form, then tell me exactly what the shop received." [`form-fill.ts`](packages/scout/examples/form-fill.ts) - **Compare.** "Find these two books and compare their price and stock, then tell me which is cheaper." [`compare.ts`](packages/scout/examples/compare.ts) - **Sign in.** "Sign in with these details and read the welcome message." [`login.ts`](packages/scout/examples/login.ts) - **On the cloud.** The research task on Outcrawl's cloud, with a link to watch the replay. [`outcrawl.ts`](packages/scout/examples/outcrawl.ts) Want the answer in a fixed shape, such as a list of names and prices? Pass a JSON Schema with the task and the answer comes back in exactly that shape. ## Bring your own models Scout has no built-in model and no default. You choose a model for each job, on any service that speaks the chat completions API: a hosted provider, a gateway, or a server on your own machine. Each job can use a different model and a different key. | Job | Needed | What it does | | --- | --- | --- | | `hands` | Yes | Reads the page and takes each step: click, type, scroll, read. It runs on every step, so a fast model pays off here. | | `brain` | No | Plans the run and decides each step. Helps long tasks that cross many pages. | | `eyes` | No | Looks at a screenshot when the page has to be seen. Needs a model that accepts images. | | `extract` | No | Reads a page into your answer or your schema. Without it, `hands` does this. | ```ts models: { hands: { model: 'your-fast-model', baseURL: urlA, apiKey: keyA }, brain: { model: 'your-strong-model', baseURL: urlB, apiKey: keyB }, eyes: { model: 'your-vision-model', baseURL: urlA, apiKey: keyA }, extract: { model: 'your-local-model', baseURL: localUrl, apiKey: '' }, } ``` If a service refuses Scout's request for a structured reply, the run's error says which job it was and what to change: set `structuredOutput` on that job to `'json_object'` or `'strict'`. ## The best way to run it: Outcrawl's cloud
Scout is made by Outcrawl, web infrastructure for AI agents.