tweet-to-repo
v0.1.1
Published
Turn a tweet (or any text brief) into an open-source GitHub repo, autonomously.
Downloads
25
Maintainers
Readme
tweet-to-repo
Turn a tweet into an open-source GitHub repo. Autonomously.
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/mdgrepWhy
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-skillOption 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 | shOption 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 globallyPrerequisites
- Node 20+
claudeCLI, logged inghCLI, 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.txtUsage
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 helpInspect the plan before building:
tweet-to-repo "<brief>" --skip-build --dir /tmp
cat /tmp/<name>/SPEC.mdHow 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.comendpoint — no API key, no OAuth. - Spec drafting runs a normal
claude -pwith 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=. --pushfrom 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/123See .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.
