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

term-invader

v2.1.0

Published

A high-stakes retro space shooter for your terminal.

Readme

TERM-INVADER

A terminal-based space shooter built with Node.js. Optimized for Web, Termux, Linux, macOS, and Windows.

Installation

Run directly without installing:

npx term-invader

Or install globally:

npm install -g term-invader
term-invader

Controls 🕹️

  • Movement: A / D or Arrow Keys
  • Fire: W, Space, or Up Arrow
  • Pause/Resume: P
  • Retry (Game Over): R
  • Quit: Q or Ctrl + C

Features 🔥

  • Game State Management: Now includes a Main Menu, Pause functionality, and an instant Retry system without restarting the process.
  • Dynamic Boss Fights: Massive alien ships with real-time HP bars spawn every 1000 points 🛸
  • Persistent High Scores: Records are saved locally at ~/.term_invader_scores.json and synced via WebContainer for browser play 🏆
  • Health System: Start with 3 HP and collect repairs to stay in the fight [✚]
  • Cross-Platform: Native support for Termux (Android) and desktop environments.

Game Mechanics

  • Menu System: Launch the game into a clean start menu to prepare for the fight.
  • Scoring: Destroy enemies to increase your points.
  • Boss Logic: Bosses move horizontally and require multiple hits to defeat.
  • Recovery: Grab the [✚] icons to repair your hull.
  • Persistence: Your best score is tracked across sessions using JSON storage.

Tech Stack

  • Runtime: Node.js
  • Interface: Readline & ANSI Escape Codes
  • State Engine: Custom state-machine for Menu, Playing, and Paused logic.
  • Storage: Local JSON persistence.

Technical Details

  • Uses Node.js readline for raw input handling across multiple states.
  • Render loop runs at 80ms intervals to balance performance and flicker-reduction.
  • Logic includes collision detection for multi-character entities (Boss).
  • V2 Update: Decoupled engine logic to support state transitions and easier "Retry" execution.

Contributing

Got a cool idea or suggestion for an enemy pattern, a new power-up, or themes?

  • Fork the repo.
  • Create your feature branch.
  • Open a Pull Request.

License

This project is licensed under the MIT License, see the LICENSE file for details.

Built with ❤️ by Spectra010s