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

safehold-skills

v0.2.0

Published

Claude Code skills that turn Safehold into finished workflows

Readme

safehold-skills

npm version License: MIT

Claude Code skills that turn Safehold from a vault into finished workflows.

What this is

Safehold stores your identity documents locally and exposes them to AI agents one field at a time, with consent. On its own, that's a building block. These skills are what you actually do with it: book a flight, apply for a visa, complete a KYC form. Each skill knows how to talk to Safehold with a precise purpose string and pairs it with a browser MCP to finish the job.

Install

npx safehold-skills install

That copies every bundled skill to ~/.claude/skills/. Restart Claude Code to pick them up.

Other commands:

npx safehold-skills list                       # see bundled and installed skills
npx safehold-skills install airline-check-in   # install one skill
npx safehold-skills uninstall airline-check-in # remove a skill
npx safehold-skills install --force            # overwrite existing

Requires Node.js >=20.

Prereqs

The skills assume you have these MCP servers configured:

  • Safeholdclaude mcp add safehold npx -- -y safehold@latest (or see Safehold's README for other clients).
  • Any browser-automation MCP — Playwright MCP, Chrome DevTools MCP, Puppeteer MCP, browser-use MCP, or computer-use. Skills that drive a browser describe what they need by capability and pick from whatever you have installed. Playwright MCP is the easy default.

Each skill lists the capabilities it needs at the top and refuses to run if Safehold or a browser MCP is missing.

Skills bundled

| Skill | What it does | |---|---| | airline-check-in | Online check-in on an airline website using your stored passport. Headed browser, per-field consent, boarding pass saved to ~/Downloads/. | | esta-apply | Submit a US ESTA application on esta.cbp.dhs.gov using your stored passport. Headed browser, per-field consent, you handle the $21 payment and eligibility answers, receipt saved to ~/Downloads/. | | uk-eta-apply | Submit a UK ETA application on gov.uk using your stored passport. Headed browser, per-field consent, you handle the £16 payment and suitability answers, receipt saved to ~/Downloads/. |

Roadmap

  • hotel-id-upload — passport upload at check-in portals
  • exchange-kyc — onboarding flow for crypto exchanges

How a skill talks to Safehold

Every retrieval includes a purpose string built by the skill, e.g. "Online check-in for British Airways flight ABC123 on 2026-05-20". That string is what Safehold shows you at consent time, and what gets written to the access log (get_access_log). The skill never asks for fields the form doesn't need, and never persists Safehold-derived data anywhere except the final artifact (boarding pass PDF, application receipt, etc.).

After running any skill, you can audit exactly what was retrieved by calling Safehold's get_access_log tool.

Composing skills

Skills accept named arguments and finish with a structured output block (STATUS, ARTIFACT, REASON). That means another skill, an agent, or a script can call one of these skills with inputs already in hand and read the result programmatically — without forcing a human Q&A loop. The same skill still works conversationally when a user just types "check me in".

The conventions that make this work — input resolution order, MCP-agnostic body style, output contract — are documented in SKILLS.md.

Writing your own skill

Read SKILLS.md. It's the source of truth for how skills in this repo are structured and why. Use airline-check-in as the reference shape.

PRs welcome. Bar for merging: you've run the skill on a real end-to-end flow, not a simulated one.

Contributing

PRs welcome. Add a skill in skills/<name>/, update the README table, run npx safehold-skills install --force to test locally.

Built by

Spacetime Technology