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

vibemode

v0.0.10

Published

![logo](./logo.png)

Readme

logo

Pack your entire repository (or selected files) into an AI-friendly format and also apply AI suggested changes back with ease, all from your terminal. vibemode is a CLI-based code companion to help when you are coding using LLM directly from ChatGPT UI, AI Studio, etc.

  1. Pack Context: Package selected files from your project (respecting .gitignore) into a single, structured XML format, perfect for pasting into an AI chat interface.
  2. Apply Changes: Take the diff-like output provided by an AI (in any format it gives it back to you) and apply those changes directly back to your local files using the Gemini API.

vibemode demo GIF

🤔 Why

Sure, you can use Cursor or Copilot or Aider but all these tools try to save money by reducing the context instead of embedding files I included as-is. So I usually resort to using the model directly using the official UI they provide by copying relevant (or all) my code into the chat UI. The model then suggests changes in chat. I then want to apply the suggested changes back to my repo. vibemode is the missing glue for this workflow!

⚠️ Disclaimer: This is a tool I built for my workflow and I am sharing it with the world. It is not perfect but ofcourse PRs are welcome!

✨ Features

  • Interactive Packing: Use glob patterns or type file/directory names with autocomplete to select folders and files to pack.
  • .gitignore Aware: Automatically respects rules in your .gitignore file.
  • AI-Friendly Output: Generates a structured XML containing the directory structure and file contents, ready for AI consumption.
  • Clipboard Integration: Copies the packed XML directly to your clipboard for easy pasting.
  • Automated Patching: Parses AI-generated responses and applies the changes to your local files.
  • Error Handling & Retry: Sometimes applying a patch fails partially, let's you retry failed attempts.
  • Powered by Gemini: Utilizes Google's Gemini 2.0 Flash model for the "Apply Edits" functionality (requires API key).

🚀 Usage

No installation is required! Run directly using npx:

npx vibemode

This will launch the tool and show the following options:

  • Pack files: Let's you pick file/directory to pack. Press Enter when done to copy the "packed" XML to your clipboard, which you paste into your favorite LLM UI.
  • Apply edits: Paste the response from your model, which vibemode parses using a smaller model and applies to the file.

🔧 Applying Edits (Requires Gemini API Key)

The "Apply edits from paste" feature currently uses the Google Gemini API (specifically the gemini-2.0-flash model) to understand and apply changes described in a specific format within the pasted text.

To use this feature, you MUST:

  1. Obtain a Gemini API Key: You can get a free API key from Google AI Studio: https://aistudio.google.com/

  2. Set the Environment Variable: Before running vibemode, set the GEMINI_KEY environment variable in your terminal:

    # On Linux/macOS
    export GEMINI_KEY='YOUR_API_KEY_HERE'
    
    # On Windows (Command Prompt)
    set GEMINI_KEY=YOUR_API_KEY_HERE
    
    # On Windows (PowerShell)
    $env:GEMINI_KEY='YOUR_API_KEY_HERE'
  3. Run Vibemode:

    npx vibemode
  4. Select "Apply edits" and paste the AI-generated response containing the SEARCH/REPLACE blocks when prompted. The tool will then attempt to apply these changes to your local files.

License

Apache License 2.0


Happy Vibing!