Prompt ForgeBuild one clear prompt from many rough ideas, inside VS Code. You type ideas one at a time into a box. Every Enter sends the idea to an engine that merges it into a structured prompt document (Goal, Context, Requirements, Constraints, Output format, Examples, Open questions), never as a loose bullet at the end. Contradictions are flagged as open conflicts instead of being guessed away. When the document is ready, Polish rewrites it in the shape the model you are sending it to reads best, and Copy puts it on the clipboard — or Send puts it straight into Claude Code. The document is a real markdown file that opens beside the panel. Hand-edit it whenever you like; the engine always reads the current text before merging. WhyComplicated prompts written in a chat box drift: you repeat yourself, contradict an earlier line, or leave something vague enough that the model fills the gap with an assumption. Prompt Forge keeps every idea, keeps the structure, and keeps the contradictions visible until you decide. Engines: it runs on your accountPrompt Forge has no model of its own and no server. It uses whatever you already have, in this order of preference:
Sign-in rides on the vendor's own CLI. No vendor lets a third-party extension log into a chat subscription directly, so Prompt Forge detects the CLI, reads its login state, and opens the vendor's login in a terminal when you click Sign in. API keys are stored in VS Code SecretStorage (your OS keychain), never in settings, logs or files. Two models are chosen per provider: a fast one for every merge and the best one for Polish. The target model (what the prompt is written for) is independent of the engine. Build a GPT-5 prompt on your Claude subscription, or the other way round. What you cannot see: subscription quota. No vendor exposes it to third parties. The footer shows per-call token counts instead. Using it
From any editor, select code and press Ctrl+Alt+Shift+I (Cmd on macOS), or right-click → Send Selection as an Idea, to send it with its file and lines. With nothing selected the same key asks for an idea. Every idea is written to disk before the engine is called, so nothing is lost if a call fails: failed ideas show a Retry. Every version of the document is kept; restore any of them from the history. How fast a merge isMeasured by replaying 33 merges from a real library through the
Low effort matched the merge that had been accepted as closely as the default did (line overlap 0.700 vs 0.704). On top of that, the engine process starts while you type — the CLI's boot is about six seconds of every cold call — and a merge returns only the sections it changed, so its output grows with the idea rather than with the prompt. The status line shows what the engine is doing while it works. Attached filesAn idea can carry files. Images and PDFs go to the engine as content blocks where the provider accepts them, text files go inline, and anything else goes by name with a note saying why. A file that looks like a key or credentials is never read. The prompt refers to a file by its name, so when you Copy, the files are listed at the end with the idea each came from and its path, and the notification offers Copy the files so you can paste them beside the prompt. When you Send to Claude Code they go as Send to Claude CodeSend (the terminal icon on the Prompt panel, or Prompt Forge: Send This Prompt to Claude Code) lists where the prompt can go:
The prompt runs as soon as it arrives. A new or recent conversation opens in a Claude terminal beside the editor with the prompt already sent, and a terminal already running Claude gets the prompt and Enter. After more ideas, Send update carries only what changed to the same place, and runs it there too. If that place is gone, the whole prompt goes to the new one. The Claude Code panel cannot be sent to this way: its open command only fills the input box, and nothing another extension can call presses Enter in it. Set Auto-forge in Claude Code chatsOff by default. Turn it on under Settings › Auto-forge in Claude chats. It installs a small Claude Code plugin, and chats started afterwards in this window's folders report their prompts to Prompt Forge. When a chat has had 3 prompts of 400+ characters among its last 8, Claude asks, in its own question dialog, whether to forge them into one prompt. Forge them merges them with the same engine and rules as typed ideas, and Claude posts a card: what changed, any conflict held back, and links to Undo or Open in Prompt Forge. Type When no VS Code window is running auto-forge, the plugin's hooks reach nothing and the chat shows nothing. Headless VariablesWrite The document beside the panelThe document opens in Prompt Forge's own editor: the prompt formatted, not raw markdown, and editable in place. Click any heading, paragraph, list, table or code block to edit just that part; Cmd/Ctrl+Enter or clicking away saves, Esc cancels. Source in the toolbar switches to the raw markdown for the whole file. Nothing to install — the editor ships inside the extension, and Prompt Forge has no extension dependencies at all. It follows the document live, so an idea you merge in the panel appears in the editor as it lands (and if a merge arrives while you are editing a block, your box stays open and the update waits). Two alternatives are a setting away ( FilesProject contextA prompt written with no knowledge of the codebase it is for comes out general — "your framework", "the nav component". Attach a folder with the + Project chip in the header and the engine gets a short, accurate description of that project with every merge and polish, so it uses real names, paths and vocabulary instead. Two scopes, deliberately different sizes:
Umbrella reading is refused on purpose — it would re-create the ambiguity the feature removes, cannot be costed, and would put every Nothing is read until you attach a folder. Connecting is immediate. A project connects with a brief written from its own files on the spot, with no engine call to wait for. The engine writes a fuller brief in the background, which replaces the quick one when it is ready, and another prompt connecting to the same project at the same commit reuses it with no call. Rebuild writes a new one. A project on another machine — a Mac mini, a server — attaches from a local window without opening a remote one: Prompt Forge: Attach a Project over SSH, or Over SSH… in the picker. Hosts come from Working live with someoneTwo people signed in to the same Claude account can work in one library at the same time. Click the people button in the header, then Share this library live. The invite goes on your clipboard: a link that joins in one click, and the account to sign in to. Whoever opens it sees your whole library as it changes — each idea as it is sent, conflict answers, polish, model changes, hand edits, and the engine at work — within about a second, and can do any of it. A prompt created on either side appears on the other. Each idea in the thread says who sent it, and the prompts list shows who has which prompt open.
Sharing uses port 47830, or the next free one. The first time, Windows or macOS may ask whether VS Code may accept connections; allow it on private networks. Sharing and joining resume after a reload, and leaving a library removes its copy from your computer. In someone else's library, connecting projects, test runs and library sync happen in their window. The library on more than one machineThe library is a folder of plain text files, so pointing
Two things that used to break this are fixed. No absolute path is stored: an attached project is recorded relative to your home directory and an attached image by filename alone, both resolved against wherever the library actually is when it is read. And old version bodies are pruned ( A sync service still cannot handle two machines editing one prompt: the sidecar is rewritten on every change, so it produces a conflicted copy and neither file is obviously right. Git-backed sync does handle it. Set Prompts live in Settings
PrivacyNo telemetry. Prompts go only to the provider you chose, through its CLI or its API — and, when you share a library live, encrypted to the windows you invited. Keys never leave SecretStorage. Nothing is sent anywhere else. Status of each engine mode
DevelopingZero runtime dependencies, no extension dependencies, plain CommonJS, vanilla DOM in the webviews. The markdown renderer in media/md.js is shared by the panel preview and the document editor, and is exercised directly by the tests.
ReleasingBump
The extension is built on a cold/hot split: LicenseMIT. |