Skip to main content

image     image

n1-brightdata

An autonomous web research agent powered by Yutori n1 and Bright Data Browser API

Give it a task. It browses the web. It brings back answers.


Python License Bright Data Yutori


How It Works

  You give it a task
        │
        ▼
  Opens Bright Data Scraping Browser (real Chromium, residential IPs)
        │
        ▼
  Takes a screenshot → sends to Yutori n1 model
        │
        ▼
  n1 reasons: click here, type this, scroll there...
        │
        ▼
  Repeats until confident enough to answer
        │
        ▼
  Returns result to your terminal

The agent uses Bright Data's Scraping Browser for undetectable, scalable browsing and Yutori's n1 reasoning model to make decisions — all controlled from a single CLI command.


Prerequisites

Before you begin, you'll need accounts and credentials from two services:

Service What you need Where to get it
Bright Data Scraping Browser CDP URL brightdata.com → Scraping Browser zone
Yutori API Key yutori.com

Installation

1. Clone the repository

git clone https://github.com/meirk-brd/n1-brightdata.git
cd n1-brightdata

2. (Recommended) Create a virtual environment

python -m venv .venv
source .venv/bin/activate       # macOS / Linux
# .venv\Scripts\activate        # Windows

3. Install the CLI

pip install -e .

This installs the n1-brightdata command globally in your environment. Because it's editable (-e), any local code changes take effect immediately — no reinstall needed.

4. Install the browser

playwright install chromium

Configuration

Run the built-in setup wizard. It walks you through every credential, saves them to .env, installs Playwright, and optionally tests your connections:

n1-brightdata setup

Option B — Manual credentials.json

Create the file at ~/.n1-brightdata/credentials.json:

mkdir -p ~/.n1-brightdata
cat > ~/.n1-brightdata/credentials.json << 'EOF'
{
  "YUTORI_API_KEY": "your_yutori_api_key_here",
  "BRD_CDP_URL": "wss://brd-customer-XXXXXX-zone-scraping_browser:PASSWORD@brd.superproxy.io:9222"
}
EOF
chmod 600 ~/.n1-brightdata/credentials.json

Optional Tuning (project-level)

Tuning parameters stay in a local .env file or shell environment — they are not stored in credentials.json:

# .env  (in your project directory, or export in your shell)
N1_SCREENSHOT_FORMAT=jpeg          # jpeg | png
N1_JPEG_QUALITY=60                 # 1–100
N1_SCREENSHOT_TIMEOUT_MS=90000     # screenshot timeout in milliseconds
N1_MAX_REQUEST_BYTES=9500000       # trim old screenshots if payload exceeds this
N1_KEEP_RECENT_SCREENSHOTS=6       # how many screenshots to keep in context
N1_ENABLE_SUFFICIENCY_CHECK=true   # stop early when the agent is confident
N1_STOP_CONFIDENCE_THRESHOLD=0.78  # confidence threshold for early stopping (0–1)

Configuration Precedence

CLI flags  >  Shell env vars  >  .env file (tuning)  >  ~/.n1-brightdata/credentials.json

Usage

Basic

n1-brightdata "What is the current price of Bitcoin?"

With a Starting URL

n1-brightdata "Find the top 5 trending repositories" --url "https://github.com/trending"

Limit the Number of Steps

n1-brightdata "Summarize today's top news" --url "https://news.ycombinator.com" --max-steps 15

Full Command Reference

n1-brightdata [TASK] [OPTIONS]
Option Type Default Description
TASK string (required) The task for the agent to complete
--url string https://www.google.com Starting URL before the agent loop begins
--max-steps integer 30 Maximum number of browser actions (min: 1)
--screenshot-format jpeg | png jpeg Format of screenshots sent to the model
--jpeg-quality integer 60 JPEG quality when format is jpeg (1–100)
--screenshot-timeout-ms integer 90000 Screenshot timeout in milliseconds
--show-inspect-url flag false Print a DevTools inspect URL for the live session
--yutori-api-key string (env) Yutori API key (overrides env / .env)
--brd-cdp-url string (env) Bright Data CDP WebSocket URL (overrides env / .env)
--env-file path ./.env Custom path to a .env credentials file

Help

n1-brightdata --help
n1-brightdata run --help
n1-brightdata setup --help

Examples

# Research a topic
n1-brightdata "What are the key differences between GPT-4o and Claude 3.5 Sonnet?"

# Scrape structured data
n1-brightdata "List the top 10 products on Product Hunt today" --url "https://www.producthunt.com"

# Monitor a specific page
n1-brightdata "Is there a sale on the MacBook Pro 16-inch?" \
  --url "https://www.apple.com/shop/buy-mac/macbook-pro" \
  --max-steps 10

# High-quality screenshots for visual tasks
n1-brightdata "Describe the layout of the Airbnb homepage" \
  --url "https://www.airbnb.com" \
  --screenshot-format png

# Use a different .env for multiple accounts
n1-brightdata "Check order status" --env-file ~/.config/n1/work.env

Project Structure

n1-brightdata/
├── src/
│   └── n1_brightdata/
│       ├── __init__.py      # Package exports: AgentConfig, build_agent_config, run_agent
│       ├── agent.py         # Core agentic loop, browser tools, n1 model integration
│       ├── cli.py           # Click CLI: `run` and `setup` commands
│       └── console.py       # Rich terminal UI: banners, step display, progress
├── pyproject.toml           # Project metadata, dependencies, CLI entrypoint
└── .env                     # Your credentials (not committed)

Browser Tools

The agent can perform these actions autonomously:

Action Description
left_click Click at coordinates
double_click Double-click at coordinates
triple_click Triple-click (select all text in field)
right_click Right-click context menu
hover Mouse hover at coordinates
drag Drag from one coordinate to another
scroll Scroll up / down / left / right
type Type text (with optional clear & Enter)
key_press Press key combinations (e.g. Ctrl+F)
goto_url Navigate to a URL
go_back Browser back button
refresh Reload the current page
wait Pause for 800ms

Dependencies

Package Purpose
yutori >= 0.4.0 Yutori SDK for n1 model access
openai OpenAI-compatible API client
playwright Chromium browser automation
click CLI framework
python-dotenv .env file loading
rich >= 13.0 Beautiful terminal output

License

MIT © Bright Data


Built with Bright Data Scraping Browser + Yutori n1

Metadata

Release files for n1-brightdata 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for n1-brightdata 0.2.2
File Size Uploaded
n1_brightdata-0.2.2.tar.gz 19.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for n1-brightdata 0.2.2
File Interpreter ABI Platform
n1_brightdata-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 36.2 kB

Release files / n1_brightdata-0.2.2.tar.gz

Download URL n1_brightdata-0.2.2.tar.gz
Size 19.0 kB
Tags Source
SHA-256 checksum
How to use checksums
65f91ac5599b0754f993e6684d60e00843ed2f3c9f7a58a3fad1473586ace773
BLAKE2b-256 checksum
How to use checksums
7e2eeb2369c7e9e80904bab5d27b1c6435c5a0bb28850c25ab15e1fa88b56a39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 24, 2026.

Transparency log

Release files / n1_brightdata-0.2.2-py3-none-any.whl

Download URL n1_brightdata-0.2.2-py3-none-any.whl
Size 17.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fa11484654dc3d0401156e817b2839699a921434eae2972ec0ef8ae9af6f0f9e
BLAKE2b-256 checksum
How to use checksums
076587d8d7ffa56f38bc29b64a56b953de85c60b603f65b0115866809586086e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page