Go below the surface.
An extensible toolkit for coding agents to debug, understand, and verify real web applications.
Agent entry point: Divebell Skill
Divebell is an extensible toolkit for coding agents to debug, understand, and verify real web applications.
Divebell makes the web page the coding agent's point of entry. It connects page context, browser capabilities, and the team's existing development and debugging tools so the agent can reproduce, diagnose, and verify issues directly in real web scenarios.
Starting from the current page, an agent can call existing SDKs, OpenAPIs, CLIs, and diagnostic capabilities without requiring a person to extract page information and connect the tools first.
The coding agent reads and modifies code. Divebell prepares reusable browser context and exposes page operations, browser diagnostics, and result verification as directly callable capabilities. Teams can use Extensions to connect their own accounts, environments, internal platforms, focused diagnostics, and verification workflows.
Install the Divebell CLI globally once:
npm install --global @divebell/cli
divebell setupInstall the Module Federation Extension, open the public playground with MF diagnostics enabled, and render its observed module loading directly in the terminal:
divebell extensions add @divebell/extension-mf
divebell open https://module-federation.io/playground/index.html --mf
divebell mf module-perf --report --view timelineExample output (the observed timings vary between navigations):
divebell setup checks the environment and repairs browser startup only when
needed. Its browser probe runs in a temporary session and cleans that session up
when setup finishes.
In a coding-agent sandbox, Divebell automatically moves its own files and the
bundled browser's files to private temporary directories when the normal user
directories are read-only. Set DIVEBELL_HOME and AGENT_BROWSER_HOME only
when those files need specific durable writable locations.
Install the Divebell Skill in your agent.
Coding agents can already read and modify code, and they can call many development tools. But real web development issues usually happen in the page itself: users see a page, while diagnosing the problem requires its state, runtime environment, business context, and the team's existing diagnostic capabilities.
That information and those capabilities are usually scattered across:
- User actions and runtime state on the page
- Browser diagnostics such as Console and Network
- Existing SDKs, OpenAPIs, CLIs, and internal platforms
An agent often still needs a person to explain what the current page represents and which capability to call next.
Divebell makes the web page the agent's point of entry, connecting page context, browser diagnostics, and the team's existing tools so the agent can reproduce, diagnose, and verify issues directly in the real scenario.
Teams can use Extensions to bring existing capabilities into the current page scenario without rebuilding a separate tool system for agents. Once a workflow works, other agents and CI can keep using it as a durable team asset.
| Module | Responsibility | Entry point | Page integration required |
|---|---|---|---|
| Web Context & Diagnostics | Make a real web page the agent's point of entry and provide page context, browser diagnostics, and same-scenario verification | Divebell CLI | No |
| Extensions | Connect the web page with the team's existing development and debugging capabilities | CLI commands, Extension API | No |
| Runtime SDK | Expose application-internal facts that cannot be observed from the page without polluting the runtime environment | @divebell/core, framework plugins |
Yes |
Divebell makes a real web page the agent's point of entry, providing page context, page operations, browser diagnostics, and same-scenario verification after a code change.
These capabilities include the current page and user journey, page operations such as click, fill, and eval, and diagnostic evidence from Console, Network, Screenshot, and Coverage. Agents can call them directly through the Divebell CLI without Runtime SDK.
For protected pages, Divebell uses a read-only copy of the current OS user's most recently used Chrome Profile by default. An explicitly supplied Profile, browser state, restore context, restricted-domain mode, or external browser takes precedence. Divebell always works within the selected account's existing permissions.
When no local Chrome Profile is available, Divebell falls back to project-scoped automatic Restore State. Restore State contains cookies, localStorage, and sessionStorage rather than a complete Chrome Profile. Divebell saves it once after a newly opened page is quiet for about two seconds and again before close, while periodic saving is disabled by default. Pass --no-default-profile for one open, or set DIVEBELL_DEFAULT_CHROME_PROFILE=off persistently, to use Restore State instead of automatic Profile selection.
For a fresh authorized login that needs full browser-owned storage, open --ui --temp-profile starts an empty isolated Profile without default Profile or Restore State input. After login, profile export [path] closes it cleanly and returns a reusable local Profile directory; stop discards it when it is not exported.
Browser Authentication and State
When a script must manage the complete browser flow, see Automating with Divebell CLI.
Extensions are the mechanism for connecting a web page with the team's existing development capabilities.
An Extension can identify applications, environments, and resources from the current page, call existing SDKs, OpenAPIs, CLIs, or internal platforms, and expose diagnostic and verification workflows that previously required a person to connect them.
Using Extensions · CLI Extension Development · Extension API Reference
Focused CLI capabilities are published as optional packages and installed only when needed.
These packages are installed into Divebell and add top-level commands:
| Package | Entry | Purpose | Guide |
|---|---|---|---|
@divebell/extension-memory |
divebell memory |
Repeat a real page journey and check memory, DOM-node, and listener growth. | Memory Analysis |
@divebell/extension-code-usage |
divebell code-usage |
Map recorded code execution back to chunks, source files, and dependencies. | Code-Usage Analysis |
@divebell/extension-imitate |
divebell record |
Record, review, supplement, and verify an authenticated browser workflow before generating its JavaScript replay. | Record Browser Workflows |
@divebell/extension-mf |
divebell mf |
Inspect Module Federation instances, remotes, shared dependencies, module performance, Bridge operations, and loading traces. | MF Extension |
@divebell/extension-rstack |
divebell rstack |
Detect and observe Rspack HMR, page reloads, and optional React Refresh through compiled-JavaScript evidence; MF ownership evidence is optional. | Rstack HMR Extension |
Install a CLI Extension with:
divebell extensions add @divebell/extension-memoryInstalled Extension commands appear in divebell --help and run through the same CLI, browser sessions, and login state as the built-in commands.
Runtime SDK is an optional page-side API. When the DOM, Console, Network, and other browser information cannot represent application state reliably, Runtime SDK can expose more granular application-internal facts to the agent.
It supports registering Targets, updating Snapshots, recording Events, declaring Actions, and running waitFor. Divebell works without Runtime SDK, and regular pages do not need to integrate it.
Please read the contributing guide and let's build Divebell together.
Divebell uses agent-browser as its default browser execution layer. Thanks to the agent-browser authors and contributors.
Extensions execute local code. Install and load only trusted content. Login-state files contain sensitive data and should remain in trusted environments.
Divebell is MIT licensed.

