Anything Analyzer CDP Skill
Skill by ara.so — Daily 2026 Skills collection.
Anything Analyzer is an Electron desktop application that embeds a browser, captures all network traffic via Chrome DevTools Protocol (CDP), injects JS hooks, snapshots storage, and feeds the data to an AI (OpenAI/Anthropic/custom) to generate protocol analysis reports — useful for documenting registration flows, 2API reverse engineering, and general browser protocol analysis.
Installation & Setup
Windows native module build requirement:
Package as installer:
Core Architecture
Key Concepts
Sessions
A Session scopes all captured data. Each session has a name, target URL, and contains all requests, JS hook events, and storage snapshots captured during that session.
Capture Engine
The capture engine:
- Attaches CDP to
WebContentsViewtabs - Enables
Fetch.enablefor request interception - Injects JS hooks via
Page.addScriptToEvaluateOnNewDocument - Collects storage snapshots periodically
AI Analysis Pipeline
- Scene detection — rule-based classification (registration, OAuth, API auth, etc.)
- Data assembly — selects relevant requests, deduplicates, truncates large bodies
- Prompt building — constructs structured prompt with scene context
- LLM call — streams response back to renderer
Configuration
LLM Provider Setup (Settings UI)
Configure via the Settings panel (bottom-left gear icon):
OpenAI:
- API Key:
$OPENAI_API_KEY - Model:
gpt-4oorgpt-4o-mini
Anthropic:
- API Key:
$ANTHROPIC_API_KEY - Model:
claude-sonnet-4-20250514
Custom (OpenAI-compatible):
- Base URL: e.g.
https://api.deepseek.com/v1 - API Key: your provider key
- Model: provider-specific model name
IPC API (Main ↔ Renderer)
Session Management
Capture Control
AI Analysis
Real Code Examples
Extend the Scene Detector
Custom Prompt Builder
Adding a Custom JS Hook
Database Schema Access
Shared Types Reference
Common Patterns
Pattern: Capture a Full Registration Flow
- Click New Session → enter name + target URL (e.g.
https://example.com/register) - Click Start Capture
- In the embedded browser, complete the full registration flow
- Click Stop Capture
- Click Analyze → AI generates a report with extracted fields, validation rules, and curl commands
Pattern: OAuth Flow Analysis
- Create session with the OAuth entry URL
- Start capture
- Authorize the OAuth flow including the redirect callback
- Stop capture — the analyzer auto-detects OAuth and focuses prompt on token exchange
Pattern: Adding a New LLM Provider
Pattern: Filter Requests Before Analysis
Troubleshooting
better-sqlite3 build fails on Windows
better-sqlite3 wrong Electron version
CDP not attaching to tab
- Ensure
WebContentsViewis fully loaded before callingcdpManager.attach() - Check
webContents.getURL()isn'tabout:blankbefore enabling Fetch - For popups/OAuth windows, listen for
new-windoworsetWindowOpenHandlerand capture the newWebContents
AI response truncated
- Increase
max_tokensin the LLM call (default 8192, increase to 16384) - Reduce request body size in
data-assembler.ts— truncate large response bodies to first 2000 chars
Requests missing response bodies
- CDP
Fetch.getResponseBodymust be called beforeFetch.continueRequest - Binary/gzip responses need base64 decoding: check
base64Encodedfield in CDP response - Some streaming responses (SSE) can't have body captured synchronously — mark as SSE and capture chunks via
Network.eventSourceMessageReceived
HTTPS interception not working
- CDP Fetch interception works on all HTTPS by default in Electron's WebContentsView
- If a site uses certificate pinning, it may reject interception — look for
ERR_CERT_*in request errors
App window blank on startup
Development Tips
- Hot reload:
pnpm devuses electron-vite with HMR for renderer and restart for main - Devtools: In dev mode, DevTools auto-opens for renderer; use
Ctrl+Shift+Ifor embedded browser webview devtools - SQLite inspection: Use DB Browser for SQLite on
%APPDATA%/anything-analyzer/analyzer.db(Windows) or~/Library/Application Support/anything-analyzer/analyzer.db(macOS) - IPC debugging: Add
console.loginipc.tshandlers — logs appear in Electron main process terminal - CDP raw events: Enable
cdp.on('*', console.log)incdp-manager.tsduring development to see all CDP events


