How it works
Claude Code and Codex can hand the prompt you are typing to an external editor and take it back when the editor finishes. After v8-prompt setup, v8 is that editor. When you press the key, it reads your text and a few facts about the repository, sends them to v8labs.app, where v8's prompt compiler writes the advanced prompt, puts the result back in the input box and exits.
Anything else that opens your editor, like git commit, still opens your own editor: v8 only acts on the prompt files of Claude Code and Codex. If the input box is empty, it does nothing.
Which key, where
| Where | Key |
|---|---|
| Every terminal on Windows, macOS and Linux | Ctrl + G (on a Mac it is Control, not Command) |
| Windows Terminal, and the VS Code, Cursor and Windsurf terminals | Ctrl + Shift + . as well, where setup could bind it |
In Windows Terminal, setup's binding replaces the terminal's own Suggestions shortcut. If you had bound that key to something else, setup leaves it alone and says so; use Ctrl + G there.
In Claude Code
- Type your request in Claude Code's input box.
- Press the key. While v8 works you see its progress screen; if a fact only you know would change the prompt, it asks first (see Questions).
- The advanced prompt appears in the input box with a short block that says what v8 added. Review it and press Enter.
Follow-ups. Claude Code can show its last reply in the editor as # comment lines (its "Show last response in external editor" setting). v8 reads that block as what the agent just did, so "now do the same for the settings page" becomes a precise prompt. It sends at most the last 4,000 characters of that reply, with keys, tokens and passwords removed, and leaves the block as it was. The block is read only when a blank line separates it from your prompt. v8-prompt context off stops it being sent.
In Codex
The same key does the same thing in Codex. The brief is written for Codex to act rather than ask: v8 can still ask you up to three questions in the terminal when an unknown would change the result, and other unknowns become explicit assumption lines you can correct before pressing Enter. File paths appear as plain paths with a note to inspect them first.
Codex is supported but not yet measured in our benchmark, which so far runs Claude Code.
Undo
Press the key again on the advanced prompt, before you edit it, and your original text comes back ("Original prompt restored"). This works for up to an hour after the rewrite. v8 keeps your recent originals and their rewrites (at most 20) on your computer in ~/.v8-prompt/rewrites/ for this; nothing about undo is stored on our servers.
The /v8:prompt plugin
In Claude Code you can also type /v8:prompt <request> instead of pressing the key. Claude writes your request to a file (it never passes through a shell), runs v8, asks you v8's questions with its question tool, shows you what v8 added and the whole advanced prompt, and asks what to do: use it, edit it, or use your original request. Claude starts the work only after you choose. Inside the plugin, v8 never suggests buying anything; when no prompts are left it simply says so. Installing the plugin.
From scripts
v8-prompt improve reads a prompt from stdin or --text and prints the advanced prompt on stdout. It counts against the same allowance as the shortcut.
echo "make the checkout remember the cart after a reload" | v8-prompt improve
v8-prompt improve --text "..." --agent codex # claude_code (default) or codex
v8-prompt improve --text "..." --no-questions # never ask; write assumptions instead
v8-prompt improve --text "..." --no-context # send the prompt alone
v8-prompt improve --text "..." --json # one JSON line with the prompt and what v8 added
Progress and questions go to stderr; questions are only asked when stdin is a terminal. The exit code is 0 on success and 1 on any error; with --json an error is also one JSON line, such as {"status":"error","error":"network","message":"..."}. Automating your own work this way is fine within your allowance; see the Terms for what is not.