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

lm_context

v0.7.0

Published

walks a file tree and builds up a single text file which can be provided to a language model for prompt context

Readme

LM Context Generator

lm_context packages a directory or file into a single, LLM-friendly text snapshot so you can ask high-level questions about it

Quickstart


# your secrets are safe, this script will not process dotfiles 
cd ~/path/to/my/project

npx lm_context . 
# generates an `output.lm.txt` file at the root of that project directory

This script walks a file tree from a given root directory, filters out unwanted files using .gitignore rules, and generates a text file that can be used as context for your language model of choice.

It extracts file contents, annotates them with metadata, and estimates token usage to ensure that the language model’s token limit is respected.

[!NOTE] The content of binary files will always be skipped when building up the context file, but the metadata will be included. (file size, last modified)

Arguments:

  • --file (string): alternatively, you can specify a single file to process
  • --max-tokens (number): The max token limit to respect when generating the output. (by default there is no limit)
  • --output (string): The path to save the generated output file. Defaults to output.lm.txt.
  • --root (string): The root directory to start walking from. Defaults to the current working directory if not provided.

Filtering

Files are included in the resulting output file using the following rules:

  1. dotfiles are always excluded no exceptions.
  2. if the target directory has a .gitignore, the same files excluded from git are also excluded from the output file.
  3. optionally, you may create a .lm_ignore file using the same syntax as a .gitignore and files will filtered accordingly.
  4. binary files content will be excluded from the output, but their filename and some meta-data will be included so the LM knows about them.

A more complex example:

# a more explicit example
npx lm_context --root ~/projects/my-vibe-coded-terribleness --output pleaseHalp.txt --max-tokens 64000