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

@divebell/extension-imitate

v0.0.13

Published

This Divebell Extension records a real browser walkthrough and turns the captured interactions, operated elements, page context, and Runtime state into an executable JavaScript replay. It also tries to capture spoken intent, but voice is always supplement

Downloads

1,982

Readme

@divebell/extension-imitate

This Divebell Extension records a real browser walkthrough and turns the captured interactions, operated elements, page context, and Runtime state into an executable JavaScript replay. It also tries to capture spoken intent, but voice is always supplementary and missing or denied audio is ignored.

Install

divebell extensions add @divebell/extension-imitate
divebell record --skill

The second command prints the path to the Agent skill shipped inside the Extension package without starting a recording.

Record a manual walkthrough

Prepare the recording first so browser interaction and optional voice capture are active from page startup. The output defaults to ./recordings:

divebell record start

The command tries to start microphone capture automatically. If the user does not speak, the browser cannot capture audio, or microphone permission is denied, recording continues with browser actions only.

Then open the page through Divebell. The CLI starts and injects the Bridge while the recording Extension injects its page capture script into the same browser launch:

divebell open https://example.com/ --ui

The guided workflow can use about:blank when no URL is provided, and the output path is optional. In that flow, Divebell opens a clearly named workflow tab with a URL form and a separate audio-only tab. Paste the target URL and perform all actions in the workflow tab; keep the audio tab open in the background without navigating it. When the walkthrough is finished, stop the recording with the output path returned by start:

divebell record stop --out ./recordings/divebell-<timestamp>.orrec

Stopping captures final state and writes both workflow.json and generated-script.mjs by default. workflow.json keeps the ordered actions and multiple recorded ways to find each operated element so an Agent can inspect or rearrange the workflow. The generated script waits for each recorded element, replays the action with native browser commands, and verifies the final page state. It leaves the current page open; close it through the normal page lifecycle when the workflow is complete:

divebell stop

Recording preparation refuses to replace an already open page. Close the current page first, prepare the recording, and then open the page to record. Stopping refuses to mix evidence if another divebell open replaced the recorded page.

Regenerate or transcribe

Regenerate a script from an existing recording:

divebell record generate-script \
  --input ./recordings/example.orrec \
  --out ./scripts/example.mjs

When microphone audio exists, create timestamped text with:

OPENAI_API_KEY=... divebell record transcribe \
  --input ./recordings/example.orrec

The default transcription model is whisper-1; use --model to select another compatible model. Run transcription only when the user says they provided spoken context but the browser did not produce live speech text. Otherwise an empty transcript is ignored.

Audio is supplementary. Only a non-empty transcript is used as Agent context. A recording without usable audio still produces a complete browser replay when the intended result is the demonstrated sequence itself.

Fixed-duration capture

For an unattended time-bounded recording:

divebell open https://example.com/ --ui
divebell record \
  --out ./recordings/example.orrec \
  --duration 30000
divebell stop

For an Agent-guided installation and workflow, see the recording guide.

Replay verification

Run the real-browser recording and replay check with:

pnpm --filter @divebell/extension-imitate test:replay-e2e

The check records input, dropdown selection, and a click on a local page, generates the JavaScript file, replays it in a new browser session, and verifies the resulting page.