Publish Zsxq Article
sugarforever/01coder-agent-skills
Publish Markdown articles to Zsxq (知识星球) as drafts. An agent skill from sugarforever/01coder-agent-skills.
Automatically illustrate Markdown documents by turning image markers into browser screenshots or AI-generated images, then writing an image-enriched Markdown output.
$ npx skills add Felo-Inc/felo-skills --skill doc-snapshot-agent -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Felo-Inc/felo-skills doc-snapshot-agent --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "doc-snapshot-agent" agent skill from https://github.com/Felo-Inc/felo-skills/tree/main/doc-snapshot-agent into .claude/skills/doc-snapshot-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-snapshot-agent", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Felo-Inc/felo-skills/tree/main/doc-snapshot-agentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Felo-Inc/felo-skills --skill doc-snapshot-agent -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Felo-Inc/felo-skills doc-snapshot-agent --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Felo-Inc/felo-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/doc-snapshot-agent .agents/skills/doc-snapshot-agent && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "doc-snapshot-agent" agent skill from https://github.com/Felo-Inc/felo-skills/tree/main/doc-snapshot-agent into .agents/skills/doc-snapshot-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-snapshot-agent", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Felo-Inc/felo-skills --skill doc-snapshot-agent -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Felo-Inc/felo-skills doc-snapshot-agent --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Felo-Inc/felo-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/doc-snapshot-agent .cursor/skills/doc-snapshot-agent && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "doc-snapshot-agent" agent skill from https://github.com/Felo-Inc/felo-skills/tree/main/doc-snapshot-agent into .cursor/skills/doc-snapshot-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-snapshot-agent", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Felo-Inc/felo-skills.git --path doc-snapshot-agent--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Felo-Inc/felo-skills --skill doc-snapshot-agent -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Felo-Inc/felo-skills doc-snapshot-agent --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Felo-Inc/felo-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/doc-snapshot-agent .gemini/skills/doc-snapshot-agent && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "doc-snapshot-agent" agent skill from https://github.com/Felo-Inc/felo-skills/tree/main/doc-snapshot-agent into .gemini/skills/doc-snapshot-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-snapshot-agent", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Felo-Inc/felo-skills doc-snapshot-agentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Felo-Inc/felo-skills --skill doc-snapshot-agent -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Felo-Inc/felo-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/doc-snapshot-agent .github/skills/doc-snapshot-agent && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "doc-snapshot-agent" agent skill from https://github.com/Felo-Inc/felo-skills/tree/main/doc-snapshot-agent into .github/skills/doc-snapshot-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-snapshot-agent", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Felo-Inc/felo-skills --skill doc-snapshot-agent -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Felo-Inc/felo-skills doc-snapshot-agent --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Felo-Inc/felo-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/doc-snapshot-agent .opencode/skills/doc-snapshot-agent && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "doc-snapshot-agent" agent skill from https://github.com/Felo-Inc/felo-skills/tree/main/doc-snapshot-agent into .opencode/skills/doc-snapshot-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc-snapshot-agent", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
doc-snapshot-agentAutomatically 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. 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.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b42c3c0. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonnpxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
openrouter.airegistry.npmjs.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from Felo-Inc/felo-skills at commit b42c3c0, republished under its MIT licence (© Felo-Inc). 2,424 words, ~5,352 tokens.
.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.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:
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.
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.
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./tmp/doc-snapshot-agent if the user has no preference.| Topic | File |
|---|---|
| Install Playwright MCP for each client, grant permissions, runtime setup | references/mcp-setup.md |
| Navigate, snapshot, login, capture, verify — full browser loop and tool patterns | references/browser-capture.md |
| Build and maintain site-specific navigation knowledge | references/site-explorer.md |
| Prompt construction and script usage for generated images | references/image-generation.md |
| Image generation CLI | scripts/generate_image.py |
| Situation | Best path | Why |
|---|---|---|
Article already has screenshots in output/{article-id}/raw/ and the user only wants the Markdown rebuilt | Skip capture, rerun Step 5 (Illustrated Markdown) | Browser work is expensive; Markdown regeneration is cheap |
Marker type is screenshot and the page is publicly reachable | Playwright MCP navigate → snapshot → capture | Reliable, inspectable, handles JS rendering |
Marker type is screenshot and the page is behind auth | Playwright MCP with PLAYWRIGHT_CRED_* env vars | Keeps secrets out of prompts and the transcript |
Marker type is generated (editorial, hero, conceptual) | scripts/generate_image.py via OpenRouter | Screenshots cannot render conceptual imagery |
| Marker landed on the wrong paragraph | Reparse case file, reapply semantic placement | Re-capturing won't fix placement bugs |
| Required MCP tools are missing in the runtime | Stop, point user to references/mcp-setup.md | Workflow cannot proceed without MCP |
Run this check at the start of every execution, not just the first time.
mcp__playwright__. Required: browser_navigate, browser_snapshot, browser_take_screenshot.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.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.
Ask once:
Which directory should I use as the project root for this run?
{project-root}./tmp/doc-snapshot-agent.All subsequent paths (cases/, output/, .cache/, scripts/, references/) resolve under {project-root}/.
Recommended layout inside {project-root}/:
{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.
Merge image requirements from three sources:
<!-- IMAGE: ... --> markersImage Summary tableFor 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.
PLAYWRIGHT_CRED_{SERVICE}_{FIELD})npx playwright install chromium (see references/mcp-setup.md)Bad screenshots usually come from landing on the wrong page, not from the wrong capture command. Before capturing:
$IMAGE_AGENT_SITE_KNOWLEDGE_DIR/ and $IMAGE_AGENT_SITE_LEARNING_DIR/.site-key from the domain (memclaw.me → memclaw, app.felo.ai → felo).{site-key}.md exists and is recent, read it before browsing.references/site-explorer.md — and save findings for reuse.Follow references/browser-capture.md for the full navigate → snapshot → act → wait → capture → verify loop and the concrete tool patterns.
Typical flow:
{project-root}/output/{article-id}/raw/Naming rule:
{marker-id}_{filename} (e.g. A1_workspace-dashboard.png)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.
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.Heading marker:
### 📷 Screenshot: A1 (workspace-dashboard.png)
Use: Show the authenticated workspace homepage
Processing: Full-width screenshotbecomes:
HTML comment marker:
<!-- IMAGE: screenshot (https://example.com/app)
Description: Workspace dashboard showing Architecture Decisions
Filename: architecture-decisions.png
-->becomes:
For images that appear only in the Image Summary table:
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.
For generated markers, follow references/image-generation.md and call the bundled script:
python {project-root}/scripts/generate_image.py "{description}" -o "{project-root}/output/{article-id}/{filename}"For text-heavy images, use the stronger model:
python {project-root}/scripts/generate_image.py "{description}" -o "{project-root}/output/{article-id}/{filename}" -m google/gemini-3-pro-image-previewIf generation succeeds, insert the normal Markdown image reference. If it fails, insert a warning block and record the failure in the README:
> 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.
The Image Summary block is workflow metadata. Strip it from the final illustrated Markdown.
Create {project-root}/output/{article-id}/README.md:
# {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 imageReturn 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.
The skill supports three marker formats. A single document may mix them.
### 📷 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.
Screenshot:
<!-- IMAGE: screenshot (https://example.com/app)
Description: Workspace dashboard showing project activity and team sidebar
Filename: workspace-dashboard.png
-->Generated image:
<!-- IMAGE: generated
Description: Editorial illustration of a collaborative AI workflow with folders and browser windows
Filename: ai-workflow-hero.png
-->A document may end with a summary table listing every required image:
## Image Summary
| # | Type | Description | Filename |
|---|------|-------------|----------|
| 1 | generated | Description... | `hero.png` |
| 2 | screenshot | Description... | `dashboard.png` |Important:
Do not assume the workflow starts from zero. Inspect state first, then continue from the right step.
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}/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.
Simple file-based cache:
{project-root}/.cache/screenshots/{article-id}/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.
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.
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.
raw/ is write-onceOriginal 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.
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.
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.
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.
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.
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.
raw/ original — recovery requires a full recapture| Endpoint | Data sent | Purpose |
|---|---|---|
| User-requested websites | Browser requests, form input, cookies, and interactions needed for the task | Screenshot capture and authenticated navigation |
https://openrouter.ai/api/v1/chat/completions | Image generation prompt text and requested model id | Generated-image markers via scripts/generate_image.py |
https://registry.npmjs.org | Package metadata and tarballs during optional installation | Installing @playwright/mcp and the Chromium runtime |
No other data is sent externally.
Data that leaves your machine:
Data that stays local:
{project-root}/.cache/This skill does NOT:
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.
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
SKILL.md and 8 other files (scripts, references) in doc-snapshot-agent of Felo-Inc/felo-skills.
Open the folder on GitHubat commit b42c3c0
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Doc Snapshot Agent this skillFelo-Inc/felo-skills | 249 | — | ~5.4k | Automated safety check: Pass | MIT | |
| Publish Zsxq Articlesugarforever/01coder-agent-skills | 137 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Take Doc Screenshotspgplex/pgconsole | 155 | — | ~841 | Automated safety check: Pass | Apache-2.0 | |
| Publish Substack Articlesugarforever/01coder-agent-skills | 137 | — | ~3.8k | Automated safety check: Pass | MIT | |
| E2Ecallstack/react-native-pager-view | 3.4k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Invisible Playwrightfeder-cr/invisible_dots | 32k | — | ~989 | Automated safety check: Pass | MIT |
sugarforever/01coder-agent-skills
Publish Markdown articles to Zsxq (知识星球) as drafts. An agent skill from sugarforever/01coder-agent-skills.
pgplex/pgconsole
Take screenshots of the running pgconsole app for documentation.
sugarforever/01coder-agent-skills
Publish Markdown articles to Substack as drafts. An agent skill from sugarforever/01coder-agent-skills.
callstack/react-native-pager-view
Agentic end-to-end tests with e2e, the e2e runner. An agent skill from callstack/react-native-pager-view.
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.
comet-ml/opik
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.
Felo-Inc/felo-skills
Generate landing pages/webpages with the Felo Landing Page Task API in Claude Code.
Felo-Inc/felo-skills
Manage Felo LiveDocs (knowledge bases) and their resources. An agent skill from Felo-Inc/felo-skills.
Felo-Inc/felo-skills
Generate mindmaps with Felo Mindmap API in Claude Code. An agent skill from Felo-Inc/felo-skills.
Felo-Inc/felo-skills
Felo AI real-time web search for questions requiring current/live information.
Felo-Inc/felo-skills
Generate PPT/slides from prompts, local images, PDFs, and other files with the Felo PPT Task API.
Felo-Inc/felo-skills
Extract webpage content with Felo Web Extract API. An agent skill from Felo-Inc/felo-skills.
Works with
Categories
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.
Doc Snapshot Agent fits situations like: A document needs screenshots; generated visuals; semantic image placement; end-to-end document illustration automation.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.