Quick Throttle

Quick Throttle setup instructions

This page is written for a coding agent. If you're a person reading it, everything below still applies, you'd just be running the commands yourself instead of asking Claude Code or Codex to.

Haven't started yet?

Unzip your download, open that folder in your IDE, then open a Claude Code or Codex session in it and paste this in:

Paste this into your agent
Read https://quickthrottle.app/setup
and follow it to set this project up
on my machine. Tell me when it's up.

Agent reading this page: that box is for the person, not for you. You've already been sent here. Don't fetch this page again. Start at step 1 below.


What you're setting up

Quick Throttle is a content engine that runs entirely on the user's machine. It makes short videos and image slideshows. It has two halves: a Node server with a render worker, and a web UI. Nothing runs in anyone else's cloud and there's no login.

Open README.md now, before step 1, and keep it open through step 4. It's in the folder you're working in, and it's the authority on every command below, which is why this page names none of them. If this page and the README ever disagree, the README is right, because it shipped with the code and this page didn't.

1Check Node, and install it if it's missing

The setup command in the README runs a preflight check of its own before it installs a thing, so you don't need to run a separate check for anything but Node.

Node is the one you check first, with node -v, because that preflight check is itself a Node script and can't run without it. It needs 22.13 or newer, because the database is built into Node itself and wasn't finished until then. The user was told they don't need to install Node, so on Windows it's your job.

  • No Node at all, on Windows. Before you run anything, tell the user a Windows admin prompt is about to appear and they need to click Yes, because the install waits on it. Then run winget install OpenJS.NodeJS.LTS.
  • Your shell won't see it yet. It was started before Node existed, so node still isn't found straight after a clean install. That's expected. Don't reinstall. Put C:\Program Files\nodejs on the front of PATH at the start of every command from here on, including the setup and dev commands. In PowerShell that's $env:Path = "C:\Program Files\nodejs;$env:Path", and in Git Bash it's export PATH="/c/Program Files/nodejs:$PATH". Then check node -v again.
  • Node is there but too old. Run where node. If it points into C:\Program Files\nodejs, run winget upgrade OpenJS.NodeJS.LTS, with the same admin prompt warning first. If it points anywhere else, stop there. That's nvm, fnm, volta or a hand-placed copy. Tell the user what version they have and that it needs 22.13, and don't switch versions for them. Version managers differ per machine and guessing makes a mess someone else has to clean up.
  • winget is missing, or the install fails, or this isn't Windows. Stop and show the user the error. Tell them to install the current LTS from nodejs.org and come back.

2Run the install and let it finish

Run the setup command from the README. It installs both halves of the project and downloads a headless browser used to render video.

It takes several minutes, and most of that is the browser download. It is not hung. Don't kill it and retry, and don't run it again in parallel.

The browser step prints nothing at all when that browser is already on the machine. Silence there is a pass. Don't go looking for the download output, and don't install it again by hand to make sure.

3Ask for the Gemini API key

Slideshow pictures are drawn by Google Gemini and the user pays Google directly for them. Ask the user for their key, then write it into a file called .env in the project root as a single GEMINI_API_KEY= line. Check the README for the exact name in case it has moved on since this page was written.

  • If a .env already exists, add the line or replace that one key. Don't overwrite the file and lose whatever else is in it.
  • Don't invent a key, and don't leave a placeholder value in the file. A fake key fails later at image generation, where the cause is hard to trace back to here.
  • If the user says they don't have one yet, leave the file alone and carry on. Videos work without it. Tell them they can get one at aistudio.google.com/apikey and add it whenever they want slideshows.
  • Never print the key back to the user, never write it anywhere but that file, and never commit it.

4Start it and check it actually answers

Start the app with the dev command from the README and leave it running in the background. It starts three processes together: the API server, the web UI, and the render worker.

Before you tell the user anything worked, confirm the API is answering. Request the brands endpoint on the server's port, which the README names along with the UI's. It passes if you get a 200 back with a JSON array, and an empty array is the expected answer, because there are no brands yet. Anything else is a fail: a connection refused, a timeout, a non-200, or HTML instead of JSON.

The server takes a few seconds to come up, so give it up to thirty and retry a couple of times before calling it. If it still doesn't answer, say so plainly and show the user the error rather than assuming it will sort itself out.

5Hand the brand setup back to the user

Tell the user in plain sentences what worked, anything that didn't, and what they do next. Don't claim it's running if step 4 didn't answer.

What they do next is this, and it's theirs to drive, not yours:

  • Open localhost:5181 in a browser.
  • The app opens straight on the brand page, because there are no brands yet and nothing else in it works until one exists. There's nothing to click to get there.
  • Paste in a link to their own product, their own site for preference, and an App Store or Play Store page if that's all there is.
  • Press Copy the prompt, then paste that prompt back into this same session.

When that prompt arrives, run it. It researches their product and writes the whole brand through the local API, and it carries its own instructions, so follow those rather than anything on this page.

Until it arrives, stop. Don't create a brand yourself, don't write hooks or stories, and don't generate anything. Guessing at somebody's audience and voice is the exact thing that prompt exists to prevent.