Playground for browser scraping extensions and scraped data tooling.
The repository also tracks built package artifact size with
gh-build-size.
This workspace centers on a single local scraping server.
Install dependencies:
bun install
Start the local scraping server:
cd packages/scraping-server
bun run build
bun run start -- --store-file .tmp/scraping-server/deterministic.sqlite
Build an extension and load its dist directory as an unpacked Chrome extension:
cd packages/scraping-extension-devtools
bun run build
For package-specific setup, API details, metric semantics, and MCP usage, follow the package README links above.
bun run build
bun run typecheck
bun run test
bun run playwright:test
This repository uses lefthook to run the same checks as CI locally before commits and pushes. This brings feedback earlier without changing what CI runs.
Install the hooks once after cloning:
bunx lefthook install
pre-commit — runs on every git commit:
| Check | Command |
|---|---|
| Lint | bun run lint |
| Typecheck | bun run typecheck |
pre-push — runs on every git push:
| Check | Command |
|---|---|
| Lint | bun run lint |
| Typecheck | bun run typecheck |
| Unit tests | bun run test |
Playwright / end-to-end tests are intentionally excluded from hooks and from CI because they require a browser environment. Run them locally with bun run playwright:test before merging changes that touch extension build output or runtime behaviour.
Checked-in packages/*/package.json versions are the release source of truth.
Before creating a GitHub release, bump the package versions in the same pull
request that prepares the release. The release workflow verifies that every
workspace package shares the same committed version and, for release events,
that the version matches the release tag. It does not rewrite package manifests
during CI.
MIT