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

eyeshade

v0.0.2

Published

A fast, canvas-rendered data grid

Readme

eyeshade

Eyeshade is a fast, canvas-rendered data grid that can handle millions of rows.

Eyeshade attempts to use commonly known spreadsheet mechanics, but has been optimized to accomodate large data sets, at the expense of some flexibility. For example, formulas, formats, and styles are defined for whole columns, not for individual cells. Header cells are selectable - row/col operations like sorting, moving, hiding, and showing are managed by arrow commands entered while a header cell is selected.

Controls

When value cell is selected

Arrow moves the cursor, Shift extends selection, Ctrl moves to the edge

Arrow             Move Cursor
Ctrl+Arrow        Move Cursor To Edge (or jump to header if already at top/left edge)
Shift+Arrow       Extend Selection
Ctrl+Shift+Arrow  Extend Selection To Edge

Ctrl/Shift+Space selects whole row/col/grid ranges

Ctrl+Space        Select Whole Col
Shift+Space       Select Whole Row
Ctrl+Shift+Space  Select Whole Grid

Space begins edit, or just start entering a new value

Space                              Edit Cell / Edit Range as TSV
A-Z,a-z,0-9,other printable chars  Edit Cell, deleting existing value and beginning entry of new value

Alt+Arrow commands are used for structural changes that add/delete rows/cols

        Alt+Arrow           Alt+Shift+Arrow
Up      Add New Row Above   Delete Row
Right   Add New Col Right   Delete Col
Down    Add New Row Below   Delete Row
Left    Add New Col Left    Delete Col

To copy and paste data from external sources to and from the grid, edit ranges (coming soon)

F2   Edit Cell
F3   Edit Range As TSV (this is how you copy and paste external data)
F4   Edit Range As CSV
F5   Edit Range As JSON
F6   Edit Range As YAML

Standard cut, copy, and paste only work within the grid - these commands don't actually copy data to the system clipboard

Ctrl+C   Copy (internal only)
Ctrl+X   Cut (internal only)
Ctrl+V   Paste (internal only)

When header cell is selected

When header cells are selected, Arrow and Ctrl/Shift+Arrow act to move the cursor and extend selection just as when value cells are selected. Column headers may be edited to change the column name.

Arrow              Move Cursor
Ctrl+Arrow         Move Cursor To Edge
Shift+Arrow        Extend Selection
Ctrl+Shift+Arrow   Extend Selection To Edge
Space              Edit Cell

                   Col Header                        Row Header
Left               Move Cursor                       -
Right              Move Cursor                       Move Cursor back to value cells
Up                 -                                 Move Cursor
Down               Move Cursor back to value cells   Move Cursor
Shift+Left         Extend Selection                  -
Shift+Right        Extend Selection                  -
Shift+Up           -                                 Extend Selection
Shift+Down         -                                 Extend Selection
Ctrl+Left          Move Cursor to Edge               -
Ctrl+Right         Move Cursor to Edge               -
Ctrl+Up            Sort Col Ascending                Move Cursor to Edge
Ctrl+Down          Sort Col Descending               Move Cursor to Edge
Ctrl+Shift+Left    Extend Selection to Edge          -
Ctrl+Shift+Right   Extend Selection to Edge          -
Ctrl+Shift+Up      Add Multisort Ascending           Extend Selection to Edge
Ctrl+Shift+Down    Add Multisort Descending          Extend Selection to Edge

When a column header is selected, Ctrl+Up/Down sorts the column, Ctrl+Shift+Up/Down adds a multisort level

Col Header Selected
Ctrl+Up          Sort Col Ascending
Ctrl+Down        Sort Col Descending
Ctrl+Shift+Up    Add Multisort Ascending
Ctrl+Shift+Down  Add Multisort Descending

Alt+Arrow makes structural changes - move/hide/show

             Col Header        Row Header
Alt+Left     Move Cols Left    Hide Rows
Alt+Right    Move Cols Right   Show Rows
Alt+Up       Hide Cols         Move Rows Up
Alt+Down     Show Cols         Move Rows Down

Scrolling

Ctrl/Shift/Alt modulates scroll magnitude

Shift+Scroll                  Scroll rows by 1
Scroll                        Scroll rows by 10
Ctrl+Scroll                   Scroll rows by 100
Ctrl+Shift+Scroll             Scroll rows by 1000
Ctrl+Shift+Alt+Scroll         Scroll rows by 10000

Shift+Page Down/Up            Scroll rows by 1
Page Down/Up                  Scroll rows by 10
Ctrl+Page Down/Up             Scroll rows by 100
Ctrl+Shift+Page Down/Up       Scroll rows by 1000
Ctrl+Shift+Alt+Page Down/Up   Scroll rows by 10000