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

speedread

v1.0.2

Published

A simple terminal-based open source Spritz-alike for speed reading

Downloads

175

Readme

speedread.js

A simple terminal-based open source Spritz-alike for Node.js.

This command line filter shows input text as a per-word RSVP (rapid serial visual presentation) aligned on optimal reading points. This kind of input mode allows reading text at a much more rapid pace than usual as the eye can stay fixed on a single place.

Installation

Global Installation (Recommended)

Install globally to use the speedread command anywhere:

npm install -g speedread

or with yarn:

yarn global add speedread

Then use it directly:

cat document.txt | speedread -w 500

Local Development

Clone the repository and install dependencies:

git clone https://github.com/manojuppala/speedread.git
cd speedread
yarn install

Basic Example

If installed globally:

cat document.txt | speedread -w 250
echo "Hello world" | speedread -w 300

If using locally:

cat test.txt | node speedread.js -w 250
# or
cat test.txt | ./speedread -w 250

Note: The included test.txt is an essay-style test file that provides an engaging reading experience while testing all features.

The default of 250 words per minute is very timid, designed so that you get used to this. Be sure to try cranking this up, 500wpm should still be fairly easy to follow even for beginners.

Controls

speedread is slightly interactive, with these controls accepted:

  • [ - slow down by 10%
  • ] - speed up by 10%
  • space - pause (and show the last two lines of context)
  • Ctrl+C - quit and show statistics

Command Line Options

  • -w, --wpm <number> - Set words per minute (default: 250)
  • -r, --resume <number> - Resume from a specific word number
  • -m, --multiword - Join adjacent short words (experimental)

Features

  • RSVP Display: Shows one word at a time with optimal reading point (ORP) highlighted
  • Smart Timing: Longer pauses at punctuation (commas, periods, etc.)
  • Length-based Timing: Adjusts display time based on word length
  • Interactive Controls: Adjust speed on the fly, pause to see context
  • Statistics: Shows reading speed, word count, and elapsed time
  • Resume Support: Can resume reading from a specific word
  • Context Display: When paused, shows the last two lines with current word highlighted
  • UTF-8 Support: Handles Unicode text properly

How It Works

The program uses the concept of an Optimal Recognition Point (ORP) - a specific letter in each word that, when focused on, allows for the fastest reading. The ORP is typically around 35% into the word and is highlighted in red.

Words are displayed with timing that accounts for:

  • Base word time
  • Word length (longer words get more time)
  • Punctuation (periods get 3x time, commas get 2x time)
  • First word bonus (extra time to focus)

Integration Examples

With mutt email client

Add to your ~/.muttrc:

macro pager R "<enter-command>set pipe_decode=yes<enter>v|grep -v '^>' | /path/to/speedread<enter><enter-command>unset pipe_decode<enter>q" "speedread"

Then press R when viewing a message.

With any text file

cat document.txt | node speedread.js -w 500

Resume reading

If you exit with Ctrl+C, the program will tell you the word number to resume from:

cat document.txt | node speedread.js -w 500 -r 150

License

MIT License

Copyright (c) 2026 Manoj Uppala