Notte - Browser Automation API

Browser automation - control browser sessions, scrape pages, and run AI agents

How to use it

  1. Hit Copy the whole skill.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/research-tools/capabilities/browser-automation-notte#main ~/.claude/skills/browser-automation-notte

For one project only, change the path to .claude/skills/browser-automation-notte.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text300 lines
browser-automation-notte/SKILL.md300 lines9.7 KBpushed 96d agoRawView on GitHub

Notte - Browser Automation API

Setup

Read your credentials from ~/.gooseworks/credentials.json:

export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")

If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login

All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"

Control browser sessions, scrape web pages, and run autonomous AI agents.

Capabilities

  • Take Screenshot: Take a screenshot of the current page
  • Get Session: Get session status and details (free)
  • Stop Session: Stop and clean up a browser session (free)
  • Get Session Cookies: Get all cookies from the browser session (free)
  • Get Network Logs: Get network request/response logs from the session (free)
  • Get Agent Status: Get agent execution status and results (free)
  • Observe Page: Observe the current page state and get available actions
  • Stop Agent: Stop a running agent (free)
  • Scrape Webpage: Scrape content from a URL without managing sessions
  • Execute Page Action: Execute an action on the page (click, type, navigate, etc
  • Set Session Cookies: Set cookies in the browser session
  • Start Session: Start a new browser session
  • Scrape from HTML: Extract structured content from raw HTML without using a browser
  • Start Agent: Start an AI agent to autonomously complete a browser task
  • Scrape Page: Scrape content from the current page in the session

Usage

Take Screenshot

Take a screenshot of the current page.

Parameters:

  • full_page (boolean) - Capture full page
  • session_id* (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/sessions/{session_id}/page/screenshot","body":{}}'

Get Session (free)

Get session status and details.

Parameters:

  • session_id* (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/sessions/{session_id}"}'

Stop Session (free)

Stop and clean up a browser session.

Parameters:

  • session_id* (string) - Session ID
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/sessions/{session_id}/stop"}'

Get Session Cookies (free)

Get all cookies from the browser session.

Parameters:

  • session_id* (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/sessions/{session_id}/cookies"}'

Get Network Logs (free)

Get network request/response logs from the session.

Parameters:

  • session_id* (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/sessions/{session_id}/network/logs","query":{"session_id":"example"}}'

Get Agent Status (free)

Get agent execution status and results.

Parameters:

  • agent_id* (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/agents/{agent_id}"}'

Observe Page

Observe the current page state and get available actions.

Parameters:

  • max_nb_actions (number) - Maximum actions to return (default: 100)
  • min_nb_actions (number) - Minimum actions to return
  • instruction (string) - Optional instruction to filter actions
  • session_id* (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/sessions/{session_id}/page/observe","body":{"instruction":"Find the search box"}}'

Stop Agent (free)

Stop a running agent.

Parameters:

  • session_id* (string) - Session ID the agent is running on
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/agents/{agent_id}/stop"}'

Scrape Webpage

Scrape content from a URL without managing sessions.

Parameters:

  • url* (string) - URL to scrape
  • schema (object) - Structured extraction schema
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/scrape","body":{"url":"https://example.com"}}'

Execute Page Action

Execute an action on the page (click, type, navigate, etc.).

Parameters:

  • type* (string) - Action type: goto, click, type, scroll, select, hover, wait, screenshot
  • url (string) - URL for goto action
  • ref (string) - Element reference for click/type/select actions
  • text (string) - Text for type action
  • value (string) - Value for select action
  • direction (string) - Scroll direction: up/down
  • amount (number) - Scroll amount in pixels
  • timeout (number) - Wait timeout in ms
  • session_id* (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/sessions/{session_id}/page/execute","body":{"instruction":"Click the search button"}}'

Set Session Cookies

Set cookies in the browser session.

Parameters:

  • cookies* (array) - Array of cookie objects
  • session_id* (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/sessions/{session_id}/cookies"}'

Start Session

Start a new browser session. Configure browser type, proxies, viewport, and session timeout.

Parameters:

  • headless (boolean) - Run in headless mode (default: true)
  • browser_type (string) - Browser type: chromium, chrome, firefox
  • proxies (boolean) - Enable proxy rotation
  • solve_captchas (boolean) - Auto-solve CAPTCHAs
  • idle_timeout_minutes (integer) - Idle timeout (default: 3)
  • max_duration_minutes (integer) - Max duration (default: 15)
  • viewport_width (integer)
  • viewport_height (integer)
  • user_agent (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/sessions/start"}'
  "url": "https://example.com",
  "timeout_minutes": 5
}'

Scrape from HTML

Extract structured content from raw HTML without using a browser

Parameters:

  • frames* (array) - Array of HTML frames to parse
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/scrape_from_html","body":{"html":"<html><body>Hello</body></html>"}}'

Start Agent

Start an AI agent to autonomously complete a browser task.

Parameters:

  • task* (string) - Task for the AI agent to perform
  • session_id* (string) - Session ID to run the agent on
  • url (string) - Starting URL
  • max_steps (number) - Max steps (1-50, default: 20)
  • use_vision (boolean) - Use vision model (default: true)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/agents/start"}'
  "task": "Search for AI news on Google and summarize the top results",
  "url": "https://google.com"
}'

Scrape Page

Scrape content from the current page in the session.

Parameters:

  • selector (string) - Playwright selector to scope the scrape
  • scrape_links (boolean) - Scrape links (default: true)
  • scrape_images (boolean) - Scrape images (default: false)
  • only_main_content (boolean) - Only main content, exclude nav/footer (default: true)
  • response_format (object) - Pydantic model or JSON Schema for structured extraction
  • instructions (string) - Additional extraction instructions
  • session_id* (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/sessions/{session_id}/page/scrape","body":{}}'

Use Cases

  1. Web Scraping: Extract structured data from any webpage
  2. Browser Automation: Automate complex browser workflows
  3. Testing: Run automated browser tests
  4. AI Agents: Deploy autonomous agents for web tasks
  5. Monitoring: Track website changes and content

Discover More

For full endpoint details and parameters:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"notte API endpoints"}' List all endpoints
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"notte","path":"/sessions"}'   # Get endpoint details
1---
2name: browser-automation-notte
3description: Browser automation - control browser sessions, scrape pages, and run AI agents
4source: orthogonal
5---
6 
7 
8# Notte - Browser Automation API
9 
10## Setup
11 
12Read your credentials from ~/.gooseworks/credentials.json:
13```bash
14export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
15export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
16```
17 
18If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login`
19 
20All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"`
21 
22 
23Control browser sessions, scrape web pages, and run autonomous AI agents.
24 
25## Capabilities
26 
27- **Take Screenshot**: Take a screenshot of the current page
28- **Get Session**: Get session status and details (free)
29- **Stop Session**: Stop and clean up a browser session (free)
30- **Get Session Cookies**: Get all cookies from the browser session (free)
31- **Get Network Logs**: Get network request/response logs from the session (free)
32- **Get Agent Status**: Get agent execution status and results (free)
33- **Observe Page**: Observe the current page state and get available actions
34- **Stop Agent**: Stop a running agent (free)
35- **Scrape Webpage**: Scrape content from a URL without managing sessions
36- **Execute Page Action**: Execute an action on the page (click, type, navigate, etc
37- **Set Session Cookies**: Set cookies in the browser session
38- **Start Session**: Start a new browser session
39- **Scrape from HTML**: Extract structured content from raw HTML without using a browser
40- **Start Agent**: Start an AI agent to autonomously complete a browser task
41- **Scrape Page**: Scrape content from the current page in the session
42 
43## Usage
44 
45### Take Screenshot
46Take a screenshot of the current page.
47 
48Parameters:
49- full_page (boolean) - Capture full page
50- session_id* (string)
51 
52```bash
53curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
54 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
55 -H "Content-Type: application/json" \
56 -d '{"api":"notte","path":"/sessions/{session_id}/page/screenshot","body":{}}'
57```
58 
59### Get Session (free)
60Get session status and details.
61 
62Parameters:
63- session_id* (string)
64 
65```bash
66curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
67 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
68 -H "Content-Type: application/json" \
69 -d '{"api":"notte","path":"/sessions/{session_id}"}'
70```
71 
72### Stop Session (free)
73Stop and clean up a browser session.
74 
75Parameters:
76- session_id* (string) - Session ID
77 
78```bash
79curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
80 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
81 -H "Content-Type: application/json" \
82 -d '{"api":"notte","path":"/sessions/{session_id}/stop"}'
83```
84 
85### Get Session Cookies (free)
86Get all cookies from the browser session.
87 
88Parameters:
89- session_id* (string)
90 
91```bash
92curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
93 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
94 -H "Content-Type: application/json" \
95 -d '{"api":"notte","path":"/sessions/{session_id}/cookies"}'
96```
97 
98### Get Network Logs (free)
99Get network request/response logs from the session.
100 
101Parameters:
102- session_id* (string)
103 
104```bash
105curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
106 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
107 -H "Content-Type: application/json" \
108 -d '{"api":"notte","path":"/sessions/{session_id}/network/logs","query":{"session_id":"example"}}'
109```
110 
111### Get Agent Status (free)
112Get agent execution status and results.
113 
114Parameters:
115- agent_id* (string)
116 
117```bash
118curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
119 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
120 -H "Content-Type: application/json" \
121 -d '{"api":"notte","path":"/agents/{agent_id}"}'
122```
123 
124### Observe Page
125Observe the current page state and get available actions.
126 
127Parameters:
128- max_nb_actions (number) - Maximum actions to return (default: 100)
129- min_nb_actions (number) - Minimum actions to return
130- instruction (string) - Optional instruction to filter actions
131- session_id* (string)
132 
133```bash
134curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
135 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
136 -H "Content-Type: application/json" \
137 -d '{"api":"notte","path":"/sessions/{session_id}/page/observe","body":{"instruction":"Find the search box"}}'
138```
139 
140### Stop Agent (free)
141Stop a running agent.
142 
143Parameters:
144- session_id* (string) - Session ID the agent is running on
145 
146```bash
147curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
148 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
149 -H "Content-Type: application/json" \
150 -d '{"api":"notte","path":"/agents/{agent_id}/stop"}'
151```
152 
153### Scrape Webpage
154Scrape content from a URL without managing sessions.
155 
156Parameters:
157- url* (string) - URL to scrape
158- schema (object) - Structured extraction schema
159 
160```bash
161curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
162 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
163 -H "Content-Type: application/json" \
164 -d '{"api":"notte","path":"/scrape","body":{"url":"https://example.com"}}'
165```
166 
167### Execute Page Action
168Execute an action on the page (click, type, navigate, etc.).
169 
170Parameters:
171- type* (string) - Action type: goto, click, type, scroll, select, hover, wait, screenshot
172- url (string) - URL for goto action
173- ref (string) - Element reference for click/type/select actions
174- text (string) - Text for type action
175- value (string) - Value for select action
176- direction (string) - Scroll direction: up/down
177- amount (number) - Scroll amount in pixels
178- timeout (number) - Wait timeout in ms
179- session_id* (string)
180 
181```bash
182curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
183 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
184 -H "Content-Type: application/json" \
185 -d '{"api":"notte","path":"/sessions/{session_id}/page/execute","body":{"instruction":"Click the search button"}}'
186```
187 
188### Set Session Cookies
189Set cookies in the browser session.
190 
191Parameters:
192- cookies* (array) - Array of cookie objects
193- session_id* (string)
194 
195```bash
196curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
197 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
198 -H "Content-Type: application/json" \
199 -d '{"api":"notte","path":"/sessions/{session_id}/cookies"}'
200```
201 
202### Start Session
203Start a new browser session. Configure browser type, proxies, viewport, and session timeout.
204 
205Parameters:
206- headless (boolean) - Run in headless mode (default: true)
207- browser_type (string) - Browser type: chromium, chrome, firefox
208- proxies (boolean) - Enable proxy rotation
209- solve_captchas (boolean) - Auto-solve CAPTCHAs
210- idle_timeout_minutes (integer) - Idle timeout (default: 3)
211- max_duration_minutes (integer) - Max duration (default: 15)
212- viewport_width (integer)
213- viewport_height (integer)
214- user_agent (string)
215 
216```bash
217curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
218 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
219 -H "Content-Type: application/json" \
220 -d '{"api":"notte","path":"/sessions/start"}'
221 "url": "https://example.com",
222 "timeout_minutes": 5
223}'
224```
225 
226### Scrape from HTML
227Extract structured content from raw HTML without using a browser
228 
229Parameters:
230- frames* (array) - Array of HTML frames to parse
231 
232```bash
233curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
234 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
235 -H "Content-Type: application/json" \
236 -d '{"api":"notte","path":"/scrape_from_html","body":{"html":"<html><body>Hello</body></html>"}}'
237```
238 
239### Start Agent
240Start an AI agent to autonomously complete a browser task.
241 
242Parameters:
243- task* (string) - Task for the AI agent to perform
244- session_id* (string) - Session ID to run the agent on
245- url (string) - Starting URL
246- max_steps (number) - Max steps (1-50, default: 20)
247- use_vision (boolean) - Use vision model (default: true)
248 
249```bash
250curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
251 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
252 -H "Content-Type: application/json" \
253 -d '{"api":"notte","path":"/agents/start"}'
254 "task": "Search for AI news on Google and summarize the top results",
255 "url": "https://google.com"
256}'
257```
258 
259### Scrape Page
260Scrape content from the current page in the session.
261 
262Parameters:
263- selector (string) - Playwright selector to scope the scrape
264- scrape_links (boolean) - Scrape links (default: true)
265- scrape_images (boolean) - Scrape images (default: false)
266- only_main_content (boolean) - Only main content, exclude nav/footer (default: true)
267- response_format (object) - Pydantic model or JSON Schema for structured extraction
268- instructions (string) - Additional extraction instructions
269- session_id* (string)
270 
271```bash
272curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
273 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
274 -H "Content-Type: application/json" \
275 -d '{"api":"notte","path":"/sessions/{session_id}/page/scrape","body":{}}'
276```
277 
278## Use Cases
279 
2801. **Web Scraping**: Extract structured data from any webpage
2812. **Browser Automation**: Automate complex browser workflows
2823. **Testing**: Run automated browser tests
2834. **AI Agents**: Deploy autonomous agents for web tasks
2845. **Monitoring**: Track website changes and content
285 
286## Discover More
287 
288For full endpoint details and parameters:
289 
290```bash
291curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
292 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
293 -H "Content-Type: application/json" \
294 -d '{"prompt":"notte API endpoints"}' List all endpoints
295curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
296 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
297 -H "Content-Type: application/json" \
298 -d '{"api":"notte","path":"/sessions"}' # Get endpoint details
299```
300 

Discussion

Alternatives

Also in Scraping & extraction