npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@penpair/web

v0.9.0

Published

The penpair command for Penpot on the web (design.penpot.app or your team's own): guided setup, a safe write protocol, skills for AI agents. Includes everything in @penpair/core.

Readme

penpair

Design together. Build together.

Penpair helps people and AI coding assistants work on the same Penpot design, then carry that design into frontend code. Your assistant can inspect a real file, build a page in reviewed steps and check the result. You stay in control of what changes and what gets approved.

Design in Penpot → build in your app → compare the result.

Install · First task · Companions · Contribute · Documentation

M8ven Score

What it does

Penpot holds the design. Penpair adds project configuration, reusable operations and skills: written instructions that teach your assistant how to work with that design.

| From an idea to a checked page | What Penpair helps with | | --- | --- | | Understand the design | Read pages, inspect components and tokens, audit spacing and export frames. | | Work on it together | Pin the intended file, inspect before writing, take snapshots and independently read changes back. | | Build the frontend | Hand design references and component mappings to the coding assistant. | | Check the implementation | Add Reflection Check to compare approved references with real browser captures. |

Use your existing frontend stack. Library-specific knowledge lives in optional adapters; the core stays independent of any component library.

Install

Choose how you want to get started. Both routes set up the same project and agent skills.

| Route | Best for | Start here | | --- | --- | --- | | Set it up with your assistant — recommended | You want guidance, help with browser steps and checks along the way. | Guided installation | | Install it yourself | You prefer to run each command and review the configuration yourself. | Manual installation |

For the recommended route, open your application's project in your coding assistant and paste:

Read https://raw.githubusercontent.com/niklas-westman/penpair/main/packages/core/skills/penpair-setup/SKILL.md
and follow its recommended assisted route to set up Penpair in this project.
Keep my MCP key out of chat and check with me before changing a design file.

You need Node.js 22 or newer, a project folder and a Penpot account. Your assistant helps check the prerequisites; you handle your personal key and browser. No clone of this repository is needed. Prefer a terminal wizard? The installation guide covers that too.

Try your first task

Start with a read-only request to your assistant:

Read the installed penpair-design skill. Inspect the pinned design file, summarize its pages and tokens, and suggest one small improvement. Do not change the file yet.

Then choose a scratch page and agree on a small design task. The workflow is: inspect, snapshot, write once, independently read back, export and look at the result. The design workflow explains the review points and recovery steps.

The installed skills cover setup → design → recipes → handoff → verification, with design-judgment for visual hierarchy. Ask the assistant to name the skill it uses. For frontend work, penpair-handoff carries design evidence into implementation; penpair-verify guides browser comparison, image review, fixes and recapture. Check skill discovery and behavior.

Where the command and tools live

Install one command package in your application project. Both expose the same penpair command; the core library is installed as a dependency.

| Surface | Where it comes from | How you discover it | | --- | --- | --- | | Hosted/team Penpot CLI | @penpair/web | pnpm exec penpair --help | | CLI with local Penpot containers | @penpair/docker | The same command, plus instance lifecycle commands | | Engine and shipped agent skills | @penpair/core | Library exports and penpair skills; core has no executable | | Penpair MCP tools | Your installed command, started as a stdio server | Register the executable with mcp --root /absolute/path/to/project in your assistant | | Your assistant's browser/computer controls | The assistant host, separately from Penpair | Host configuration; installing Penpair does not add these controls |

For example, register /absolute/path/to/project/node_modules/.bin/penpair with arguments ["mcp", "--root", "/absolute/path/to/project"]. That exposes typed inspection, status, doctor, spec and export tools for the pinned project. It does not expose every CLI command or arbitrary browser control. See the tool inventory and client configuration.

Explicit --allow-writes additionally exposes registered operations and the experimental design_release_copy tool. Both preview by default; applying a native copy also requires a loopback browser debugging port and existing browser clipboard read/write capability. Penpair does not grant those permissions. The equivalent CLI starts with penpair design-release copy --source-page PAGE --frame BOARD_ID --release 1.2.0. Copying creates native boards and transfer evidence; it does not approve a full design release. Read the native copy guide before applying it. penpair wake remains CLI-only. For Claude and other hosts, read the CLI/MCP prerequisites and current qualification; the native-UI test driver is not shipped as a fallback.

Add your companions

| Package | Add it when | What it contributes | | --- | --- | --- | | @penpair/marwes-ui | Your application uses Marwes UI | Bring library and project tokens into Penpot, detect drift and compose library-aware recipes. | | @penpair/reflection-check | You build a frontend from the design | Map approved design cases to real browser captures and comparison evidence. Recommended for design-to-code work. |

Install companions at the same version as your command package, then register them in penpair.config.json. Both can work together; Reflection Check can also be used without Marwes. Follow installation and registration.

Penpair manages the design workflow. Marwes connects the component library. Reflection Check connects implementation evidence. The comparison adapter does not bundle a browser or a Reflection engine: your project supplies a browser/checker provider. Start with the real-browser example. Installing the adapter alone does not complete verification, and a passing comparison does not replace visual review or human approval.

Know the boundaries

  • Penpair uses Penpot's MCP and plugin APIs. The editor must stay open and visible; this is an interactive workflow.
  • A healthy connection does not authorize design changes. Review the target and intended work before writing.
  • Keep backups and prove a restore on scratch before relying on them. See backup and restore.
  • Penpair is early software. Check compatibility for tested environments and remaining gaps. The installed command's --help is the reference for its available options.

Use the scoped command packages above. The unscoped penpair wrapper currently has a publishing exception. @penpair/core is the underlying library and ships transitively; it has no command of its own.

Contribute

Found a rough edge? Open an issue with what you tried, what you expected, your versions and a redacted reproduction. Documentation fixes, reproducible bug reports and focused pull requests are welcome. Report vulnerabilities through SECURITY.

To develop Penpair itself, fork and clone this repository, then:

pnpm install --frozen-lockfile
pnpm check

Use the pnpm version declared in package.json. Read CONTRIBUTING for choosing a package, conventions, release notes and package smoke checks. A live Penpot connection is not required for the standard automated checks.

Documentation

| You want to… | Read | | --- | --- | | Set up by hand or join a team | Choose an installation route · Team setup | | Work on a design and build from it | Design workflow · Handoff | | Connect a library or browser checker | Companion adapters | | Find commands, recipes or extension points | Guide · Cookbook · MCP tools | | Diagnose or recover a failure | Troubleshooting · Recovery | | Understand design investigations and proposed changes | Flush scope and build diagnostics · Revision conflicts · Baselines across release pages · Reflection integration evaluation | | Validate a source build or prepare a release | Validation · Releasing |

Changelog · MIT licence

Discover installed commands offline with penpair help --all, penpair help export batch and penpair help --search progress. Read CLI help and streaming progress for iterative builds, capture workflows and wrapper guidance.