Agent skill

PR Lens

by NousResearch in NousResearch/hermes-agent

Draw code changes as animated architecture/data-flow SVGs. An agent skill from NousResearch/hermes-agent.

MITAuto-check passed

Install PR Lens

skills CLI
$ npx skills add NousResearch/hermes-agent --skill pr-lens -a claude-code

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

GitHub CLI
$ gh skill install NousResearch/hermes-agent pr-lens --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/NousResearch/hermes-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/optional-skills/software-development/pr-lens .claude/skills/pr-lens && 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
pr-lens
GitHub stars
252k
Token cost
~2.4k tokens
SKILL.md length
1,200 words
Files
5 (incl. references)
Skills in repo
31
Repo updated
First seen
Licence
MIT

At a glance

Draw code changes as animated architecture/data-flow SVGs. An agent skill from NousResearch/hermes-agent.

  • Works in 4 steps: Read the diff. When representing a code… → Write the document to… → Validate, and fix. → …
  • SKILL.md covers When to Use, Prerequisites, How to Run and What makes a document worth…, plus 3 more sections
  • Calls npx, gh and git; reaches prlens.dev

What it does

PR Lens is an agent skill from NousResearch/hermes-agent. Draw code changes as animated architecture/data-flow SVGs.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/config.md`, `references/example.graph.json` and `references/graph-document.md`).

The repository describes itself as: The agent that grows with you. The licence is MIT.

Example prompts

  • “/pr-lens”

Requirements

  • Node.js

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Read the diff. When representing a code change: git diff --find-renames .... The base is the merge base, not the tip of the base branch…
  2. Write the document to .pr-lens/graph.json, following references/graph-document.md. references/example.graph.json is a valid reference with…
  3. Validate, and fix.
  4. Render.

What it can do on your machine

Read from SKILL.md and the folder at commit 14ec243. 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

    Shell commands in SKILL.md call:

    • npx
    • gh
    • git

    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:

    • prlens.dev

    Also links to:

    • github.com

    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

PR Lens loads about 2.4k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 17 tokens; SKILL.md has 1,200 words of instructions outside code blocks.

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

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from NousResearch/hermes-agent at commit 14ec243, republished under its MIT licence (© NousResearch). 1,200 words, ~2,424 tokens.

Download SKILL.mdSave it as .claude/skills/pr-lens/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
pr-lens
description
Draw code changes as animated architecture/data-flow SVGs.
version
1.0.0
author
Coldtea AI (adapted by Nous Research)
license
MIT
platforms
linux, macos

PR Lens Skill

PR Lens draws code as visually rich animated diagrams: diffs, architecture, data flows. You describe the diff or codebase as one JSON document (lanes, nodes, edges, ordered flows) and the CLI renders it as animated SVGs. There is no findings lens — PR Lens is a comprehension layer, not a review bot. There is no field for a bug, risk, or security note, and a document that invents one is rejected.

When to Use

  • Asked to diagram, visualise, or explain a code change or a system.
  • A pull request should carry an architecture or data-flow diagram.
  • Keywords: PR Lens, diagram, architecture, data flow, visualise, pull request.

Prerequisites

  • Node.js with npx (the CLI runs via npx @coldtea/pr-lens-cli@latest; no install step).
  • gh (GitHub CLI) — optional, only for attaching diagrams to PRs.
  • Optional canvas publishing calls the third-party service prlens.dev (see step 4b).

How to Run

Run all commands with the terminal tool from the repository root.

  1. Read the diff. When representing a code change: git diff --find-renames <base>...<head>. The base is the merge base, not the tip of the base branch. If not expressing a diff, read the code to be visualised.

  2. Write the document to .pr-lens/graph.json, following references/graph-document.md. references/example.graph.json is a valid reference with three lanes, all four delta states, a hero edge, a seven-step flow, a nested drill-down tree and a six-step walkthrough. Read it before writing your first document — quicker than reading the reference.

  3. Validate, and fix.

    bash
    npx @coldtea/pr-lens-cli@latest validate .pr-lens/graph.json

    Fix every failure and run it again. Do not render an invalid document; do not "work around" a failure by deleting the element it names.

  4. Render.

    bash
    npx @coldtea/pr-lens-cli@latest render .pr-lens/graph.json --theme light

    Render light by default unless the user requests another theme. The SVGs, the manifest and drawn.graph.json land in .pr-lens/, which the CLI adds to the repository's .gitignore. Do not commit any of it — these files are rebuilt from the diff on demand. Each SVG is named after its view, theme and content hash; manifest.json lists them by lens and view.

4b. Canvas push — OPTIONAL, opt-in. Only when the user explicitly asks for a shareable link. This publishes .pr-lens/drawn.graph.json to the third-party service prlens.dev:

bash
npx @coldtea/pr-lens-cli@latest canvas push

It prints three links. Give the user the view link (https://prlens.dev/c/{id}): the full-screen diagram, every view on one page, no login. The edit link (ending in #w=…) lets its holder overwrite the canvas — it is a secret: leave it out of the reply unless asked, never paste it anywhere public. The embed link serves the top view as an SVG for a README. Pushing the same file again updates the same canvas, so "rename that node" is: edit, validate, render, push — the link stays the same. If the push fails, say so and tell the user where the local SVGs are and which is the top view.

  1. Attach to a PR, when there is one. Upstream documents gh pr create/edit/comment --attach <path>, but --attach arrived in GitHub CLI 2.99 — check gh --version first (e.g. gh 2.97 does NOT have it). With gh ≥ 2.99: write the body with a Markdown image ![alt](.pr-lens/<view>.svg) (an HTML <img> is left as written and the file appended at the bottom instead; alt text is the one-line caption a reader without images gets), then repeat --attach <path> per referenced diagram:

    bash
    gh pr create --title "…" --body-file .pr-lens/body.md --attach .pr-lens/overview-light-<hash>.svg

    Without --attach, use a commit-free path:

    • Upload the SVGs to a gist: gh gist create .pr-lens/<view>.svg, then reference the raw gist URL in the PR body/comment, or
    • Publish via the canvas link (step 4b, with user consent) and link the view URL, or
    • Note the local .pr-lens/ path in the PR body so reviewers can rebuild.

    Once published somewhere durable, let the CLI compose the comment markdown:

    bash
    npx @coldtea/pr-lens-cli@latest comment \
      --graph .pr-lens/drawn.graph.json \
      --manifest .pr-lens/manifest.json \
      --asset-base-url <where you published the SVGs>

    --graph takes drawn.graph.json, not the document you wrote — the CLI refuses a document its manifest does not describe. Leave out --asset-base-url and the markdown points at local paths no reader can fetch. The markdown goes to stdout; posting it is your business.

    Attach the views a reviewer needs and leave the rest in .pr-lens/: the top architecture view first, then a data flow if the change has a sequence worth following. Two diagrams usually beat four.

  2. Optional automation: npx @coldtea/pr-lens-cli@latest analyze --base <ref> does steps 1–2 by asking a provider (Gemini, OpenAI, or any /chat/completions endpoint) with a key of your own. That is the only path here that needs one; normally you author the document yourself.

Show full SKILL.md (477 more words)Show less

What makes a document worth reading

  • Include what did not change. Unchanged neighbours a change touches are the context; mark them delta: "unchanged".
  • Lanes are the reader's mental model (a runtime, a tier, a boundary), not the folder tree.
  • One hero edge, two at the outside: the connection the change is really about.
  • Add a flow only when there is a sequence worth animating. One good flow beats three thin ones.
  • Attach file refs: they become the permalinks a reviewer clicks.
  • Architecture views are a C4-inspired decision tree: system context → container → component, each child materially narrower. Skip empty or repetitive levels; keep data-flow views as separate roots; set defaultOpen: true on the highest useful architecture view.
  • Walkthroughs (2–12 steps, aim 3–7): write one for anything non-trivial. Each step = one change (added/removed/moved), headline change first, overview last. Headings ≤48 chars built from change words; bodies ≤140 chars on behaviour, required. Write for a smart twelve-year-old; no "leverages"/"orchestrates". Keep consecutive steps on the same stage. The walkthrough field needs CLI ≥ 0.4.0 (contract 0.1.1).
  • Fixing a wrong map: never edit the generated document — write corrections into .github/pr-lens.yml (see references/config.md), then validate it: npx @coldtea/pr-lens-cli@latest validate .github/pr-lens.yml. Prefer path globs over id: matches.

Quick Reference

CommandPurpose
npx @coldtea/pr-lens-cli@latest validate .pr-lens/graph.jsonvalidate the document (also validates .github/pr-lens.yml)
npx @coldtea/pr-lens-cli@latest render .pr-lens/graph.json --theme lightrender SVGs + manifest into .pr-lens/
npx @coldtea/pr-lens-cli@latest canvas pushOPTIONAL: publish to prlens.dev (opt-in only)
npx @coldtea/pr-lens-cli@latest comment --graph … --manifest … --asset-base-url …compose PR comment markdown to stdout
npx @coldtea/pr-lens-cli@latest analyze --base <ref>auto-author document via an LLM provider (needs API key)

Validator failure codes:

CodeWhat you did
BROKEN_REFERENCEan edge, flow step, view or walkthrough step names an id you never declared
INVALID_DOCUMENTan invented field; the schemas are strict, unknown keys are rejected
DUPLICATE_IDtwo nodes, edges or views sharing an id
UNSUPPORTED_SCHEMA_VERSIONschemaVersion is not the contract version installed

Pitfalls

  • Six rules are parser-only, not in the JSON Schema (referential integrity, inverted line ranges, disagreeing self endpoints, identical patch commits, too many views for a manifest, flow-step focus on the wrong stage) — always run validate, structured output alone is not enough.
  • Do not commit anything in .pr-lens/; it is regenerated and gitignored by the CLI.
  • The --attach gh flag needs gh ≥ 2.99; older gh silently lacks it — check before writing a body around it.
  • The canvas edit link (#w=…) is a write credential — never share it unprompted or paste it publicly.
  • A stored map never carries a walkthrough; a walkthrough tells the story of one change.
  • pr-lens render reports corrections in .github/pr-lens.yml that matched nothing — that is drift worth fixing, not an error.

Verification

Smoke test (live-verified 2026-09-12 with @coldtea/pr-lens-cli via npx, node on Linux):

bash
cp references/example.graph.json ~/.hermes/cache/scratch/prlens-smoke/ && cd ~/.hermes/cache/scratch/prlens-smoke
npx -y @coldtea/pr-lens-cli@latest validate example.graph.json
# ✓ example.graph.json — graph document · 3 lanes, 10 nodes, 13 edges, 1 flow · 6 walkthrough steps
npx -y @coldtea/pr-lens-cli@latest render example.graph.json --theme light
# ✓ .pr-lens/manifest.json — 4 SVGs across 4 diagrams

Expect exit 0 on both and four *-light-<hash>.svg files plus manifest.json and drawn.graph.json in .pr-lens/.


Adapted from coldteadotai/pr-lens (packages/agent-skill, pinned 0993b4d), MIT License, Copyright (c) 2026 Coldtea AI. See LICENSE.txt.

© NousResearch, 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 4 other files (references) in optional-skills/software-development/pr-lens of NousResearch/hermes-agent.

  • SKILL.md
  • LICENSE.txt
  • references/config.md
  • references/example.graph.json
  • references/graph-document.md

Open the folder on GitHubat commit 14ec243

Compare with similar skills

PR Lens 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.

PR Lens compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PR Lens this skillNousResearch/hermes-agent252k—~2.4kAutomated safety check: PassMIT
Animejs Animationsickn33/agentic-awesome-skills47k2 repos~681Automated safety check: PassMIT
HyperFrames Animationheygen-com/hyperframes59k3 repos~2.1kAutomated safety check: PassApache-2.0
SVG Character Animationcalesthio/OpenMontage66k—~421Automated safety check: PassMIT
Gsap Framer Scroll Animationgithub/awesome-copilot40k1 repos~1.6kAutomated safety check: PassMIT
Web Animation DesignbaptisteArno/typebot.io11k2 repos~2.7kAutomated safety check: PassCustom licence

Similar skills

  • Animejs Animation

    sickn33/agentic-awesome-skills

    Advanced JavaScript animation library skill for creating complex, high-performance web animations.

    47k GitHub starsUsed in 2 repos~681 tokens
    Frontend & DesignAuto-check passed
  • HyperFrames Animation

    heygen-com/hyperframes

    Collects motion rules, scene blueprints, transitions and runtime adapters for HyperFrames video compositions, with GSAP as the default animation runtime.

    59k GitHub starsUsed in 3 repos~2.1k tokens
    Media & CreativeAuto-check passed
  • SVG Character Animation

    calesthio/OpenMontage

    Animate SVG character rigs with GSAP, CSS transforms, Remotion frame control, and HyperFrames-compatible browser previews.

    66k GitHub stars~421 tokensUpdated 6 days ago
    Media & CreativeAuto-check passed
  • Gsap Framer Scroll Animation

    github/awesome-copilot

    Official

    A skill your agent uses whenever the user wants to build scroll animations, scroll effects, parallax, scroll-triggered reveals, pinned sections, horizontal scroll, text animations, or any motion…

    40k GitHub starsUsed in 1 repo~1.6k tokens
    Frontend & DesignAuto-check passed
  • Web Animation Design

    baptisteArno/typebot.io

    Guides easing, timing and animation choices for UI motion, based on a web animation course, and reviews existing animations in a before-and-after table.

    11k GitHub starsUsed in 2 repos~2.7k tokens
    Frontend & DesignAuto-check passed
  • Animation Performance

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing stylesheets, component styles, and responsive behavior related to Use transform and opacity for animations.

    74k GitHub stars~529 tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed

More from NousResearch/hermes-agent

All 31 skills in this repo
  • AI Presenter Video

    NousResearch/hermes-agent

    Produces a presenter-led video from a topic or script plus one authorized presenter image, with captions, lip-sync checks and acceptance reports.

    252k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Word DOCX Toolkit

    NousResearch/hermes-agent

    Creates, reads, edits and templates Word .docx files with python-docx scripts, including tracked changes, comments, tables of contents and health checks.

    252k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Grounded Citations

    NousResearch/hermes-agent

    Attaches a numbered, URL-backed citation to every outside fact in an answer or document, rejecting quotes that aren't real.

    252k GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • PDF

    NousResearch/hermes-agent

    PDF files: create, read, merge, fill, OCR, edit text. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • Scrollcraft

    NousResearch/hermes-agent

    Premium scroll-driven landing pages; scroll = timeline. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~3k tokensUpdated today
    Auto-check passed
  • XLSX

    NousResearch/hermes-agent

    Create, read, edit Excel .xlsx workbooks and CSVs. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~2.4k tokensUpdated today
    Auto-check passed

Questions about PR Lens

What does PR Lens do?

Draw code changes as animated architecture/data-flow SVGs. An agent skill from NousResearch/hermes-agent. PR Lens is an agent skill from NousResearch/hermes-agent. Draw code changes as animated architecture/data-flow SVGs.

How do I install PR Lens in Claude Code?

Run `npx skills add NousResearch/hermes-agent --skill pr-lens -a claude-code`. Or copy the skill folder (optional-skills/software-development/pr-lens in NousResearch/hermes-agent) into .claude/skills/pr-lens in your project. Claude Code loads it when a task matches its description.

How do I install PR Lens in Codex?

Run `npx skills add NousResearch/hermes-agent --skill pr-lens -a codex`. Or copy the skill folder (optional-skills/software-development/pr-lens in NousResearch/hermes-agent) into .agents/skills/pr-lens in your project. Codex loads it when a task matches its description.

Can I use PR Lens 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 NousResearch/hermes-agent --skill pr-lens -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pr-lens, .gemini/skills/pr-lens, .github/skills/pr-lens and .opencode/skills/pr-lens in your project.

What does PR Lens need to run?

Going by SKILL.md and its folder, PR Lens needs the command-line tools its instructions call (npx, gh and git). Our summary lists: Node.js.

Does PR Lens access the network?

SKILL.md names 2 domains. In commands or code: prlens.dev; the agent is likely to contact it when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.

Is PR Lens 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. Review the folder before installing.

What licence does PR Lens use?

PR Lens 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 PR Lens use?

About 2.4k tokens (SKILL.md is roughly 9.7k 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 8.8k tokens, read only when the agent opens those files.

What are the alternatives to PR Lens?

Skills that share tags, products or a category with PR Lens: Animejs Animation (sickn33/agentic-awesome-skills, 47k stars), HyperFrames Animation (heygen-com/hyperframes, 59k stars), SVG Character Animation (calesthio/OpenMontage, 66k stars) and Gsap Framer Scroll Animation (github/awesome-copilot, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PR Lens?

NousResearch (a GitHub organization) maintains it in NousResearch/hermes-agent, which has 252,110 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 9, 2026.

Source: NousResearch/hermes-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.