agentleFS
valtterimelkkovaltterimelkko/agent-workflow-skills/skills/capture-dashboard/SKILL.md

capture-dashboard

Skill2 starsChanged 44 days agoMITView on GitHub

Capture authenticated dashboards as screenshots and/or HTML using cookies, with safe same-origin crawling. Use when the goal is archival capture, documentation, or structured snapshotting of dashboard pages. Do not use for arbitrary interactive browsing, existing live-tab reuse, or DOM-debugging workflows; prefer agent-browser or chrome-cdp for those.

  • Installs packages

The file

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 7 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Search for "cookie-editor" or "EditThisCookie"

    line 16
  2. Distinctive:

    Ensure you export cookies from the exact domain (not a subdomain)

    line 274
  3. Distinctive:

    Check that cookies include authentication tokens (look for session IDs)

    line 275
  4. Distinctive:

    If that fails, try local installation:

    line 289
  5. Distinctive:

    Verify the URL is accessible

    line 302
  6. Distinctive:

    Symptom: Only landing page captured, no crawling

    line 307
  7. Very specific:

    Check that crawl.enabled is true

    line 310
  8. Very specific:

    Verify max_depth is greater than 0

    line 311
  9. Very specific:

    Check that links are same-origin (if same_origin_only: true)

    line 312
  10. Distinctive:

    Graceful Degradation: If a single page fails to capture, the script continues with other pages and reports partial success.

    line 331

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Dashboard Capture

Capture authenticated web dashboards as screenshots and HTML files using cookie-based authentication with automatic crawling.

Prerequisites

1. Install cookie-editor Chrome Extension

Install the cookie-editor extension to export cookies from your browser:

2. Install Dependencies

Required:

  • Node.js v16 or higher
  • puppeteer: npm install -g puppeteer

The capture script uses puppeteer's bundled Chromium browser.

Quick Start

Basic single-page screenshot capture:

# 1. Export cookies from your authenticated session
# (Use cookie-editor extension, export as JSON, save as cookies.json)

# 2. Run capture
node scripts/capture.js \
  --cookies cookies.json \
  --url https://dashboard.example.com \
  --mode screenshots

Workflow

Step 1: Authenticate and Export Cookies

  1. Open your browser and navigate to the dashboard
  2. Sign in with your credentials
  3. Click the cookie-editor extension icon
  4. Click "Export" and select "JSON" format
  5. Copy the JSON and save to a file (e.g., cookies.json)

Important: Cookies contain sensitive authentication tokens. Never commit cookie files to version control.

Step 2: Create Configuration File

For advanced usage with crawling, create a config file:

{
  "cookies": "./cookies.json",
  "landing_page": "https://dashboard.example.com",
  "output_dir": "./dashboard-capture",
  "mode": "both",
  "crawl": {
    "enabled": true,
    "max_depth": 2,
    "same_origin_only": true,
    "exclude_patterns": [
      "*logout*",
      "*signout*",
      "*delete*",
      "*remove*",
      "*destroy*"
    ]
  },
  "screenshot": {
    "full_page": true
  },
  "timeout": 30000
}

Step 3: Run Capture Script

With config file:

node scripts/capture.js --config config.json

With command-line arguments:

node scripts/capture.js \
  --cookies cookies.json \
  --url https://dashboard.example.com \
  --mode both \
  --output ./output

The script will:

  1. Load cookies and authenticate
  2. Navigate to landing page
  3. Capture screenshot/HTML based on mode
  4. Extract links from the page
  5. Crawl linked pages (if crawling enabled)
  6. Save organized output with metadata

Step 4: Review Output

Output structure:

output/
├── screenshots/           # PNG screenshots (full-page)
│   ├── dashboard_example_com.png
│   ├── dashboard_example_com_reports.png
│   └── dashboard_example_com_settings.png
├── html/                  # HTML files
│   ├── dashboard_example_com.html
│   ├── dashboard_example_com_reports.html
│   └── dashboard_example_com_settings.html
└── metadata.json          # Capture metadata and results

metadata.json contains:

{
  "status": "success",
  "pages_captured": 3,
  "output_directory": "/path/to/output",
  "capture_time": "2026-02-05T12:34:56Z",
  "config": {
    "landing_page": "https://dashboard.example.com",
    "mode": "both",
    "max_depth": 2
  },
  "pages": [
    {
      "url": "https://dashboard.example.com",
      "depth": 0,
      "screenshot": {
        "filename": "dashboard_example_com.png",
        "path": "/path/to/output/screenshots/dashboard_example_com.png"
      },
      "html": {
        "filename": "dashboard_example_com.html",
        "path": "/path/to/output/html/dashboard_example_com.html"
      },
      "timestamp": "2026-02-05T12:34:56Z"
    }
  ]
}

Configuration Reference

Required Parameters

ParameterDescriptionExample
cookiesPath to cookie JSON file"./cookies.json"
landing_pageStarting URL for capture"https://dashboard.example.com"

Optional Parameters

ParameterTypeDefaultDescription
output_dirstring"./output"Output directory path
modestring"both"Capture mode: "screenshots", "html", or "both"
timeoutnumber30000Page load timeout in milliseconds

Crawl Configuration

ParameterTypeDefaultDescription
crawl.enabledbooleantrueEnable automatic crawling
crawl.max_depthnumber2Maximum crawl depth (0 = landing page only)
crawl.same_origin_onlybooleantrueOnly follow same-origin links
crawl.exclude_patternsarray["*logout*", ...]URL patterns to exclude

Screenshot Configuration

ParameterTypeDefaultDescription
screenshot.full_pagebooleantrueCapture full scrollable page
screenshot.formatstring"png"Screenshot format (png)

Command-Line Options

node scripts/capture.js [OPTIONS]

OPTIONS:
  --config FILE         Load configuration from JSON file
  --cookies FILE        Path to cookie JSON file
  --url URL             Landing page URL
  --mode MODE           Capture mode: screenshots, html, or both
  --output DIR          Output directory
  --max-depth N         Maximum crawl depth
  --no-crawl            Disable crawling
  --help, -h            Show help message

Examples

Example 1: Screenshot-Only Capture

Capture screenshots of a single dashboard page:

node scripts/capture.js \
  --cookies cookies.json \
  --url https://dashboard.example.com \
  --mode screenshots \
  --no-crawl

Example 2: Full Dashboard Crawl

Capture both screenshots and HTML, crawling up to 2 levels deep:

{
  "cookies": "./cookies.json",
  "landing_page": "https://dashboard.example.com",
  "mode": "both",
  "crawl": {
    "enabled": true,
    "max_depth": 2
  }
}
node scripts/capture.js --config config.json

Example 3: HTML Documentation

Capture HTML only for documentation purposes:

node scripts/capture.js \
  --cookies cookies.json \
  --url https://dashboard.example.com \
  --mode html \
  --output ./docs/dashboard-html

Example 4: Custom Exclude Patterns

Exclude additional URL patterns:

{
  "cookies": "./cookies.json",
  "landing_page": "https://dashboard.example.com",
  "crawl": {
    "exclude_patterns": [
      "*logout*",
      "*delete*",
      "*edit*",
      "*admin*"
    ]
  }
}

Troubleshooting

Cookies Not Working / Authentication Failed

Symptom: Script reports "Authentication failed - redirected to login page"

Solutions:

  1. Re-export cookies - they may have expired
  2. Ensure you export cookies from the exact domain (not a subdomain)
  3. Check that cookies include authentication tokens (look for session IDs)
  4. Try exporting cookies immediately after logging in

See references/troubleshooting.md for detailed cookie export instructions.

Missing Dependencies

Symptom: puppeteer not found error

Solution:

npm install -g puppeteer

If that fails, try local installation:

npm install puppeteer
# Then use: node_modules/.bin/node scripts/capture.js

Pages Not Loading / Timeout Errors

Symptom: Page navigation times out

Solutions:

  1. Increase timeout in config: "timeout": 60000 (60 seconds)
  2. Check network connectivity
  3. Verify the URL is accessible
  4. Try disabling same-origin restriction temporarily for testing

Links Not Being Followed

Symptom: Only landing page captured, no crawling

Solutions:

  1. Check that crawl.enabled is true
  2. Verify max_depth is greater than 0
  3. Check that links are same-origin (if same_origin_only: true)
  4. Review exclude patterns - they may be too broad

For More Help

See detailed troubleshooting guide: references/troubleshooting.md

Notes

Cookie Expiration: Cookies expire based on server settings. If capture fails with authentication errors, re-export fresh cookies.

Same-Origin Restriction: By default, only links within the same domain are followed. This prevents accidentally crawling external sites.

Depth Limit: Maximum depth of 2 prevents excessive crawling. Depth 0 = landing page, Depth 1 = direct links, Depth 2 = links from depth 1 pages.

Safety Filters: Exclude patterns prevent the script from clicking logout, delete, or other dangerous actions. These patterns use wildcard matching (*logout* matches any URL containing "logout").

File Naming: URLs are converted to safe filenames by replacing non-alphanumeric characters with underscores. Long URLs are truncated to 200 characters.

Graceful Degradation: If a single page fails to capture, the script continues with other pages and reports partial success.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.