npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

browser-use-convex-component

v0.1.1

Published

A Convex component for Browser Use Cloud - automate browser tasks with AI agents

Readme

Browser Use Convex Component

A Convex component that wraps the Browser Use Cloud API, enabling AI-powered browser automation with persistent task tracking, session management, and reactive queries.

Features

  • Task Management - Create, monitor, and stop browser automation tasks
  • Session Management - Create persistent browser sessions with proxy support
  • Profile Management - Manage browser profiles for authentication persistence
  • Reactive Queries - All task and session data stored in Convex for real-time subscriptions

Installation

npm install browser-use-convex-component

Setup

1. Configure your app

In your convex/convex.config.ts:

import { defineApp } from "convex/server";
import browserUse from "browser-use-convex-component/convex.config.js";

const app = defineApp();
app.use(browserUse);

export default app;

2. Set your API key

Set the BROWSER_USE_API_KEY environment variable in your Convex deployment:

npx convex env set BROWSER_USE_API_KEY bu_your_api_key_here

Usage

Initialize the client

import { BrowserUse } from "browser-use-convex-component";
import { components } from "./_generated/api.js";

const browserUse = new BrowserUse(components.browserUse);

Create a task

export const startTask = action({
  args: { task: v.string() },
  returns: v.any(),
  handler: async (ctx, args) => {
    const { taskId, externalId } = await browserUse.createTask(ctx, {
      task: args.task,
      startUrl: "https://example.com",
    });
    return { taskId, externalId };
  },
});

Query tasks reactively

export const listTasks = query({
  args: {},
  returns: v.any(),
  handler: async (ctx) => {
    return await browserUse.listTasks(ctx);
  },
});

Check task status

export const checkTask = action({
  args: { externalId: v.string() },
  returns: v.any(),
  handler: async (ctx, args) => {
    return await browserUse.fetchTaskStatus(ctx, args);
  },
});

Session management

export const createSession = action({
  args: {},
  returns: v.any(),
  handler: async (ctx) => {
    return await browserUse.createSession(ctx, {
      proxyCountryCode: "us",
    });
  },
});

Profile management

export const listProfiles = action({
  args: {},
  returns: v.any(),
  handler: async (ctx) => {
    return await browserUse.listProfiles(ctx);
  },
});

API Reference

Tasks

| Method | Type | Description | |--------|------|-------------| | createTask(ctx, args) | Action | Create a browser automation task | | getTask(ctx, { taskId }) | Query | Get task from local DB | | listTasks(ctx, opts?) | Query | List tasks with optional filters | | getTaskSteps(ctx, { taskId }) | Query | Get step-by-step execution details | | fetchTaskStatus(ctx, { externalId }) | Action | Fetch latest status from API | | fetchTaskDetail(ctx, { externalId }) | Action | Fetch full details and steps from API | | stopTask(ctx, { externalId }) | Action | Stop a running task |

Sessions

| Method | Type | Description | |--------|------|-------------| | createSession(ctx, args?) | Action | Create a browser session | | getSession(ctx, { sessionId }) | Query | Get session from local DB | | listSessions(ctx, opts?) | Query | List sessions with optional filters | | fetchSessionDetail(ctx, { externalId }) | Action | Fetch session details from API | | stopSession(ctx, { externalId }) | Action | Stop a session |

Profiles

| Method | Type | Description | |--------|------|-------------| | createProfile(ctx, args?) | Action | Create a browser profile | | listProfiles(ctx) | Action | List all profiles | | getProfile(ctx, { profileId }) | Action | Get profile details | | updateProfile(ctx, { profileId, name }) | Action | Update profile name | | deleteProfile(ctx, { profileId }) | Action | Delete a profile |

Task Options

| Option | Type | Description | |--------|------|-------------| | task | string | The instruction for the AI agent (required) | | llm | string | AI model (default: browser-use-2.0) | | sessionId | string | Existing session to use | | startUrl | string | Initial URL to navigate to | | maxSteps | number | Max execution steps (default: 100) | | flashMode | boolean | Accelerated execution mode | | thinking | boolean | Extended reasoning | | vision | boolean \| "auto" | Visual recognition | | highlightElements | boolean | Highlight interactive elements | | systemPromptExtension | string | Append to the system prompt | | structuredOutput | object | JSON schema for response formatting | | secrets | object | Secure key-value data injection | | allowedDomains | string[] | Navigation restrictions | | metadata | object | Custom tracking pairs | | judge | boolean | AI-powered success validation | | judgeGroundTruth | string | Ground truth for judge evaluation | | judgeLlm | string | Model for judge evaluation | | skillIds | string[] | Pre-built skill IDs to use |

License

MIT