Skip to content

Commit 3f98fc6

Browse files
authored
[STG-2001] feat: migrate OpenClaw Browserbase package (#72)
* feat: migrate openclaw browserbase package * fix: use trusted publishing compatible node * chore: label release node version
1 parent 029c84f commit 3f98fc6

16 files changed

Lines changed: 1305 additions & 3 deletions

File tree

.changeset/config.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/config@2.1.1/schema.json",
3+
"commit": false,
4+
"fixed": [],
5+
"linked": [],
6+
"baseBranch": "main",
7+
"updateInternalDependencies": "patch",
8+
"access": "public",
9+
"changelog": [
10+
"@changesets/changelog-github",
11+
{
12+
"repo": "browserbase/integrations"
13+
}
14+
]
15+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@browserbasehq/openclaw-browserbase": patch
3+
---
4+
5+
Migrate the OpenClaw Browserbase package into the integrations monorepo.

.github/workflows/release.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
id-token: write
12+
13+
concurrency: ${{ github.workflow }}-${{ github.ref }}
14+
15+
jobs:
16+
release:
17+
name: Release
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Checkout Repo
21+
uses: actions/checkout@v4
22+
with:
23+
fetch-depth: 0
24+
25+
- name: Setup pnpm
26+
uses: pnpm/action-setup@v4
27+
28+
- name: Setup Node.js 24.x
29+
uses: actions/setup-node@v6
30+
with:
31+
node-version: 24.x
32+
registry-url: "https://registry.npmjs.org"
33+
34+
- name: Update npm for Trusted Publishing
35+
run: npm install -g npm@latest
36+
37+
- name: Install dependencies
38+
run: pnpm install --no-frozen-lockfile
39+
40+
- name: Build packages
41+
run: pnpm run build:packages
42+
43+
- name: Create Release Pull Request or Publish to npm
44+
id: changesets
45+
uses: changesets/action@v1
46+
with:
47+
publish: pnpm run release
48+
env:
49+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
50+
NPM_CONFIG_PROVENANCE: true

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ integrations/
3737
│ ├── temporal/ # Temporal workflow orchestration
3838
│ ├── trigger/ # Trigger.dev background jobs & automation
3939
│ └── vercel/ # Vercel integrations
40+
├── packages/ # Published npm packages
4041
└── README.md
4142
```
4243

@@ -86,4 +87,4 @@ This project is licensed under the MIT License. See individual integration direc
8687

8788
---
8889

89-
**Built with ❤️ by the Browserbase team**
90+
**Built with ❤️ by the Browserbase team**

package.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@
99
"node": ">=18.0.0"
1010
},
1111
"scripts": {
12+
"build:packages": "pnpm -r --filter './packages/*' run build",
13+
"changeset": "changeset",
1214
"lint": "eslint .",
1315
"lint:fix": "eslint . --fix",
1416
"format": "prettier --write .",
15-
"format:check": "prettier --check ."
17+
"format:check": "prettier --check .",
18+
"version-packages": "changeset version",
19+
"release": "pnpm run build:packages && changeset publish"
1620
},
1721
"keywords": [
1822
"browserbase",
@@ -25,6 +29,8 @@
2529
"author": "Browserbase Team",
2630
"license": "MIT",
2731
"devDependencies": {
32+
"@changesets/changelog-github": "^0.5.0",
33+
"@changesets/cli": "^2.27.9",
2834
"@eslint/js": "^9.14.0",
2935
"@types/node": "^25.0.9",
3036
"eslint": "^10.1.0",
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Browserbase
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# @browserbasehq/openclaw-browserbase
2+
3+
Browserbase plugin for OpenClaw (with legacy ClawdBot compatibility).
4+
5+
It provides:
6+
7+
- interactive Browserbase credential setup,
8+
- config status/env helpers,
9+
- dynamic skill sync from `github:browserbase/skills`.
10+
11+
## Install
12+
13+
```bash
14+
openclaw plugins install @browserbasehq/openclaw-browserbase
15+
```
16+
17+
For local development:
18+
19+
```bash
20+
openclaw plugins install -l .
21+
```
22+
23+
## Setup
24+
25+
```bash
26+
openclaw browserbase setup
27+
```
28+
29+
By default setup will also sync Browserbase skills from `browserbase/skills` into
30+
`~/.openclaw/skills`.
31+
32+
You can manage skill sync directly:
33+
34+
```bash
35+
openclaw browserbase skills status
36+
openclaw browserbase skills sync
37+
openclaw browserbase skills sync --ref main
38+
openclaw browserbase skills sync --dir ~/.openclaw/skills
39+
```
40+
41+
## Commands
42+
43+
```bash
44+
openclaw browserbase setup # prompt for API key + project ID
45+
openclaw browserbase status # show configuration status
46+
openclaw browserbase status --json # machine-readable status
47+
openclaw browserbase env --format shell # export commands
48+
openclaw browserbase env --format dotenv # dotenv output
49+
openclaw browserbase env --format json # JSON output
50+
openclaw browserbase where # config file path used
51+
openclaw browserbase skills status # check dynamic skills sync status
52+
openclaw browserbase skills sync # download/update skills from browserbase/skills
53+
```
54+
55+
Legacy CLI alias support remains:
56+
57+
```bash
58+
clawdbot browserbase setup
59+
```
60+
61+
## Dynamic skills behavior
62+
63+
OpenClaw installs plugins with lifecycle scripts disabled, so plugin install hooks are not a reliable place to fetch remote skill files.
64+
65+
This plugin instead syncs skills during setup and (optionally) on startup when missing:
66+
67+
- `browser-automation`
68+
- `functions`
69+
70+
Source of truth: [https://github.com/browserbase/skills](https://github.com/browserbase/skills)
71+
72+
## Development
73+
74+
```bash
75+
pnpm install
76+
pnpm run check-types
77+
pnpm test
78+
```
79+
80+
## References
81+
82+
- OpenClaw Skills: https://docs.openclaw.ai/tools/skills
83+
- OpenClaw Skills Config: https://docs.openclaw.ai/tools/skills-config
84+
- OpenClaw Plugin System: https://docs.openclaw.ai/tools/plugin
85+
- OpenClaw Plugin Manifest: https://docs.openclaw.ai/plugins/manifest
86+
- Browserbase skills reference: https://github.com/browserbase/skills
87+
- Example plugin reference: https://github.com/pepicrft/clawd-plugin-ralph
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{
2+
"id": "browserbase",
3+
"name": "Browserbase",
4+
"description": "Browse the web with anti-bot stealth, automatic CAPTCHA solving, and residential proxies. Automates browser interactions via natural language with full JavaScript rendering.",
5+
"version": "0.1.0",
6+
"kind": "tool",
7+
"uiHints": {
8+
"apiKey": {
9+
"label": "Browserbase API Key",
10+
"sensitive": true,
11+
"placeholder": "bb_...",
12+
"help": "Get your key from browserbase.com/settings or use ${BROWSERBASE_API_KEY}."
13+
},
14+
"projectId": {
15+
"label": "Browserbase Project ID",
16+
"placeholder": "proj_...",
17+
"help": "Get your project ID from browserbase.com/settings or use ${BROWSERBASE_PROJECT_ID}."
18+
},
19+
"baseUrl": {
20+
"label": "Browserbase API Base URL",
21+
"placeholder": "https://api.browserbase.com",
22+
"advanced": true
23+
},
24+
"promptOnStart": {
25+
"label": "Prompt On Startup",
26+
"help": "Prompt interactively for credentials if missing (TTY only).",
27+
"advanced": true
28+
},
29+
"autoSyncSkills": {
30+
"label": "Auto Sync Skills",
31+
"help": "Automatically sync browser-automation/functions skills from github:browserbase/skills when missing.",
32+
"advanced": true
33+
}
34+
},
35+
"configSchema": {
36+
"type": "object",
37+
"additionalProperties": false,
38+
"properties": {
39+
"apiKey": { "type": "string" },
40+
"projectId": { "type": "string" },
41+
"baseUrl": { "type": "string" },
42+
"promptOnStart": { "type": "boolean" },
43+
"autoSyncSkills": { "type": "boolean" }
44+
},
45+
"required": []
46+
}
47+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{
2+
"name": "@browserbasehq/openclaw-browserbase",
3+
"version": "0.1.0",
4+
"description": "OpenClaw plugin for cloud browser automation with anti-bot stealth, CAPTCHA solving, and residential proxies via Browserbase",
5+
"packageManager": "pnpm@10.21.0",
6+
"type": "module",
7+
"main": "dist/index.js",
8+
"scripts": {
9+
"build": "tsc",
10+
"check-types": "tsc --noEmit"
11+
},
12+
"publishConfig": {
13+
"access": "public"
14+
},
15+
"files": [
16+
"dist",
17+
"src",
18+
"types",
19+
"openclaw.plugin.json"
20+
],
21+
"keywords": [
22+
"openclaw",
23+
"plugin",
24+
"browserbase",
25+
"browser",
26+
"automation",
27+
"web-scraping",
28+
"captcha",
29+
"anti-bot",
30+
"stealth",
31+
"proxy",
32+
"headless-browser",
33+
"ai-agent"
34+
],
35+
"author": "Browserbase",
36+
"license": "MIT",
37+
"repository": {
38+
"type": "git",
39+
"url": "https://github.com/browserbase/integrations.git",
40+
"directory": "packages/openclaw-browserbase"
41+
},
42+
"peerDependencies": {
43+
"openclaw": ">=2026.1.29"
44+
},
45+
"openclaw": {
46+
"extensions": [
47+
"./src/index.ts"
48+
]
49+
},
50+
"devDependencies": {
51+
"@types/node": "^24.3.1",
52+
"typescript": "^5.9.3"
53+
},
54+
"dependencies": {
55+
"tar": "^7.5.9"
56+
}
57+
}

0 commit comments

Comments
 (0)