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
In this repository41 other files it gives its agents.
- skills/web-asset-generator/CLAUDE.mdCLAUDE.md
- academic-writingSkill
- agent-os-childSkill
- agy-pSkill
- amazon-uk-scraperSkill
- artifact-variationsSkill
- audio-transcription-workflowSkill
- claude-channelsSkill
- claude-pSkill
- code-documenterSkill
- context7-docsSkill
- context7-searchSkill
- deep-researchSkill
- docx-draftSkill
- grill-meSkill
- handoffSkill
- long-horizon-waiting-strategiesSkill
- openapi-schemaSkill
- opencode-pluginSkill
- pi-extensionSkill
- pi-web-ui-internal-api-orchestrationSkill
- pptx-draftSkill
- saas-idea-finderSkill
- scraping-redditSkill
- scraping-twitterSkill
- secret-scanningSkill
- socialmedia-optimizationSkill
- systematic-debuggingSkill
- test-driven-developmentSkill
- text-to-speechSkill
- thematic-analysisSkill
- transcribe-audioSkill
- video-deep-understandingSkill
- video-useSkill
- web-asset-generatorSkill
- web-crawlingSkill
- web-create-assetsSkill
- web-data-acquisitionSkill
- webfetch-skillSkill
- youtube-captionSkill
- youtube-searchSkill
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
- Distinctive: line 16
Search for "cookie-editor" or "EditThisCookie"
- Distinctive: line 274
Ensure you export cookies from the exact domain (not a subdomain)
- Distinctive: line 275
Check that cookies include authentication tokens (look for session IDs)
- Distinctive: line 289
If that fails, try local installation:
- Distinctive: line 302
Verify the URL is accessible
- Distinctive: line 307
Symptom: Only landing page captured, no crawling
- Very specific: line 310
Check that crawl.enabled is true
- Very specific: line 311
Verify max_depth is greater than 0
- Very specific: line 312
Check that links are same-origin (if same_origin_only: true)
- Distinctive: line 331
Graceful Degradation: If a single page fails to capture, the script continues with other pages and reports partial success.
≈ “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.
Files
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:
- Chrome Web Store: https://chrome.google.com/webstore/search/cookie-editor
- Search for "cookie-editor" or "EditThisCookie"
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 screenshotsWorkflow
Step 1: Authenticate and Export Cookies
- Open your browser and navigate to the dashboard
- Sign in with your credentials
- Click the cookie-editor extension icon
- Click "Export" and select "JSON" format
- 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.jsonWith command-line arguments:
node scripts/capture.js \
--cookies cookies.json \
--url https://dashboard.example.com \
--mode both \
--output ./outputThe script will:
- Load cookies and authenticate
- Navigate to landing page
- Capture screenshot/HTML based on mode
- Extract links from the page
- Crawl linked pages (if crawling enabled)
- 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 resultsmetadata.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
| Parameter | Description | Example |
cookies | Path to cookie JSON file | "./cookies.json" |
landing_page | Starting URL for capture | "https://dashboard.example.com" |
Optional Parameters
| Parameter | Type | Default | Description |
output_dir | string | "./output" | Output directory path |
mode | string | "both" | Capture mode: "screenshots", "html", or "both" |
timeout | number | 30000 | Page load timeout in milliseconds |
Crawl Configuration
| Parameter | Type | Default | Description |
crawl.enabled | boolean | true | Enable automatic crawling |
crawl.max_depth | number | 2 | Maximum crawl depth (0 = landing page only) |
crawl.same_origin_only | boolean | true | Only follow same-origin links |
crawl.exclude_patterns | array | ["*logout*", ...] | URL patterns to exclude |
Screenshot Configuration
| Parameter | Type | Default | Description |
screenshot.full_page | boolean | true | Capture full scrollable page |
screenshot.format | string | "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 messageExamples
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-crawlExample 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.jsonExample 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-htmlExample 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:
- Re-export cookies - they may have expired
- Ensure you export cookies from the exact domain (not a subdomain)
- Check that cookies include authentication tokens (look for session IDs)
- 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 puppeteerIf that fails, try local installation:
npm install puppeteer
# Then use: node_modules/.bin/node scripts/capture.jsPages Not Loading / Timeout Errors
Symptom: Page navigation times out
Solutions:
- Increase timeout in config:
"timeout": 60000(60 seconds) - Check network connectivity
- Verify the URL is accessible
- Try disabling same-origin restriction temporarily for testing
Links Not Being Followed
Symptom: Only landing page captured, no crawling
Solutions:
- Check that
crawl.enabledistrue - Verify
max_depthis greater than 0 - Check that links are same-origin (if
same_origin_only: true) - 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.
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
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.

