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

git-scribe-cli

v0.0.5

Published

Chain-of-Agents based article generation based on repository analysis.

Readme

🔖 Features

  • 📰 Article Generation - Creates an article (blog, post, research paper, tutorial, or technical documentation) based on a Git repository.
  • 📦 Repository Analysis - Analyzes a Git repository to extract relevant information and packages the code using Repomix.
  • 💁 Integrate with Tools - Uses a chain-of-agents to analyze the Git repository, scrape the web for additional information, and curate the article.
  • 🔎 Research Agent - A research agent is used to create a research paper and a bibliography of the repository to ground the article generation.
  • 📈 Evaluations - Provides an optional evaluation of the quality of the written document following different metrics.

✍️ Examples

Below are a few examples of documents generated with GitScribe, ranging from blog post, to technical README.md generations, to research papers.

How it works ❓

Git Scribe implements a chain-of-agents to analyze a Git repository, issue research on the topics and techniques used in the code, and generate a Markdown file that can be either a blog post, a tutorial, a research paper, or a technical documentation. At a high-level the process looks as follows.

Git Scribe implements a prompt compression technique by using a Researcher Agent that produces a detailed research and bibliography of the repository. In addition, it also elects the most relevant code (up to 15k tokens) to be used by the Writers in order to reduce the input token consumption of agents further down the chain.

🚀 Quickstart

Using npm

npm install -g git-scribe-cli

Environment

GitScribe depends on the OpenAI API for generating content and reasoning, the Firecrawl API (use free tier) for scraping websites, and Tavily (use free tier) for web search. You must export their respective API keys before running GitScribe.

export OPENAI_API_KEY=<your-openai-api-key>
export FIRECRAWL_API_KEY=<your-firecrawl-api-key>
export TAVILY_API_KEY=<your-tavily-api-key>

Usage

We'll start by generating a blog post based on the Perplexica project which is an open-source clone of Perplexity.

git-scribe \
  --repository https://github.com/ItzCrazyKns/Perplexica \
  --output ./perplexica-blog-post.md

You will then be prompted by an AI agent to provide information on how to write the blog post and what features you are interested to highlight about the project.

Below is an example prompt you can use.

💁 "I would like you to write a blog post on the Perplexica project, what features it brings, how it compares to the Perplexity AI-powered search engine, and how it can be used in a real-world scenario. Make it clear how to install and use the project. Make it informal, engaging, use emojis where you see fit."

The process of writing the blog post takes generally between 4 to 5 minutes. See an example result of this prompt here.

📟 Options

  • -r or --repository - The URL or local path of the Git repository to analyze.
  • -o or --output - Path to the output file where to store the generated document (must be a Markdown file, and end with .md).
  • -p or --research-output - Path to the output file where to store the intermediary generated research paper (for debugging purposes).
  • -e or --enable-reviewer - Enable the reviewer agent to evaluate the quality of the generated document.
  • -h or --help - Display the help message.

🚧 Limitations

  • If the repository content exceeds 140k tokens, GitScribe will only process the first 140k tokens which may result in a loss of accuracy.
  • This repository makes heavy use of the o3-mini model for its reasoning abilities and low cost, which at the time of writing, is behaving rather poorly with tool use on large context windows. This can result in the model not being able to conduct extended web search.

🤖 Models

This application uses the Vercel AI SDK and exposes the models it uses for each agent in the providers file. You can change the models being used by modifying the model you want to use for each agent in the file and use another provider such as OpenRouter, Ollama, or Anthropic.

👀 See Also

  • Repomix - Packages content from a Git repository into a single prompt.
  • Firecrawl API - A web scraping API optimized for LLMs.
  • Tavily - An API for finding relevant web pages or images for a given query.