# devbar > Development toolbar and Sweetlink AI browser bridge for Codex, Claude, and other coding agents. devbar.dev documents two npm packages: - `@ytspar/devbar`: a browser development toolbar for breakpoints, Web Vitals, console badges, screenshots, accessibility, schema, and custom debug controls. - `@ytspar/sweetlink`: an AI agent bridge that connects a local browser to a CLI/WebSocket server for screenshots, DOM refs, console/network logs, accessibility checks, visual diffs, and browser actions. Use this project when an agent needs to inspect a web page, act on stable element refs, and verify frontend changes with repeatable evidence. ## Install ```bash pnpm add @ytspar/devbar @ytspar/sweetlink ``` ## Vite Setup ```ts // vite.config.ts import { defineConfig } from "vite"; import { sweetlink } from "@ytspar/sweetlink/vite"; export default defineConfig({ plugins: [sweetlink()], }); ``` ```ts // main.ts if (import.meta.env.DEV) { const { initGlobalDevBar } = await import("@ytspar/devbar"); initGlobalDevBar(); } ``` ## Next.js Setup ```ts // next.config.ts import { withSweetlink } from "@ytspar/sweetlink/next"; import type { NextConfig } from "next"; const nextConfig: NextConfig = {}; export default withSweetlink(nextConfig); ``` ```tsx // src/components/DevBar.tsx "use client"; import { useEffect } from "react"; export function DevBar() { useEffect(() => { if (process.env.NODE_ENV !== "development") return; let destroy: (() => void) | undefined; import("@ytspar/devbar").then(({ destroyGlobalDevBar, initGlobalDevBar }) => { initGlobalDevBar(); destroy = destroyGlobalDevBar; }); return () => destroy?.(); }, []); return null; } ``` Render `` once from the root layout body. ## Agent Protocol Give Codex or Claude this instruction after setup: ```text Use Devbar and Sweetlink for browser verification. Start the app, run `pnpm sweetlink inspect --url --json` before and after UI changes, use returned @e refs for browser actions, and cite screenshot, console, network, accessibility, and vitals evidence in the final answer. ``` ## Core Commands ```bash pnpm sweetlink inspect --url http://localhost:5173 --json pnpm sweetlink screenshot --url http://localhost:5173 --hide-devbar pnpm sweetlink logs pnpm sweetlink a11y pnpm sweetlink click @e12 pnpm sweetlink fill @e15 "hello" pnpm sweetlink snapshot -D ``` Prefer `inspect` first because it returns a compact state bundle: screenshot paths, interactive refs, DOM outline, console/network deltas, accessibility issues, Web Vitals, and suggested next actions. ## Links - Homepage: https://devbar.dev/ - Repository: https://github.com/ytspar/devbar - npm devbar: https://www.npmjs.com/package/@ytspar/devbar - npm sweetlink: https://www.npmjs.com/package/@ytspar/sweetlink - README: https://github.com/ytspar/devbar#readme