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 🙏

© 2025 – Pkg Stats / Ryan Hefner

llmify

v0.0.20-d

Published

A CLI tool that generates codebase context for LLMs

Downloads

16

Readme

🚀 LLMify

A CLI tool that generates a comprehensive text file containing your codebase context for Large Language Models (LLMs)

npm version MIT License PRs Welcome

✨ Features

  • 📊 Visual Project Structure - Crawls project directories and creates a tree structure
  • 📄 File Content Extraction - Includes the content of all relevant text files
  • 🧠 Context Optimization - Formats output in a way that's optimized for LLM context
  • 🔍 Intelligent Filtering - Respects .gitignore and .llmignore patterns
  • 🛠️ Highly Customizable - Control depth, paths, include/exclude patterns

📦 Installation

Pre-built Binaries

Download the appropriate binary for your platform from the Releases page.

Build from Source

# Clone the repository
git clone https://github.com/username/llmify.git
cd llmify

# Build the binary
go build -o llmify .
# Or on Windows: go build -o llmify.exe .

# Optional: Move to a directory in your PATH
# Linux/macOS
sudo mv llmify /usr/local/bin/
# Or for user-local installation: mv llmify ~/bin/

🚀 Quick Start

# Basic usage - creates llm.txt in the current directory
llmify

# Paste into your favorite LLM
cat llm.txt | pbcopy  # macOS
cat llm.txt | xclip   # Linux
type llm.txt | clip   # Windows

👩‍💻 Usage Examples

# Specify a different root directory
llmify /path/to/your/project

# Specify a different output file
llmify -o context_for_gpt.txt

# Only include content from a specific subdirectory or file
llmify -p src/components
llmify --path main.go

# Exclude specific patterns
llmify -e "*.log" -e "**/.cache/*"

# Include specific files that would otherwise be excluded
llmify -i "config/important.json"

# Limit directory depth for large projects
llmify -d 3

# Disable .gitignore processing
llmify --no-gitignore

# See detailed output (helpful for debugging)
llmify -v

🔧 Using .llmignore

Create a .llmignore file in your project's root directory to specify patterns that should be excluded from LLM context. This uses the same syntax as .gitignore. These rules apply after the --path filter, if used.

Example .llmignore:

# Exclude large data files
data/*.csv
*.json.gz

# Exclude generated documentation
docs/generated/

# Exclude specific libraries
lib/external/

🎯 Full CLI Options

Usage:
  llmify [directory] [flags]

Flags:
  -e, --exclude strings      Glob patterns to exclude (can be used multiple times)
      --exclude-binary       Attempt to exclude binary files based on content detection (default: true)
      --header               Include a header with project info (default: true)
  -i, --include strings      Glob patterns to include (overrides excludes, use carefully)
  -d, --max-depth int        Maximum directory depth to crawl (0 for unlimited)
      --no-gitignore         Do not use .gitignore rules
      --no-llmignore         Do not use .llmignore rules
  -o, --output string        Name of the output file (default "llm.txt")
  -p, --path string          Only include files/directories within this specific relative path
  -v, --verbose              Enable verbose logging
  -h, --help                 Display help information

💡 Example Output

============================================================
Project Root: /path/to/your/project
Generated At: 2023-06-15T10:30:45Z
============================================================

## File Tree Structure

yourproject/ ├── .gitignore ├── main.go ├── utils.go └── docs/ ├── README.md └── usage.md


============================================================

## File Contents

### File: .gitignore

node_modules/ *.log dist/


---

### File: main.go

```go
package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello, world!")
}

File: utils.go

package main

// ... file content here ...

</details>

## 📝 License

MIT License - See LICENSE file for details.

---

<p align="center">
  Made with ❤️ for better LLM interactions
  <br>
  <a href="https://github.com/username/llmify">Star on GitHub</a>
</p>