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

@1dolinski/fastforms

v0.5.0

Published

Fill any form fast. Manage personas on the web, fill forms from your terminal.

Downloads

122

Readme

fastforms

Fill any form fast. Manage multiple personas locally, pick the right ones at fill time.

Quick start

# 1. Create your first user + business persona
npx @1dolinski/fastforms init

# 2. Or import from Twitter (requires PRIVATE_KEY for x402 payment)
npx @1dolinski/fastforms import twitter <your-handle>

# 3. Enable remote debugging in Chrome
#    Open chrome://inspect/#remote-debugging and toggle it on

# 4. Fill any form — select which personas to use
npx @1dolinski/fastforms fill https://example.com/apply

How it works

  1. fastforms init walks you through creating user + business personas interactively
  2. fastforms import twitter pulls your profile from Twitter via x402 micropayment
  3. fastforms add form captures the form's org, purpose, and form-specific answers
  4. Personas are saved as individual JSON files in .fastforms/
  5. fastforms fill <url> connects to Chrome, picks personas, fills by label matching
  6. Review and submit manually in Chrome

Requirements

  • Chrome >= 144
  • Node.js >= 18
  • (Optional) PRIVATE_KEY env var for Twitter import — Base network wallet with USDC

Persona types

| Type | What it captures | Example | |---|---|---| | User | Who you are | Name, email, role, GitHub, bio | | Business | What you're building | Company, product, traction, one-liner | | Form | Who's asking & why | Org, purpose, form-specific answers |

Form persona facts override user/business data. Form-specific questions like "why this accelerator" belong on the form persona, not your user persona.

Commands

| Command | Description | |---|---| | fastforms init | Create your first user + business persona | | fastforms import twitter <handle> | Import user persona from Twitter via x402 | | fastforms add user | Add another user persona | | fastforms add business | Add another business persona | | fastforms add form | Add a form persona (org + answers) | | fastforms list | Show all saved personas | | fastforms fill <url> | Fill any form (pick from personas) | | fastforms edit | Edit an existing persona | | fastforms remove | Remove a persona | | fastforms personas | Open web persona manager in Chrome |

Fill options

| Option | Description | |---|---| | --user <hint> | Pre-select user persona by name | | --business <hint> | Pre-select business persona by name | | --form <hint> | Pre-select form persona by name | | --web | Use web app personas instead of local files | | --dir <path> | Custom persona directory path | | --port <port> | Chrome debug port (auto-detected) |

.fastforms/ directory

.fastforms/
  users/
    jane.json
    work-jane.json
  businesses/
    acme-labs.json
    side-project.json
  forms/
    yc-application.json
    grant-proposal.json
  defaults.json

User persona (users/jane.json)

{
  "name": "jane",
  "fullName": "Jane Smith",
  "email": "[email protected]",
  "role": "Founder & CEO",
  "location": "San Francisco, CA",
  "linkedIn": "linkedin.com/in/janesmith",
  "github": "github.com/janesmith",
  "bio": "Building developer tools. Previously at Stripe.",
  "facts": {
    "x handle": "@janesmith",
    "telegram": "@jane"
  }
}

Business persona (businesses/acme-labs.json)

{
  "name": "Acme Labs",
  "oneLiner": "AI-powered form automation",
  "website": "acmelabs.dev",
  "problem": "Filling out repetitive applications wastes hours",
  "solution": "Smart persona-based form filling"
}

Form persona (forms/yc-application.json)

{
  "name": "YC Application",
  "urls": ["apply.ycombinator.com"],
  "organization": "Y Combinator",
  "purpose": "Startup accelerator application",
  "notes": "3-month program in SF, $500k investment",
  "deadline": "2026-04-01",
  "facts": {
    "why this accelerator": "The alumni network and partner expertise in developer tools",
    "spend": "Engineering hires and go-to-market",
    "last week": "Launched beta, onboarded 50 users, 30% week-over-week growth"
  }
}

The facts on a form persona are form-specific answers keyed by label hints. They override user/business data when a form field matches.

Twitter import (x402)

Pull your Twitter profile into a user persona with a single command. Uses the x402 protocol for pay-per-call access ($0.01 USDC on Base).

# Set your Base wallet private key
export PRIVATE_KEY=0x...

# Import your Twitter profile
npx @1dolinski/fastforms import twitter janesmith

This creates users/janesmith.json pre-filled with your name, bio, location, and handle from Twitter. You can then fastforms edit to add more details.

Requires a Base network wallet with USDC. Powered by APINow.fun.

Web app (optional)

You can also manage personas in the web UI at 293-fastforms.vercel.app/persona and use --web flag to pull from there. The web app has an "Export for CLI" button to download your personas as local JSON files.

Contributing

PRs welcome. To develop locally:

git clone https://github.com/1dolinski/fastforms.git
cd fastforms
npm install
node bin/fastforms.js init
node bin/fastforms.js fill https://example.com/apply

Adding a new form mapping

  1. Add a buildXxxData(user, biz, form) function in lib/fill.js
  2. Add a URL check in fillForm()
  3. Test with node bin/fastforms.js fill <url>

License

MIT