Skip to content

Commit 622f369

Browse files
committed
add header image and remove npm badge
1 parent 41fb829 commit 622f369

File tree

2 files changed

+50
-49
lines changed

2 files changed

+50
-49
lines changed

README.md

Lines changed: 50 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66

77
<p align="center">
88
<a href="https://github.com/ntegrals/openbrowser/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a>
9-
<a href="https://www.npmjs.com/package/open-browser"><img src="https://img.shields.io/npm/v/open-browser.svg" alt="npm version"></a>
109
<a href="https://github.com/ntegrals/openbrowser"><img src="https://img.shields.io/github/stars/ntegrals/openbrowser?style=social" alt="GitHub stars"></a>
1110
</p>
1211

12+
<img src="./media/header.png" alt="Header"></a>
13+
1314
---
1415

1516
Give an AI agent a browser. It clicks, types, navigates, and extracts data — autonomously completing tasks on any website. Built on Playwright with first-class support for OpenAI, Anthropic, and Google models.
@@ -46,11 +47,11 @@ bun run open-browser interactive
4647

4748
Open Browser is a monorepo with three packages:
4849

49-
| Package | Description |
50-
|---|---|
51-
| **`open-browser`** | Core library — agent logic, browser control, DOM analysis, LLM integration |
52-
| **`@open-browser/cli`** | Command-line interface for running agents and browser commands |
53-
| **`@open-browser/sandbox`** | Sandboxed execution with resource limits and monitoring |
50+
| Package | Description |
51+
| --------------------------- | -------------------------------------------------------------------------- |
52+
| **`open-browser`** | Core library — agent logic, browser control, DOM analysis, LLM integration |
53+
| **`@open-browser/cli`** | Command-line interface for running agents and browser commands |
54+
| **`@open-browser/sandbox`** | Sandboxed execution with resource limits and monitoring |
5455

5556
## CLI Commands
5657

@@ -73,14 +74,14 @@ open-browser run "Sign up for the newsletter on example.com with test@email.com"
7374
open-browser run "Go to GitHub, find the open-browser repo, and star it"
7475
```
7576

76-
| Option | Description |
77-
|---|---|
78-
| `-m, --model <model>` | Model to use (default: `gpt-4o`) |
79-
| `-p, --provider <provider>` | Provider: `openai`, `anthropic`, `google` |
80-
| `--headless / --no-headless` | Show or hide the browser window |
81-
| `--max-steps <n>` | Max agent steps (default: `25`) |
82-
| `-v, --verbose` | Show detailed step info |
83-
| `--no-cost` | Hide cost tracking |
77+
| Option | Description |
78+
| ---------------------------- | ----------------------------------------- |
79+
| `-m, --model <model>` | Model to use (default: `gpt-4o`) |
80+
| `-p, --provider <provider>` | Provider: `openai`, `anthropic`, `google` |
81+
| `--headless / --no-headless` | Show or hide the browser window |
82+
| `--max-steps <n>` | Max agent steps (default: `25`) |
83+
| `-v, --verbose` | Show detailed step info |
84+
| `--no-cost` | Hide cost tracking |
8485

8586
### Browser Commands
8687

@@ -114,46 +115,46 @@ browser> help
114115
## Using as a Library
115116

116117
```typescript
117-
import { Agent, createViewport, createModel } from "open-browser";
118+
import { Agent, createViewport, createModel } from 'open-browser'
118119

119-
const viewport = await createViewport({ headless: true });
120-
const model = createModel("openai", "gpt-4o");
120+
const viewport = await createViewport({ headless: true })
121+
const model = createModel('openai', 'gpt-4o')
121122

122123
const agent = new Agent({
123124
viewport,
124125
model,
125-
task: "Go to example.com and extract the main heading",
126+
task: 'Go to example.com and extract the main heading',
126127
settings: {
127128
stepLimit: 50,
128129
enableScreenshots: true,
129130
},
130-
});
131+
})
131132

132-
const result = await agent.run();
133-
console.log(result);
133+
const result = await agent.run()
134+
console.log(result)
134135
```
135136

136137
### Sandboxed Execution
137138

138139
Run agents with resource limits and monitoring:
139140

140141
```typescript
141-
import { Sandbox } from "@open-browser/sandbox";
142+
import { Sandbox } from '@open-browser/sandbox'
142143

143144
const sandbox = new Sandbox({
144-
timeout: 300_000, // 5 minute timeout
145-
maxMemoryMB: 512, // Memory limit
146-
allowedDomains: ["example.com"],
145+
timeout: 300_000, // 5 minute timeout
146+
maxMemoryMB: 512, // Memory limit
147+
allowedDomains: ['example.com'],
147148
stepLimit: 100,
148149
captureOutput: true,
149-
});
150+
})
150151

151152
const result = await sandbox.run({
152-
task: "Complete the checkout form",
153+
task: 'Complete the checkout form',
153154
model: languageModel,
154-
});
155+
})
155156

156-
console.log(result.metrics); // steps, URLs visited, CPU time
157+
console.log(result.metrics) // steps, URLs visited, CPU time
157158
```
158159

159160
## Configuration
@@ -177,25 +178,25 @@ OPEN_BROWSER_SAVE_RECORDING_PATH=./recordings
177178

178179
### Agent Configuration
179180

180-
| Setting | Default | Description |
181-
|---|---|---|
182-
| `stepLimit` | `100` | Maximum agent iterations |
183-
| `commandsPerStep` | `10` | Actions per agent step |
184-
| `failureThreshold` | `5` | Consecutive failures before stopping |
185-
| `enableScreenshots` | `true` | Include page screenshots in agent context |
186-
| `contextWindowSize` | `128000` | Token budget for conversation |
187-
| `allowedUrls` | `[]` | Restrict navigation to specific URLs |
188-
| `blockedUrls` | `[]` | Block navigation to specific URLs |
181+
| Setting | Default | Description |
182+
| ------------------- | -------- | ----------------------------------------- |
183+
| `stepLimit` | `100` | Maximum agent iterations |
184+
| `commandsPerStep` | `10` | Actions per agent step |
185+
| `failureThreshold` | `5` | Consecutive failures before stopping |
186+
| `enableScreenshots` | `true` | Include page screenshots in agent context |
187+
| `contextWindowSize` | `128000` | Token budget for conversation |
188+
| `allowedUrls` | `[]` | Restrict navigation to specific URLs |
189+
| `blockedUrls` | `[]` | Block navigation to specific URLs |
189190

190191
### Viewport Configuration
191192

192-
| Setting | Default | Description |
193-
|---|---|---|
194-
| `headless` | `true` | Run browser without visible window |
195-
| `width` / `height` | `1280` / `1100` | Browser window dimensions |
196-
| `relaxedSecurity` | `false` | Disable browser security features |
197-
| `proxy` || Proxy server configuration |
198-
| `cookieFile` || Path to cookie file for persistent sessions |
193+
| Setting | Default | Description |
194+
| ------------------ | --------------- | ------------------------------------------- |
195+
| `headless` | `true` | Run browser without visible window |
196+
| `width` / `height` | `1280` / `1100` | Browser window dimensions |
197+
| `relaxedSecurity` | `false` | Disable browser security features |
198+
| `proxy` | | Proxy server configuration |
199+
| `cookieFile` | | Path to cookie file for persistent sessions |
199200

200201
## How It Works
201202

@@ -227,11 +228,11 @@ OPEN_BROWSER_SAVE_RECORDING_PATH=./recordings
227228

228229
## Model Support
229230

230-
| Provider | Example Models | Flag |
231-
|---|---|---|
232-
| **OpenAI** | `gpt-4o`, `gpt-4o-mini`, `o1` | `-p openai` |
231+
| Provider | Example Models | Flag |
232+
| ------------- | ----------------------------------------------- | -------------- |
233+
| **OpenAI** | `gpt-4o`, `gpt-4o-mini`, `o1` | `-p openai` |
233234
| **Anthropic** | `claude-sonnet-4-5-20250929`, `claude-opus-4-6` | `-p anthropic` |
234-
| **Google** | `gemini-2.0-flash`, `gemini-2.5-pro` | `-p google` |
235+
| **Google** | `gemini-2.0-flash`, `gemini-2.5-pro` | `-p google` |
235236

236237
## Project Structure
237238

media/header.png

138 KB
Loading

0 commit comments

Comments
 (0)