Skip to content

Repository files navigation

Divebell

Divebell

Go below the surface.
An extensible toolkit for coding agents to debug, understand, and verify real web applications.


Agent entry point: Divebell Skill

Divebell

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.


Quick Start

Install the Divebell CLI globally once:

npm install --global @divebell/cli
divebell setup

Install 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 timeline

Example output (the observed timings vary between navigations):

Module Federation performance timeline

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.

Why Divebell

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.

Core Capabilities

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

Web Context & Diagnostics

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.

CLI Reference

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

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

Official Extensions

Focused CLI capabilities are published as optional packages and installed only when needed.

CLI Extensions

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-memory

Installed Extension commands appear in divebell --help and run through the same CLI, browser sessions, and login state as the built-in commands.

Runtime SDK

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.

Runtime SDK API

Contribution

Please read the contributing guide and let's build Divebell together.

Credits

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.

License

Divebell is MIT licensed.

About

An extensible web development and debugging tool for coding agents.

Topics

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages