scout README

The project's README from github.com/outcrawlai/scout. As one markdown file: README.md.

Scout by outcrawl. The open-source browser agent.

Quickstart  ·  Examples  ·  Models  ·  Cloud  ·  Docs

Licence: Apache-2.0 npm: @outcrawl/scout TypeScript, Node 22 or later

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 Scout run on Outcrawl's cloud, at 6x speed. The task: Go to https://books.toscrape.com, open the first book in the Poetry category and report its title and price. Scout opens the shop, clicks Poetry, opens the first book and answers: title A Light in the Attic, price £51.77. Completed in 5 steps.

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.

npm i @outcrawl/scout

2. Add your keys. An Outcrawl key for the browser (get one free at 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:

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:

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:

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.
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

Your agent on the left reaches a browser on your own laptop, or a browser on Outcrawl's cloud on the right.

Many sites stop a browser that runs from a data center or behaves like a script, and a task that stops halfway is no answer at all. On Outcrawl's cloud, Scout gets a browser built to get through:

Measured: runs on Outcrawl's cloud reached 92.5% of pages on Browser Use's 80-site benchmark, scored with their own code; the next best reached 81.4%. Three full runs, 7 October 2026. Method and every run.

A cloud run is billed as an ordinary Outcrawl browser session, and your model calls still go to your own services. Every account gets 1,000 free credits a month, no card needed. Get a key at outcrawl.ai.

Other browsers

Scout drives any Chrome or Chromium, so moving between them is one line; your models and your task stay the same.

// On Outcrawl's cloud (recommended)
browser: 'outcrawl'

// On your machine, started for you
browser: { launch: {} }

// A browser you already run, over CDP
browser: { cdpUrl: 'http://127.0.0.1:9222' }

What you get back

Every run returns a result, even one that falls short:

Limit a run with caps: { steps, duration, budget }. Reaching a limit is a normal ending, with everything found so far. The full API is in the package reference.

Inside this repository

Package What it is
packages/scout The front door: new Scout({ browser, models }).run(task).
packages/runtime The agent loop: look at the page, pick an action, act, check, repeat.
packages/model The model side of the loop: prompts, the job split, structured replies, provider-neutral clients.
packages/scout-core Shared types and helpers.
packages/scout-cdp Drives a real browser over the DevTools protocol: navigation, clicks, typing, scrolling, tabs, snapshots.
packages/agenthands Pointer and keyboard input planning for local browsers (MIT, its own licence).

To work on Scout itself:

bun install
cd packages/runtime && bun test ./test

Contributing

Pull requests are welcome: bug reports, fixes and new examples alike. Sign off each commit (git commit -s, the Developer Certificate of Origin).

This repository is an automatic mirror. Every change lands first in the repository Outcrawl runs in production, ships with its tests, and then arrives here in a sync commit, so a merged pull request comes back to you as part of the next sync. CONTRIBUTING.md has the details.

Licence

Apache-2.0, see LICENSE. packages/agenthands keeps its MIT licence. Copyright 2026 Aeonmind LLC.


outcrawl
Scout is made by Outcrawl, web infrastructure for AI agents.

scout (outcrawlai/scout)

Searching Database…

936 ·GitHub
这是什么东西?Scout 是 Outcrawl 开源的一个浏览器智能体:你用大白话描述一个任务,它就会打开一个真实的浏览器,读取网页、点击、输入、滚动,直到把事情办完,然后把结果交给你。
它是一个我引入的库,还是一个独立的应用?它是一个添加到项目里的 TypeScript/Node 库:你用浏览器和模型创建一个 Scout 实例,然后在自己的脚本里调用 run(task)。
我怎么把它跑起来?在 Node 22 或更高版本下安装它,配置一个用于云浏览器的 Outcrawl 密钥,再配置一个你所选 AI 模型的密钥,然后把任务保存为 task.ts,用 npx tsx task.ts 运行。
我需要自己准备 AI 模型的密钥吗?需要。Scout 本身不带模型,所以任何支持标准 chat completions API 的服务你都得自带密钥,包括跑在自己电脑上的模型。
不用 Outcrawl 的云服务也能跑吗?可以,在本地安装 playwright-core 和 Chromium,再改一行配置就行。但这样就用不了验证码识别、住宅网络连接和回放功能了,因为这些都只有云端才提供。
一次运行结束后,Scout 会返回什么?一个结果对象,包含 status(completed、partial、capped 或 failed)、符合你 schema 结构的答案数据、可能的错误信息、执行过的步骤列表、以美元计的模型费用;如果用的是云端,还会有一个 replayUrl 链接,可以回看整个运行过程。
Outcrawl 的云服务要花多少钱?每个账户每月免费获得 1,000 个额度,不需要绑卡;云端运行按普通的 Outcrawl 浏览器会话计费,而你自己调用模型的部分则由模型服务商另行收费。
和其他智能体相比,它绕过机器人检测的能力怎么样?在 Browser Use 的 80 个网站基准测试中,跑在 Outcrawl 云端的 Scout 完成了 92.5% 的页面,而排名第二的智能体是 81.4%,这得益于住宅 IP 和内置的验证码识别。
不同的步骤可以用不同的 AI 模型吗?可以。Scout 把工作分成 hands(动手)、brain(思考)、eyes(看页面)和 extract(提取)几类任务,每一类都可以指定不同的模型和密钥,比如 hands 用速度快的模型,eyes 用视觉模型。
Creator
outcrawlai
Size
15.4 MB
Stars
936
Updated
CommitOct 16
Age
4d
Commits · 90 Days