{"id":30368455,"url":"https://github.com/browser-use/browser-use-node","last_synced_at":"2026-01-30T05:17:12.339Z","repository":{"id":310708621,"uuid":"1035135769","full_name":"browser-use/browser-use-node","owner":"browser-use","description":"Browser Use Node SDK","archived":false,"fork":false,"pushed_at":"2026-01-15T02:24:35.000Z","size":810,"stargazers_count":23,"open_issues_count":9,"forks_count":10,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-01-15T08:37:05.357Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/browser-use.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-09T18:19:30.000Z","updated_at":"2026-01-15T02:24:38.000Z","dependencies_parsed_at":"2025-08-19T20:25:18.620Z","dependency_job_id":"5c3907db-fb3e-4036-856e-404c91cab196","html_url":"https://github.com/browser-use/browser-use-node","commit_stats":null,"previous_names":["browser-use/browser-use-node"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/browser-use/browser-use-node","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browser-use%2Fbrowser-use-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browser-use%2Fbrowser-use-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browser-use%2Fbrowser-use-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browser-use%2Fbrowser-use-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/browser-use","download_url":"https://codeload.github.com/browser-use/browser-use-node/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/browser-use%2Fbrowser-use-node/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-20T01:23:18.993Z","updated_at":"2026-01-16T14:36:06.053Z","avatar_url":"https://github.com/browser-use.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://raw.githubusercontent.com/browser-use/browser-use-node/refs/heads/main/assets/cloud-banner-js.png\" alt=\"Browser Use JS\" width=\"full\"/\u003e\n\n# BrowserUse TypeScript Library\n\n[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github\u0026utm_medium=github\u0026utm_campaign=readme\u0026utm_source=https%3A%2F%2Fgithub.com%2Fbrowser-use%2Fbrowser-use-node)\n[![npm shield](https://img.shields.io/npm/v/browser-use-sdk)](https://www.npmjs.com/package/browser-use-sdk)\n\nThe BrowserUse TypeScript library provides convenient access to the BrowserUse APIs from TypeScript.\n\n## Three-Step QuickStart\n\n1.  📦 Install BrowserUse SDK.\n\n    ```sh\n    # NPM\n    npm i -s browser-use-sdk\n\n    # Yarn\n    yarn add browser-use-sdk\n\n    # PNPM\n    pnpm add browser-use-sdk\n    ```\n\n1.  🔑 Get your API Key at [Browser Use Cloud](https://cloud.browser-use.com)!\n\n1.  🦄 Automate the Internet!\n\n    ```ts\n    import { BrowserUseClient } from \"browser-use-sdk\";\n\n    const client = new BrowserUseClient({\n        apiKey: \"bu_...\",\n    });\n\n    const task = await client.tasks.createTask({\n        task: \"Search for the top 10 Hacker News posts and return the title and url.\",\n    });\n\n    const result = await task.complete();\n\n    console.log(result.output);\n    ```\n\n\u003e The full API of this library can be found in [api.md](api.md).\n\n---\n\n### Structured Output with Zod\n\n```ts\nimport z from \"zod\";\n\nconst TaskOutput = z.object({\n    posts: z.array(\n        z.object({\n            title: z.string(),\n            url: z.string(),\n        }),\n    ),\n});\n\nconst task = await client.tasks.createTask({\n    task: \"Search for the top 10 Hacker News posts and return the title and url.\",\n    schema: TaskOutput,\n});\n\nconst result = await task.complete();\n\nfor (const post of result.parsed.posts) {\n    console.log(`${post.title} - ${post.url}`);\n}\n```\n\n### Streaming Agent Updates\n\n\u003e You can use the `stream` method to get the latest step taken on every change.\n\n```ts\nconst task = await browseruse.tasks.createTask({\n    task: \"Search for the top 10 Hacker News posts and return the title and url.\",\n    schema: TaskOutput,\n});\n\nfor await (const step of task.stream()) {\n    console.log(step);\n}\n\nconst result = await task.complete();\n\nfor (const post of result.parsed.posts) {\n    console.log(`${post.title} - ${post.url}`);\n}\n```\n\n### Watching Agent Updates\n\n\u003e You can use the `watch` method to get the latest update on every change.\n\n```ts\nconst task = await browseruse.tasks.createTask({\n    task: \"Search for the top 10 Hacker News posts and return the title and url.\",\n    schema: TaskOutput,\n});\n\nfor await (const update of task.watch()) {\n    console.log(update);\n\n    if (update.data.status === \"finished\") {\n        for (const post of update.data.parsed.posts) {\n            console.log(`${post.title} - ${post.url}`);\n        }\n    }\n}\n```\n\n## Webhook Verification\n\n\u003e We encourage you to use the SDK functions that verify and parse webhook events.\n\n```ts\nimport { verifyWebhookEventSignature, type WebhookAgentTaskStatusUpdatePayload } from \"browser-use-sdk\";\n\nexport async function POST(req: Request) {\n    const signature = req.headers[\"x-browser-use-signature\"] as string;\n    const timestamp = req.headers[\"x-browser-use-timestamp\"] as string;\n\n    const event = await verifyWebhookEventSignature(\n        {\n            body,\n            signature,\n            timestamp,\n        },\n        {\n            secret: SECRET_KEY,\n        },\n    );\n\n    if (!event.ok) {\n        return;\n    }\n\n    switch (event.event.type) {\n        case \"agent.task.status_update\":\n            break;\n        case \"test\":\n            break;\n        default:\n            break;\n    }\n}\n```\n\n## Contributing\n\nWhile we value open-source contributions to this SDK, this library is generated programmatically.\nAdditions made directly to this library would have to be moved over to our generation code,\notherwise they would be overwritten upon the next generated release. Feel free to open a PR as\na proof of concept, but know that we will not be able to merge it as-is. We suggest opening\nan issue first to discuss with us!\n\nOn the other hand, contributions to the README are always very welcome!\n\n## Installation\n\n```sh\nnpm i -s browser-use-sdk\n```\n\n## Reference\n\nA full reference for this library is available [here](https://github.com/browser-use/browser-use-node/blob/HEAD/./reference.md).\n\n### Runtime Compatibility\n\nThe SDK works in the following runtimes:\n\n- Node.js 18+\n- Vercel\n- Cloudflare Workers\n- Deno v1.25+\n- Bun 1.0+\n- React Native\n\n### Customizing Fetch Client\n\nThe SDK provides a way for you to customize the underlying HTTP client / Fetch function. If you're running in an\nunsupported environment, this provides a way for you to break glass and ensure the SDK works.\n\n```typescript\nimport { BrowserUseClient } from \"browser-use-sdk\";\n\nconst client = new BrowserUseClient({\n    ...\n    fetcher: // provide your implementation here\n});\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrowser-use%2Fbrowser-use-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrowser-use%2Fbrowser-use-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrowser-use%2Fbrowser-use-node/lists"}