--- name: "d3k" description: "Bootstrap d3k in standalone AI apps (Codex, Cursor, Claude Code): detect/install dev3000, start d3k as the runtime, and use unified logs plus CDP browser control instead of running npm/bun dev directly." --- # d3k Standalone Bootstrap Use this skill when working in a standalone AI app and you need reliable local web debugging with browser + server context. ## Why d3k-first - `d3k` captures server logs, browser console, network events, and screenshots in one timeline. - `d3k` exposes a stable CDP endpoint so the agent can control the same browser session being monitored. - Running `npm run dev` or `bun run dev` directly omits this unified telemetry and usually leads to weaker diagnoses. ## Bootstrap Workflow 1. Confirm whether `d3k` is installed: ```bash command -v d3k >/dev/null && d3k --version ``` 2. If `d3k` is missing, install dev3000 globally (prefer Bun): ```bash bun install -g dev3000 ``` Fallback if Bun is unavailable: ```bash npm install -g dev3000 ``` 3. Start d3k as the runtime (preferred default in agent shells): ```bash d3k --no-agent --no-tui -t ``` 4. Keep d3k running while editing code. Do not start a second dev server with `npm/bun dev`. ## Codex Fresh Browser/Profile Startup Use this workflow when the user asks Codex to start d3k with a fresh browser/profile. 1. Close any stale `agent-browser` daemon before launching with `--profile`. Otherwise `agent-browser` will reuse the existing daemon and print `--profile ignored`. ```bash d3k agent-browser close --all ``` 2. Start the app through d3k in `servers-only` mode and keep that command running. In Codex, this is more reliable than asking d3k to launch the browser itself when a fresh profile is required. ```bash d3k --no-agent --no-skills --servers-only --command "npm run dev -- -H 127.0.0.1 -p 3000" --port 3000 --startup-timeout 90 --no-tui ``` Adjust the package-manager command and port for the project. Prefer `--command` over `--script` when passing framework flags. For npm scripts, put flags after `--`; otherwise tools like Next.js can interpret the port as a project directory. 3. Verify the server before opening more browser windows: ```bash curl -I http://127.0.0.1:3000 ``` 4. Open the fresh profile as a separate browser step: ```bash d3k agent-browser --profile /tmp/d3k-fresh-profile --headed open http://127.0.0.1:3000 ``` 5. Sanity-check the opened page: ```bash d3k agent-browser get title d3k agent-browser snapshot -i d3k errors ``` Practical rules: - Prefer `127.0.0.1` for this workflow. If `localhost` hangs or flips between IPv4/IPv6 behavior, do not keep retrying browser launches. - If `curl -I` hangs, the server is wedged even if the port appears occupied; restart the d3k server process before opening a browser. - In `servers-only` mode there is no d3k-monitored CDP browser. Use regular `d3k agent-browser` commands, not `d3k cdp-port`. - In sandboxed agent environments, rerun local-network checks and `agent-browser` opens outside the sandbox when sandbox networking blocks access to `127.0.0.1`. ## Debugging Commands Use these first before ad-hoc log scraping: ```bash d3k errors --context d3k logs -n 200 d3k logs --type browser d3k logs --type server ``` ## CDP Browser Control Use the already-monitored browser session instead of launching a separate automation browser. ```bash d3k agent-browser open http://localhost:3000 d3k agent-browser snapshot -i d3k agent-browser click @e2 d3k agent-browser screenshot /tmp/d3k-current.png ``` `d3k agent-browser` auto-connects to the active session's browser via CDP. To target a different browser, run `d3k agent-browser connect ` first. ## Browser Tool Choice Use the browser tool that matches the task instead of treating them as interchangeable: - `agent-browser` - Default choice. - Best for generic web apps and for driving the exact headed browser session that d3k is already monitoring via CDP. - Use it when you need `snapshot`, ref-based `click`, `fill`, or to reproduce what the user sees in the monitored tab. - `next-browser` - Next.js-specific tool. - Best for React/Next introspection: `tree`, `errors`, `logs`, `routes`, `project`, PPR inspection, and related Next dev-server signals. - It is not a drop-in replacement for `agent-browser`: no accessibility `snapshot`, no ref-based `click`, and no `fill`. - It launches its own daemon/browser flow and does not use the d3k session's CDP port. Practical rule: - Need to drive the same browser d3k is monitoring: use `agent-browser`. - Need Next.js component tree or Next-specific diagnostics: use `next-browser`. Examples: ```bash # Same monitored browser session d3k agent-browser snapshot -i d3k agent-browser click @e2 # Next.js-specific inspection d3k next-browser open http://localhost:3000 d3k next-browser tree d3k next-browser errors d3k next-browser logs ``` ## Artifacts to Read - `~/.d3k/{project}/d3k.log` - `~/.d3k/{project}/logs/` - `~/.d3k/{project}/screenshots/` - `~/.d3k/{project}/session.json` ## Operating Rules - Prefer headed mode for interactive debugging. - Use `--headless` only for CI or when explicitly requested. - Use `--servers-only` only when browser monitoring is intentionally disabled.