Agent skill

Doc Snapshot Agent

by Felo-Inc in Felo-Inc/felo-skills

Automatically illustrate Markdown documents by turning image markers into browser screenshots or AI-generated images, then writing an image-enriched Markdown output.

MITAuto-check passedTesting & QA

Install Doc Snapshot Agent

skills CLI
$ npx skills add Felo-Inc/felo-skills --skill doc-snapshot-agent -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Felo-Inc/felo-skills doc-snapshot-agent --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Felo-Inc/felo-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/doc-snapshot-agent .claude/skills/doc-snapshot-agent && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
doc-snapshot-agent
GitHub stars
249
Token cost
~5.4k tokens
SKILL.md length
2,424 words
Files
9 (incl. scripts, references)
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Automatically illustrate Markdown documents by turning image markers into browser screenshots or AI-generated images, then writing an image-enriched Markdown output.

  • Works in 12 steps: Verify Playwright MCP → 5: Confirm the project root → Parse the case file → …
  • A document needs screenshots
  • SKILL.md covers When to Use, Architecture, Quick Start and Quick Reference, plus 5 more sections
  • Runs Python scripts from its folder; calls python and npx; reaches openrouter.ai and registry.npmjs.org

What it does

Doc Snapshot Agent is an agent skill from Felo-Inc/felo-skills. Automatically illustrate Markdown documents by turning image markers into browser screenshots or AI-generated images, then writing an image-enriched Markdown output. Use when a document needs screenshots, generated visuals, semantic image placement, or end-to-end document illustration automation.

Its SKILL.md is about 5.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts and reference files (for example `README.md`, `clawhub.json` and `references/browser-capture.md`).

It sits in Testing & QA, covering Markdown. It works with Model Context Protocol and Playwright. The licence is MIT.

When your agent uses it

  • A document needs screenshots
  • Generated visuals
  • Semantic image placement
  • End-to-end document illustration automation

Example prompts

  • “/doc-snapshot-agent”

Requirements

  • Python 3
  • Node.js
  • A credential in OPENROUTER_API_KEY

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Verify Playwright MCP
  2. 5: Confirm the project root
  3. Parse the case file
  4. Prepare the environment
  5. 5: Understand the target site
  6. Capture browser screenshots
  7. Post-process screenshots
  8. Generate the illustrated Markdown
  9. Write the README inventory
  10. MCP or nothing
  11. Snapshot before click, re-snapshot after change
  12. Choose the interaction type deliberately

What it can do on your machine

Read from SKILL.md and the folder at commit b42c3c0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • openrouter.ai
    • registry.npmjs.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Doc Snapshot Agent loads about 5.4k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 79 tokens; SKILL.md has 2,424 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~79
When it runs · the whole SKILL.md, loaded when a task matches
~5.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~12k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from Felo-Inc/felo-skills at commit b42c3c0, republished under its MIT licence (© Felo-Inc). 2,424 words, ~5,352 tokens.

Download SKILL.mdSave it as .claude/skills/doc-snapshot-agent/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
doc-snapshot-agent
description
Automatically illustrate Markdown documents by turning image markers into browser screenshots or AI-generated images, then writing an image-enriched Markdown output. Use when a document needs screenshots, generated visuals, semantic image placement, or end-to-end document illustration automation.
license
MIT
metadata.slug
doc-snapshot-agent
metadata.version
1.1.0
metadata.author
Felo Inc
metadata.changelog
Restructured SKILL.md (decision-first layout, Core Rules, Traps, Security sections); merged browser-automation and playwright-mcp references into…

When to Use

Load this skill when a Markdown document needs real images — screenshots of live web pages, AI-generated editorial illustrations, or a rerun that only fixes image placement in an already-processed file.

Use it when the user asks to:

  • add images to a Markdown article
  • process a case file with image markers
  • capture screenshots for documentation
  • generate article visuals and insert them into a document
  • rerun or fix image placement in an already processed document

Do not use it for pure text editing, proofreading, or translation — those tasks do not benefit from browser automation or image generation and should be handled directly.

Architecture

This skill has a single entry point (this file) plus four sibling references for depth. It does not create hidden memory folders, does not persist browser state, and does not send any data beyond what the target workflow requires.

All paths (input cases, output images, illustrated Markdown, cache) resolve under one {project-root} the user names at the start of the run. Browser work routes exclusively through the Playwright MCP server; generated images route through a bundled Python script that calls OpenRouter.

Quick Start

  1. Check Playwright MCP tools — confirm mcp__playwright__browser_navigate and other mcp__playwright__* tools are available. If missing, send the user the install snippet from references/mcp-setup.md and stop.
  2. Confirm the project root — ask once; default to /tmp/doc-snapshot-agent if the user has no preference.
  3. Inspect existing artifacts — reuse anything already on disk (see Incremental Execution).
  4. Parse the case file — merge markers from heading form, HTML-comment form, and the Image Summary table.
  5. Capture, generate, place, write README — follow the Workflow section.

Quick Reference

TopicFile
Install Playwright MCP for each client, grant permissions, runtime setupreferences/mcp-setup.md
Navigate, snapshot, login, capture, verify — full browser loop and tool patternsreferences/browser-capture.md
Build and maintain site-specific navigation knowledgereferences/site-explorer.md
Prompt construction and script usage for generated imagesreferences/image-generation.md
Image generation CLIscripts/generate_image.py

Approach Selection

SituationBest pathWhy
Article already has screenshots in output/{article-id}/raw/ and the user only wants the Markdown rebuiltSkip capture, rerun Step 5 (Illustrated Markdown)Browser work is expensive; Markdown regeneration is cheap
Marker type is screenshot and the page is publicly reachablePlaywright MCP navigate → snapshot → captureReliable, inspectable, handles JS rendering
Marker type is screenshot and the page is behind authPlaywright MCP with PLAYWRIGHT_CRED_* env varsKeeps secrets out of prompts and the transcript
Marker type is generated (editorial, hero, conceptual)scripts/generate_image.py via OpenRouterScreenshots cannot render conceptual imagery
Marker landed on the wrong paragraphReparse case file, reapply semantic placementRe-capturing won't fix placement bugs
Required MCP tools are missing in the runtimeStop, point user to references/mcp-setup.mdWorkflow cannot proceed without MCP

Workflow

Step 0: Verify Playwright MCP

Run this check at the start of every execution, not just the first time.

  1. Detect tools whose name starts with mcp__playwright__. Required: browser_navigate, browser_snapshot, browser_take_screenshot.
  2. If they are missing, stop and hand the user the matching install snippet from references/mcp-setup.md (Claude Code, Codex, VS Code/Cursor/Kiro, Claude Desktop, or standalone). Include the permissions.allow: ["mcp__playwright__*"] note for Claude Code and Codex.
  3. After the user installs and restarts the client, resume from here rather than restarting the run.

Do not substitute direct Playwright library calls or any browser tool that lacks the mcp__playwright__ prefix. If the prefix is missing, the call does not go through the MCP server.

Step 0.5: Confirm the project root

Ask once:

Which directory should I use as the project root for this run?

  • If the user provides a path, use it as {project-root}.
  • If the user says "no preference", skips, or does not answer, default to /tmp/doc-snapshot-agent.
  • Create the directory if it does not exist.

All subsequent paths (cases/, output/, .cache/, scripts/, references/) resolve under {project-root}/.

Recommended layout inside {project-root}/:

text
{project-root}/
├── cases/
│   └── {article-id}.md
├── output/
│   ├── {article-id}/
│   │   ├── raw/
│   │   │   ├── A1_example.png
│   │   │   └── A2_example.png
│   │   ├── A1_example.png
│   │   ├── A2_example.png
│   │   └── README.md
│   └── markdowns/
│       └── {article-id}.md
└── .cache/
    └── screenshots/
        └── {article-id}/

Conventions:

  • cases/ holds the source Markdown.
  • output/{article-id}/raw/ holds original browser screenshots — never overwrite files here.
  • output/{article-id}/ holds post-processed assets that the final Markdown references.
  • output/markdowns/ holds the final illustrated Markdown.
  • .cache/screenshots/ holds reusable screenshot cache entries.

If the user specifies a different layout, follow their instruction.

Step 1: Parse the case file

Merge image requirements from three sources:

  1. inline heading-based screenshot markers
  2. inline <!-- IMAGE: ... --> markers
  3. the Image Summary table

For each image, record: type (screenshot or generated), filename, marker id if present, description or purpose, source URL if present, post-processing instruction if present, exact inline location if present, and whether semantic placement is still required. Also detect the target websites referenced by the article.

Step 2: Prepare the environment
  • create output directories
  • check the screenshot cache for reusable entries
  • load credentials from environment variables (pattern: PLAYWRIGHT_CRED_{SERVICE}_{FIELD})
  • re-confirm Playwright MCP tools are present
  • if the Chromium runtime is missing, run npx playwright install chromium (see references/mcp-setup.md)
  • if the target flow needs login/signup/invite/verification and the required information is not already supplied, pause and ask the user before taking any account-specific action
Step 2.5: Understand the target site

Bad screenshots usually come from landing on the wrong page, not from the wrong capture command. Before capturing:

  1. Check for existing site knowledge under $IMAGE_AGENT_SITE_KNOWLEDGE_DIR/ and $IMAGE_AGENT_SITE_LEARNING_DIR/.
  2. Derive a stable site-key from the domain (memclaw.me → memclaw, app.felo.ai → felo).
  3. If {site-key}.md exists and is recent, read it before browsing.
  4. If knowledge is missing or stale, run a structured site exploration — see references/site-explorer.md — and save findings for reuse.
  5. Map every screenshot description to a specific page or UI state: target URL or click path, required visible elements, scroll/tab/expand actions needed.
  6. Append new knowledge to the site knowledge files whenever browsing discovers something worth remembering.
Step 3: Capture browser screenshots

Follow references/browser-capture.md for the full navigate → snapshot → act → wait → capture → verify loop and the concrete tool patterns.

Typical flow:

  • open the target website
  • log in if required (credentials from env)
  • navigate to the correct page or UI state
  • wait for key content to load
  • resize the viewport if the requested layout needs it
  • save screenshots to {project-root}/output/{article-id}/raw/

Naming rule:

  • if a marker id exists, save as {marker-id}_{filename} (e.g. A1_workspace-dashboard.png)
  • otherwise use the original filename

After each capture, open the image file and confirm it matches the description. DOM inspection is not a substitute for looking at the saved PNG.

Step 4: Post-process screenshots

Apply the Processing: instruction if present (crop, resize, aspect-ratio adjustment). Copy from raw/ into the final output directory — never edit raw/ in place.

  • raw/ keeps untouched originals.
  • output/{article-id}/ holds the assets the Markdown references.
Step 5: Generate the illustrated Markdown
5.1 Replace inline markers in place

Heading marker:

markdown
### 📷 Screenshot: A1 (workspace-dashboard.png)
Use: Show the authenticated workspace homepage
Processing: Full-width screenshot

becomes:

markdown
![Authenticated workspace homepage](../{article-id}/A1_workspace-dashboard.png)

HTML comment marker:

markdown
<!-- IMAGE: screenshot (https://example.com/app)
Description: Workspace dashboard showing Architecture Decisions
Filename: architecture-decisions.png
-->

becomes:

markdown
![Workspace dashboard showing Architecture Decisions](../{article-id}/architecture-decisions.png)
5.2 Semantically place images that have no inline marker

For images that appear only in the Image Summary table:

  • read the description carefully
  • extract its key concepts
  • search the document paragraph by paragraph
  • find the paragraph that discusses the same concept most directly
  • insert the image immediately after that paragraph — not at the end of the section, not at the end of the article

Example: a description of Share panel showing team members and invite controls belongs next to the paragraph that mentions inviting teammates, not at the end of a general onboarding section.

5.3 Handle generated images

For generated markers, follow references/image-generation.md and call the bundled script:

bash
python {project-root}/scripts/generate_image.py "{description}" -o "{project-root}/output/{article-id}/{filename}"

For text-heavy images, use the stronger model:

bash
python {project-root}/scripts/generate_image.py "{description}" -o "{project-root}/output/{article-id}/{filename}" -m google/gemini-3-pro-image-preview

If generation succeeds, insert the normal Markdown image reference. If it fails, insert a warning block and record the failure in the README:

markdown
> Warning: AI image generation failed for {filename}

Generation prompt guidance: include the subject clearly, mention visual style if the article implies one, flag whether the image is for a technical article or tutorial, and state any required visible text explicitly.

5.4 Remove the Image Summary table

The Image Summary block is workflow metadata. Strip it from the final illustrated Markdown.

Step 6: Write the README inventory

Create {project-root}/output/{article-id}/README.md:

markdown
# {article-id} Illustration Output

Article: {title}
Completed: {timestamp}

## Image Inventory

| Filename | Marker | Description | Size | Processing |
|----------|--------|-------------|------|------------|
| A1_example.png | A1 | Workspace dashboard | 1200x800 | resized |

## Notes

- Credentials source: environment variables
- Additional comments

## Remaining Work

- [ ] Any missing screenshot or failed generated image

Return a concise run summary containing: article id, what was reused vs newly generated, output Markdown path, image output directory, and any failed or missing images.

Marker Formats

The skill supports three marker formats. A single document may mix them.

A. Heading-based screenshot marker
markdown
### 📷 Screenshot: {marker-id} ({filename})
Use: {why this screenshot exists}
Processing: {post-processing instruction}
Difference: {optional distinction from similar screenshots}

Fields: marker-id is a unique id like A1, B3-1, D3; filename is the base filename without the marker prefix; Use describes what the screenshot should communicate; Processing covers crop/resize; Difference disambiguates similar shots.

B. HTML comment marker

Screenshot:

markdown
<!-- IMAGE: screenshot (https://example.com/app)
Description: Workspace dashboard showing project activity and team sidebar
Filename: workspace-dashboard.png
-->

Generated image:

markdown
<!-- IMAGE: generated
Description: Editorial illustration of a collaborative AI workflow with folders and browser windows
Filename: ai-workflow-hero.png
-->
C. Image Summary table

A document may end with a summary table listing every required image:

markdown
## Image Summary

| # | Type | Description | Filename |
|---|------|-------------|----------|
| 1 | generated | Description... | `hero.png` |
| 2 | screenshot | Description... | `dashboard.png` |

Important:

  • the summary table is the complete inventory
  • some images also appear as inline markers in the body
  • some images exist only in the summary table and must be placed semantically during Step 5.2

Incremental Execution

Do not assume the workflow starts from zero. Inspect state first, then continue from the right step.

Check existing artifacts

For a given article id, inspect:

  • {project-root}/output/{article-id}/raw/*.png
  • {project-root}/output/{article-id}/*.png
  • {project-root}/output/{article-id}/README.md
  • {project-root}/output/markdowns/{article-id}.md
  • {project-root}/.cache/screenshots/{article-id}/
Show full SKILL.md (978 more words)Show less
Decision rules
  • New article — nothing exists → run the full workflow.
  • Screenshots exist but Markdown does not — skip capture, rebuild Markdown and README.
  • Markdown exists and user asks for fixes — reparse case file, rebuild placement without recapturing.
  • Some screenshots are missing — capture only the missing ones, then continue.
  • User asks to recapture specific images — regenerate only those, then rebuild Markdown.
  • User asks to start over — ignore caches and rebuild everything.

Core principles: default to incremental work, reuse screenshots whenever possible, treat Markdown regeneration as cheap and browser work as expensive, and tell the user what will be skipped vs rerun.

Cache policy

Simple file-based cache:

  • directory: {project-root}/.cache/screenshots/{article-id}/
  • cache key: screenshot filename
  • if a matching cache file exists and the user did not ask for a refresh, reuse it
  • if the user explicitly asks to recapture or refresh, ignore cache entries

Core Rules

1. MCP or nothing

Every browser interaction routes through mcp__playwright__* tools. If those tools are absent, stop and ask the user to install (see references/mcp-setup.md). Do not fall back to direct Playwright or generic browser tools — they bypass the contract this skill relies on.

2. Snapshot before click, re-snapshot after change

Clicks must reference refs from the latest accessibility snapshot, not memory. After navigation, modal open, tab switch, or accordion expand, snapshot again before the next action.

3. Choose the interaction type deliberately

Single left click is the default. Use double click only when the page semantics, site knowledge, or visible UI cues clearly indicate "open", "rename", "drill into", or another double-click-specific behavior. Use right click only when you explicitly need a context menu. Do not use double click as a retry for a failed single click, and do not right click just to "see what happens". After any double click or right click, wait for the visible state change and snapshot again before the next action.

4. raw/ is write-once

Original screenshots land in output/{article-id}/raw/ and stay untouched. Crop, resize, and processing all happen into the parent output/{article-id}/ directory. Never overwrite a raw/ file.

5. Reuse before recapturing

Browser work is the expensive step. Default to reusing existing screenshots and cache entries; only recapture when the user asks, the image is missing, or it visibly fails verification.

6. Credentials live in the environment

Read them from PLAYWRIGHT_CRED_{SERVICE}_{FIELD} env vars. Never hardcode, never echo secrets back to the user, and if a required variable is missing, surface its exact name.

7. Gated flows pause and ask

If the page is a sign-up, registration, invite, email verification, 2FA, or onboarding gate and the required user-specific information is not already supplied, stop and ask. Do not create accounts, accept invitations, or invent profile data without explicit user input. When the user answers, continue from the interrupted step rather than restarting.

8. Verify the actual image

A DOM snapshot is not enough. After each capture, open the saved PNG and confirm the described content is visible, no modal or loading skeleton blocks it, and the language matches the article. If the image does not match, retake — do not paper over it in the README.

9. Semantic placement over end-of-section dumping

For images from the summary table, read the paragraph content and insert the image next to the paragraph that discusses the same concept. Do not append leftover images to the end of the article or the end of a broad section.

Traps

  • substituting a non-MCP browser tool because it is "faster" — breaks reproducibility and the MCP snapshot flow
  • clicking from memory instead of from the latest snapshot — works once, then flakes
  • using double click as a generic retry when a single click did nothing — usually opens the wrong state or hides the real issue
  • right clicking without a clear goal or without waiting for a context menu signal — often leaves the page in an ambiguous state
  • screenshotting before loading indicators clear — captures skeletons
  • forgetting to re-snapshot after a modal or tab opens — next click targets a stale ref
  • saving only the cropped asset and losing the raw/ original — recovery requires a full recapture
  • appending all unanchored images to the end of the article instead of placing them semantically
  • hardcoding credentials or echoing them in prompts or the transcript
  • treating every run as a fresh start — recapturing images that already exist on disk
  • assuming a DOM assertion means the screenshot is correct — always review the PNG
  • capturing the wrong language version of the site for a language-specific article

External Endpoints

EndpointData sentPurpose
User-requested websitesBrowser requests, form input, cookies, and interactions needed for the taskScreenshot capture and authenticated navigation
https://openrouter.ai/api/v1/chat/completionsImage generation prompt text and requested model idGenerated-image markers via scripts/generate_image.py
https://registry.npmjs.orgPackage metadata and tarballs during optional installationInstalling @playwright/mcp and the Chromium runtime

No other data is sent externally.

Security & Privacy

Data that leaves your machine:

  • requests sent to the websites the user asked to capture
  • prompt text sent to OpenRouter when generating images
  • optional npm traffic when installing Playwright MCP or the Chromium runtime

Data that stays local:

  • the source Markdown, generated screenshots, generated images, the illustrated Markdown, and the run README
  • the screenshot cache under {project-root}/.cache/
  • environment variables (credentials and API keys) — this skill reads them but never writes them into files or transcripts

This skill does NOT:

  • create hidden memory files or persistent profile folders
  • persist browser session state across runs by default
  • upload screenshots, generated images, or source Markdown anywhere
  • create accounts, accept invitations, or complete verification flows on behalf of the user
  • hardcode or echo credentials, API keys, or personal data

Trust

By running this skill, browser traffic goes to the websites you asked to capture, generation prompts go to OpenRouter, and optional package downloads go through npm. Only run it against sites and generation providers you trust. For destructive, financial, medical, or production flows, prefer staging environments and confirm with the user before proceeding.

Feedback

Issues and improvements: https://github.com/Felo-Inc/felo-skills/issues

© Felo-Inc, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (scripts, references) in doc-snapshot-agent of Felo-Inc/felo-skills.

  • SKILL.md
  • LICENSE
  • README.md
  • clawhub.json
  • references/browser-capture.md
  • references/image-generation.md
  • references/mcp-setup.md
  • references/site-explorer.md
  • scripts/generate_image.py

Open the folder on GitHubat commit b42c3c0

Compare with similar skills

Doc Snapshot Agent next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Doc Snapshot Agent compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Doc Snapshot Agent this skillFelo-Inc/felo-skills249—~5.4kAutomated safety check: PassMIT
Publish Zsxq Articlesugarforever/01coder-agent-skills137—~3.2kAutomated safety check: PassMIT
Take Doc Screenshotspgplex/pgconsole155—~841Automated safety check: PassApache-2.0
Publish Substack Articlesugarforever/01coder-agent-skills137—~3.8kAutomated safety check: PassMIT
E2Ecallstack/react-native-pager-view3.4k1 repos~2.1kAutomated safety check: PassMIT
Invisible Playwrightfeder-cr/invisible_dots32k—~989Automated safety check: PassMIT

Similar skills

  • Publish Zsxq Article

    sugarforever/01coder-agent-skills

    Publish Markdown articles to Zsxq (知识星球) as drafts. An agent skill from sugarforever/01coder-agent-skills.

    137 GitHub stars~3.2k tokensUpdated 3 mo ago
    Documents & OfficeAuto-check passed
  • Take Doc Screenshots

    pgplex/pgconsole

    Take screenshots of the running pgconsole app for documentation.

    155 GitHub stars~841 tokensUpdated 1 mo ago
    DatabasesAuto-check passed
  • Publish Substack Article

    sugarforever/01coder-agent-skills

    Publish Markdown articles to Substack as drafts. An agent skill from sugarforever/01coder-agent-skills.

    137 GitHub stars~3.8k tokensUpdated 3 mo ago
    Writing & ContentAuto-check passed
  • E2E

    callstack/react-native-pager-view

    Agentic end-to-end tests with e2e, the e2e runner. An agent skill from callstack/react-native-pager-view.

    3.4k GitHub starsUsed in 1 repo~2.1k tokens
    Testing & QAAuto-check passed
  • Invisible Playwright

    feder-cr/invisible_dots

    Use the Dot's browser (invisibleplaywright) for any task on a website: logging in, reading pages, filling forms, clicking through a site as a person would.

    32k GitHub stars~989 tokensUpdated today
    Testing & QAAuto-check passed
  • Investigates a failed Opik end-to-end test from CI, TestOps or a local run, decides regression versus flake, and proposes a fix without editing tests.

    22k GitHub stars~1.8k tokensUpdated today
    Testing & QAAuto-check passed

More from Felo-Inc/felo-skills

All 13 skills in this repo
  • Felo Landingpage

    Felo-Inc/felo-skills

    Generate landing pages/webpages with the Felo Landing Page Task API in Claude Code.

    249 GitHub stars~1.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Felo Livedoc

    Felo-Inc/felo-skills

    Manage Felo LiveDocs (knowledge bases) and their resources. An agent skill from Felo-Inc/felo-skills.

    249 GitHub stars~2.8k tokensUpdated 2 mo ago
    Auto-check passed
  • Felo Mindmap

    Felo-Inc/felo-skills

    Generate mindmaps with Felo Mindmap API in Claude Code. An agent skill from Felo-Inc/felo-skills.

    249 GitHub stars~1k tokensUpdated 2 mo ago
    Auto-check passed
  • Felo Search

    Felo-Inc/felo-skills

    Felo AI real-time web search for questions requiring current/live information.

    249 GitHub stars~1.6k tokensUpdated 2 mo ago
    Auto-check passed
  • Felo Slides

    Felo-Inc/felo-skills

    Generate PPT/slides from prompts, local images, PDFs, and other files with the Felo PPT Task API.

    249 GitHub stars~1.5k tokensUpdated 2 mo ago
    Auto-check passed
  • Felo Web Fetch

    Felo-Inc/felo-skills

    Extract webpage content with Felo Web Extract API. An agent skill from Felo-Inc/felo-skills.

    249 GitHub stars~1.7k tokensUpdated 2 mo ago
    Auto-check passed

Questions about Doc Snapshot Agent

What does Doc Snapshot Agent do?

Automatically illustrate Markdown documents by turning image markers into browser screenshots or AI-generated images, then writing an image-enriched Markdown output. Doc Snapshot Agent is an agent skill from Felo-Inc/felo-skills. Automatically illustrate Markdown documents by turning image markers into browser screenshots or AI-generated images, then writing an image-enriched Markdown output.

When should I use Doc Snapshot Agent?

Doc Snapshot Agent fits situations like: A document needs screenshots; generated visuals; semantic image placement; end-to-end document illustration automation.

How do I install Doc Snapshot Agent in Claude Code?

Run `npx skills add Felo-Inc/felo-skills --skill doc-snapshot-agent -a claude-code`. Or copy the skill folder (doc-snapshot-agent in Felo-Inc/felo-skills) into .claude/skills/doc-snapshot-agent in your project. Claude Code loads it when a task matches its description.

How do I install Doc Snapshot Agent in Codex?

Run `npx skills add Felo-Inc/felo-skills --skill doc-snapshot-agent -a codex`. Or copy the skill folder (doc-snapshot-agent in Felo-Inc/felo-skills) into .agents/skills/doc-snapshot-agent in your project. Codex loads it when a task matches its description.

Can I use Doc Snapshot Agent in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Felo-Inc/felo-skills --skill doc-snapshot-agent -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/doc-snapshot-agent, .gemini/skills/doc-snapshot-agent, .github/skills/doc-snapshot-agent and .opencode/skills/doc-snapshot-agent in your project.

What does Doc Snapshot Agent need to run?

Going by SKILL.md and its folder, Doc Snapshot Agent needs Python for the scripts in its folder and the command-line tools its instructions call (python and npx). Our summary lists: Python 3; Node.js; A credential in OPENROUTER_API_KEY.

Does Doc Snapshot Agent access the network?

SKILL.md names 2 domains. In commands or code: openrouter.ai and registry.npmjs.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Doc Snapshot Agent safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Doc Snapshot Agent use?

Doc Snapshot Agent is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Doc Snapshot Agent use?

About 5.4k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.5k tokens, read only when the agent opens those files.

What are the alternatives to Doc Snapshot Agent?

Skills that share tags, products or a category with Doc Snapshot Agent: Publish Zsxq Article (sugarforever/01coder-agent-skills, 137 stars), Take Doc Screenshots (pgplex/pgconsole, 155 stars), Publish Substack Article (sugarforever/01coder-agent-skills, 137 stars) and E2E (callstack/react-native-pager-view, 3.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Doc Snapshot Agent?

Felo-Inc (a GitHub organization) maintains it in Felo-Inc/felo-skills, which has 249 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on July 22, 2026.

Source: Felo-Inc/felo-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.