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

tweet-to-repo

v0.1.1

Published

Turn a tweet (or any text brief) into an open-source GitHub repo, autonomously.

Downloads

25

Readme

tweet-to-repo

Turn a tweet into an open-source GitHub repo. Autonomously.

CI npm license: MIT

You paste a tweet URL. It drafts a spec, spins up an autonomous Claude Code session in yolo mode, writes the code, and pushes a fresh public repo to your GitHub. One command, one coffee, one new repo.

Demo

$ tweet-to-repo "https://x.com/karpathy/status/1234567890123456789"

→ Resolving brief
  ✓ Got brief from tweet:1234567890123456789 (@karpathy)
  "someone should build a tiny cli that turns a folder of markdown into a…"

→ Drafting SPEC.md via claude
  ✓ Draft complete (2,184 chars)

? Scaffold at ./mdgrep? (Y/n) y

→ Scaffolding mdgrep
  ✓ Wrote SPEC.md and initialized git at ./mdgrep

→ Spawning autonomous builder (claude-opus-4-6, yolo mode)
  [builder streaming output — this may take a few minutes]
    ... builder writes files, runs tests, commits ...
  ✓ Build complete at ./mdgrep

→ Publishing to GitHub
  ✓ Pushed to https://github.com/kushalpatil07/mdgrep

Why

Great tweets die in the replies. A thread like "someone should just build X" gets 200 likes, zero repos. The barrier from idea to installable MVP is mostly typing, and typing is a solved problem now. This tool collapses that gap: brief in, working repo out, attribution preserved.

Install

Pick one:

Option 1 — npm (recommended)

npm i -g tweet-to-repo
# (optional) also install the Claude Code skill wrapper
tweet-to-repo install-skill

Option 2 — one-liner installer

Does the npm install and the skill install in one shot, plus a doctor that checks your claude / gh setup.

curl -fsSL https://raw.githubusercontent.com/kushalpatil07/tweet-to-repo/main/install.sh | sh

Option 3 — from source (for hacking on it)

git clone https://github.com/kushalpatil07/tweet-to-repo
cd tweet-to-repo
npm install
npm run build
npm link        # makes `tweet-to-repo` available globally

Prerequisites

  • Node 20+
  • claude CLI, logged in
  • gh CLI, authed (gh auth login) — only needed to actually push to GitHub

About the Claude Code skill

The skill is a thin wrapper that lets you invoke the CLI as /tweet-to-repo <input> from inside a Claude Code session. It lives at ~/.claude/skills/tweet-to-repo/SKILL.md.

npm i -g ships the CLI only — the skill is opt-in via tweet-to-repo install-skill (or the curl installer, which does it for you). The skill file is bundled inside the npm package, so no network fetch is needed.

To update the skill after upgrading the CLI: tweet-to-repo install-skill --force.

Quickstart

Any of these work:

# From a tweet URL
tweet-to-repo https://x.com/karpathy/status/1234567890

# From a plain-text brief
tweet-to-repo "a tiny cli that turns a folder of markdown into a searchable static site"

# From stdin (handy with pbpaste)
pbpaste | tweet-to-repo -

# From a file
tweet-to-repo --file idea.txt

Usage

tweet-to-repo [input] [options]

Arguments:
  input                 Tweet URL, quoted brief, or '-' for stdin

Options:
  --file <path>         Read the brief from a local file
  --name <slug>         Override the inferred repo name (kebab-case)
  --dir <path>          Parent directory for the new repo (default: cwd)
  --private             Create the GitHub repo as private
  --yes                 Skip confirmation prompts
  --dry-run             Skip the `gh` push step
  --model <id>          Claude model to use (default: claude-opus-4-6)
  --skip-build          Scaffold SPEC.md only; don't run the builder
  -V, --version         Show version
  -h, --help            Show help

Inspect the plan before building:

tweet-to-repo "<brief>" --skip-build --dir /tmp
cat /tmp/<name>/SPEC.md

How it works

  input ──►  resolve brief  ──►  draft SPEC.md  ──►  scaffold + git init  ──►
  ( url | text | stdin | file )     ( claude -p )       ( mkdir, SPEC.md )

     ──►  autonomous builder  ──►  gh repo create --push
         ( claude -p --dangerously-skip-permissions --add-dir <new repo> )
  • Tweet fetch uses Twitter's public cdn.syndication.twimg.com endpoint — no API key, no OAuth.
  • Spec drafting runs a normal claude -p with a structured prompt (src/prompts/spec.md) that enforces a 9-section layout.
  • The build step is the autonomy trick: we spawn claude -p --dangerously-skip-permissions --add-dir <dir> as a child process. Yolo mode is scoped to the new repo dir, not your whole machine. The parent CLI never runs in yolo mode itself.
  • Publishing is a single gh repo create --source=. --push from inside the new repo.
  • Prompts are the IP. src/prompts/builder.md and src/prompts/readme.md encode a non-negotiable quality bar — README structure, banned marketing words, a commit rule — so the output looks like a real project, not AI slop.

Use as a Claude Code skill

If you already live in Claude Code, the installer drops a skill into ~/.claude/skills/tweet-to-repo/. Then:

/tweet-to-repo https://x.com/karpathy/status/123

See .claude/skills/tweet-to-repo/SKILL.md.

Roadmap / Non-goals

v1 (now): single-tweet or single-brief input; spawn yolo claude in a scoped dir; push to GitHub.

Explicitly not doing:

  • Thread stitching. Single tweet or single brief only.
  • Tweet media/image handling. Text only.
  • Non-GitHub hosts (GitLab, Codeberg) — PRs welcome.
  • A hosted web version. This stays a local CLI.

Stretch ideas: tweet-reply watcher ("@tweet-to-repo build this"), a quality-scored registry of shipped repos, model routing (opus for spec, sonnet for build).

Contributing

Issues and PRs welcome — especially prompt tweaks in src/prompts/. Please include a sample input and the before/after repo diff when proposing changes there.

License

MIT — see LICENSE.


Built to turn build-worthy tweets into real repos. The prompts are the product.