Clone the monorepo, install, build, and test:
git clone https://github.com/browserkit-dev/browserkit
cd browserkit
pnpm install
pnpm build
pnpm testAdapter directories are gitignored in this repo — they live in their own GitHub repositories under browserkit-dev. Clone the adapter you want into the packages/ folder and pnpm will link @browserkit-dev/core to your local workspace automatically — no npm link, no file:, no manual steps.
# Clone the monorepo
git clone https://github.com/browserkit-dev/browserkit
cd browserkit
# Clone the adapter you want to work on into packages/
git clone https://github.com/browserkit-dev/adapter-hackernews packages/adapter-hackernews
# A single pnpm install links everything
pnpm install
# Build core then the adapter
pnpm build
# Run all unit tests (core + adapter)
pnpm test
# Run E2E smoke tests
pnpm test:e2eAny change you make to packages/core/src/ is visible in the adapter immediately after pnpm --filter @browserkit-dev/core build.
| Adapter | Repo |
|---|---|
| HackerNews | browserkit-dev/adapter-hackernews |
| browserkit-dev/adapter-linkedin | |
| Google Discover | browserkit-dev/adapter-google-discover |
| browserkit-dev/adapter-reddit | |
| Booking.com | browserkit-dev/adapter-booking |
This repo uses Changesets for versioning and publishing.
On every PR that changes core:
pnpm changeset
# Follow the prompt: choose "patch" / "minor" / "major", write a summary
git add .changeset/
git commit -m "chore: add changeset"When the PR is merged to main, the Release GitHub Action automatically:
- Opens (or updates) a "Release PR" that bumps the version and updates
CHANGELOG.md - When that Release PR is merged, publishes
@browserkit-dev/coreto npm
An NPM_TOKEN secret must be set in the repository settings for publishing to work.
See any existing adapter as a reference — HackerNews is the simplest: browserkit-dev/adapter-hackernews
Scaffold a new adapter with:
npx @browserkit-dev/core create-adapter my-siteVersioning rules are documented in full in AGENTS.md — Versioning. The short version:
| Change | Bump |
|---|---|
| Bug fix, doc/log change, no API change | patch |
| New feature, new optional API field | minor |
| Removed/renamed export, required new field | major |
Every PR that changes behavior needs a changeset before merging:
# Core monorepo
pnpm changeset
# Adapter repos
npx changesetFollow the prompts: choose patch / minor / major, write a one-line user-facing summary, and commit the generated .changeset/*.md file in the same PR. The Release GitHub Action bumps the version and publishes to npm automatically when the changeset PR merges to main.