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

vimstyle-ui

v0.1.0

Published

Keyboard-first vim-style component library for Next.js — you clone it, you own it

Readme

vimstyle-ui

Keyboard-first vim-style components for Next.js


"You clone it, you own it." Fork this repo. The components are yours. Modify freely -- no version lock-in, no npm dependency hell.

"Terminal first." Everything flows through the keyboard. The UI is navigated with j/k, the CLI copies components from your terminal, the docs run locally.


What is this?

A shadcn-style component library for building keyboard-navigable, dark-theme UIs. This is not an npm package -- you clone the repo and the source is yours. Built on Next.js + Tailwind CSS v4, inspired by vim keybindings.

Every component is designed around one idea: the keyboard is primary. Lists navigate with j/k, search triggers with /, actions fire with Enter, and Esc always gets you out. Mouse support is there, but it is secondary.

Quick start

# Fork & clone
git clone https://github.com/cellexec/vimstyle-ui.git
cd vimstyle-ui
bun install

# Run docs locally
bun run dev

# Add components to your project
cd /path/to/your-nextjs-app
bunx vimstyle-ui init
bunx vimstyle-ui add vim-page vim-list use-vim-navigation

CLI

The CLI copies components from the registry into your project, rewriting imports to use @/components/vimstyle/, @/hooks/vimstyle/, and @/lib/vimstyle/ paths. Dependencies are resolved automatically.

Usage:
  vimstyle-ui init              Initialize vimstyle-ui in current project
  vimstyle-ui add <component>   Add a component to your project
  vimstyle-ui add --all         Add all components
  vimstyle-ui list              List available components

Components

| Component | Description | |---|---| | vim-page | Full-page layout shell with header, scrollable content, and keyboard hint bar | | vim-list | Keyboard-navigable list with fuzzy search, j/k navigation, and selection state | | search-bar | Fuzzy search input with / shortcut badge and escape-to-clear | | fuzzy-text | Inline text renderer that highlights fuzzy-matched characters | | kbd-hint | Styled keyboard shortcut badge (violet-tinted) | | kbd-button | Action button with built-in keyboard shortcut listener | | list-item | List row with three visual states: default, selected (violet), editing (amber) | | section-header | Sticky section label for grouped lists | | focus-overlay | Near-full-screen overlay panel for immersive content (chat, history) | | confirm-dialog | Centered confirmation modal with Enter/Esc keyboard control | | save-discard-dialog | Unsaved-changes dialog with Enter (save), q (discard), Esc (cancel) |

Hooks

| Hook | Description | |---|---| | use-vim-navigation | Core keyboard handler with the six-layer priority system | | use-fuzzy-filter | Fuzzy match + filter logic for lists | | use-mouse-interaction | Mouse activation guard that prevents accidental hover-select on load | | use-scroll-into-view | Auto-scrolls the selected item into the viewport |

Lib

| Module | Description | |---|---| | fuzzy | Pure functions: fuzzyMatch, fuzzyIndices for substring matching |

AI Integration

This repo ships with a Claude Code skill (.claude/skills/vimstyle-ui/SKILL.md). When you work with Claude Code on a fork of this repo, it automatically understands the full vimstyle pattern -- layout structure, keyboard handler layers, component APIs, and styling conventions.

If you are not forking the repo but want Claude Code to understand the pattern in your own project, you can install the skill standalone:

# Copy the skill into your project
mkdir -p .claude/skills/vimstyle-ui
cp path/to/vimstyle-ui/.claude/skills/vimstyle-ui/SKILL.md .claude/skills/vimstyle-ui/

Claude Code will then use the skill whenever you ask it to build vim-style pages, add keyboard navigation, or create new components following this pattern.

Running the docs

The documentation site is built with Fumadocs and lives in the docs/ directory.

bun run dev  # starts Fumadocs at localhost:3000

Docs are part of the project, not a separate deployment. Fork the repo and they are yours to extend.

Tech stack

License

MIT -- cellexec 2026