open source CLI tool

Hack first,
name later.

Throwaway projects for every language, without the existential dread of naming them. Spin up, experiment, clean up. Or don't.

$ brew install torryt/tap/riff Copied!
or grab a binary →
~/.riff
Works on macOS Linux Windows (WSL) macOS, Linux & Windows (WSL) — bash, zsh, fish

Everything a throwaway
project needs. Nothing it doesn't.

riff keeps disposable projects organized without making you think about it. Each one gets a random ID, a git repo, and an AI-generated description so future-you doesn't have to guess.

Instant create

One command to scaffold a project in any language. Interactive template picker or pass it directly.

Auto-describe

Every commit triggers an AI summary. No more opening 14 folders to find the WebSocket experiment.

Isolated sandbox

All projects live in ~/.riff/ with random IDs. Your home directory stays clean.

Export & graduate

When a throwaway becomes real, export it to any folder. Prototype to production in one command.

Safe cleanup

Archive projects instead of deleting. Multi-select the ones that no longer spark joy — purge them later if you're sure.

Shell integration

Auto-cd into projects. Works with bash, zsh, and fish. One line in your shell config.

Zero ceremony.
Maximum velocity.

01

Spin up

Pick a template or go empty. riff creates an isolated directory with a random 7-character ID, initializes git, and drops you in.

terminal
02

Hack away

Every commit auto-generates an AI description via GitHub Copilot CLI. You'll never forget what past-you was building.

terminal
03

Ship or scrap

Graduate it to a real project with export, or archive it with clean. Nothing is permanently deleted — purge the archive when you're ready.

terminal

Built-in starters that
Just Work.

Ship with sensible defaults for popular stacks. Override any of them or add your own via ~/.riff/config.json.

React
pnpx create-vite . --template react-ts
Next.js
pnpx create-next-app . --ts --app
Python
uv init
Rust
cargo init .
Go
go mod init temp
Bun
bun init -y
Node
npm init -y
.NET
dotnet new console

Start riffing.

Install in seconds. No config. No signup. Just go.

terminal