
Backdraw
io.github.devtalh由 GitHub 帳號 devtalh 發布v2.1.3更新於 Oct 29, 2026
Generate images with your own ChatGPT account in a background Chrome tab. Needs Windows + Chrome.
概覽
本機 MCP 伺服器加 Chrome 擴充功能,讓助理透過你自己已登入的 ChatGPT 帳號在背景分頁中生成或編輯圖片。
- 可以做什麼
- 依提示詞生成圖片,可指定長寬比、透明背景、參考圖片或已儲存的參考集合
- 查詢、等待或取消圖片工作,並讀取橋接狀態
- 從既有的 ChatGPT 對話連結下載其中的圖片
- 列出並選擇用於新圖片對話的 ChatGPT 專案
- 列出參考集合及其圖片與檔案名稱
- 適用情境
- 適合在 Windows 上想讓 Claude 等 MCP 用戶端用你既有的 ChatGPT 方案生成或編輯圖片、且不想設定 API 金鑰,並能接受在平常使用的 Chrome 中完成工作的情況。
- 執行需求
- Windows 10 或 11,Google Chrome 116 或更新版本(僅 Chrome 經過測試),Node.js 20 或更新版本。需要可生成圖片的 ChatGPT 帳號,並在 Chrome 中登入 chatgpt.com,且已選定一個 ChatGPT 專案。需一次性執行 npx 安裝並在開發人員模式下載入解壓縮的擴充功能;用戶端需支援 stdio 伺服器。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Backdraw,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Let Claude generate images with your own ChatGPT account, in a background Chrome tab.
No API key, no extra cost, nothing to watch.
[npm version] [devtalh/backdraw MCP server]
What it does
Backdraw is a local MCP server plus a Chrome extension. Ask Claude for an image "with ChatGPT" and Backdraw opens ChatGPT in a background tab of your own Chrome, where you are already signed in. It sends the prompt, waits for the picture and saves it on your PC. Claude gets the file path, a preview and the link to the chat.
- Generate new images, or edit one by attaching it as a reference.
- Ask for a shape (
16:9, a4:1banner, …) or a transparent background. - Save reference images from any website with a right-click and reuse them as collections.
- Browse everything you made in a gallery side panel.
- Pure Node.js with zero npm dependencies. Everything runs on your computer.
Personal use, with your own ChatGPT account and at your own risk. Automating the ChatGPT web page may conflict with OpenAI's terms; read Disclaimer and responsible use before you start.
Why Backdraw?
- Your everyday Chrome. No separate browser profile, no second login, no automation browser: Backdraw works in the Chrome you already use, where you are signed in to ChatGPT.
- Out of your way. The work happens in a muted background tab that never takes focus, so you keep working while the image is made.
- No open ports. The pieces talk over Chrome native messaging and a named pipe that only your Windows user can open. There is no DevTools port (such as 9222) and no local web server.
- No API key. It uses your ChatGPT plan; each image counts toward your normal ChatGPT limits.
- References from the web. Right-click images on any site to collect them, then generate in their style.
- A gallery of everything you made, in Chrome's side panel.
- One command to set up:
npx backdraw@latest setup. Loading the extension is the only step left to you.
How it compares
Other open-source projects take different approaches, and several of them do things Backdraw doesn't (macOS or Linux support, an API mode, running on a server). Each row was checked against the project's README and source on 2026-10-25; ? means we couldn't tell. Spotted a mistake? Please open an issue.
¹ Its own browser window, moved off screen or minimized once ChatGPT is ready. ² A browser on a virtual display (Xvfb) on the server, or headless.
Codex users already have built-in image generation; Backdraw is mainly for Claude Code, the Claude desktop app and VS Code.
How it works
mcp-server.jsis what Claude talks to. It forwards every tool call tohost.js.host.jsis started by Chrome when the extension connects. It runs the job queue (one job at a time), saves the images and keeps the job history in%USERPROFILE%\.backdraw\data.- The extension opens chatgpt.com in a background tab, inside the ChatGPT Project you selected. The tab is never activated and is muted, no window takes focus, and your mouse and keyboard are never used: only synthetic events inside that one tab. The tab closes when the job is done, unless you are looking at it.
- No API key. Backdraw uses the ChatGPT session you already have in Chrome. It never reads cookies, tokens or passwords.
- Nothing leaves your PC except what you send to ChatGPT (the prompt and any reference images). There is no Backdraw server and no telemetry.
Images are saved in your Pictures folder under Backdraw, named after the time and the prompt, e.g.
20261021-153012_a-cozy-reading-nook.png.
Requirements
Windows only for now — the code is split into a platform module and macOS/Linux contributions are
welcome. Everything OS-specific (named pipe, native host registration, user folders) lives in
platform/win32.js.
Installation
Quick install
Run this in PowerShell or cmd (no admin rights needed):
It runs the backdraw package from npm.
setup does everything except one click in the browser:
-
It copies Backdraw to
%USERPROFILE%\.backdraw(npx's own copy is temporary) and sets up the images folderPictures\Backdraw(reference collections go toPictures\Backdraw\References). Running it again updates Backdraw and keeps your settings, job history and collections. -
It registers the native messaging host for your Windows user, for each browser it finds (Chrome, Edge, Brave, Chromium).
-
It lists the MCP clients it finds (Claude Code, the Claude desktop app, Codex, Cursor, VS Code, Gemini CLI) and asks which ones to add Backdraw to. Only the
backdrawentry is added or updated, and every config file gets a timestamped.bakcopy before it changes.--yestakes every client it found;--clients=claude-code,cursortakes exactly those. -
It opens the extension folder and your browser's extensions page, copies the folder path to the clipboard, and waits for you to load the extension, the one step left to you:
- turn on Developer mode (top right),
- click Load unpacked,
- pick the folder (paste the path with Ctrl+V).
As soon as the extension connects, setup prints ✓ Ready and an example prompt.
The native host is still named io.github.muhammedtalha04.backdraw, after the project's old GitHub
user name: renaming it would break existing installs.
Install from your client
Your MCP client can also add Backdraw itself; it then starts the server with
npx backdraw@latest mcp. The browser side still needs a one-time setup on the PC, which leaves the
clients alone:
On Windows the command goes through cmd /c, because clients start npx without a shell. Use one
way per client: if setup already added Backdraw to Claude Code, the plugin would start a second
server with the same tools.
Manual install
-
Get the code. Clone the repository with git, or download it as a ZIP (Code → Download ZIP) and unzip it:
-
Run the installer in that folder (no admin rights needed):
It does steps 1 and 2 above and adds Backdraw to Claude Code (user scope). For the other clients, run
node bin/backdraw.js setupinstead, or see Use it. -
Load the extension once: open
chrome://extensions, turn on Developer mode, click Load unpacked and select%USERPROFILE%\.backdraw\extension.
Finish in the popup
- Open the popup. Click the Backdraw icon in the toolbar (pin it from the puzzle-piece menu).
Until everything works, the popup shows a setup checklist with the fix for each step:
- the bridge is connected,
- you are signed in to ChatGPT,
- a ChatGPT Project is selected,
- ready: an example prompt to copy into Claude.
- Create and select a ChatGPT Project. In ChatGPT, create a Project for your images (for example "Backdraw"), open it, click the Backdraw icon and press Use the “Backdraw” project. You can also ask Claude: "Select my Backdraw project in ChatGPT for images." Every new image chat is created inside that Project.
The popup also has a language (Auto / English / Türkçe) and a theme (Auto / Light / Dark) setting.
If something doesn't work, run npx backdraw@latest doctor.
Use it
From Claude Code
Start a new Claude Code session after installing (MCP servers are loaded when a session
starts) and ask in plain words, in any language. The backdraw server gives Claude these tools:
generate_image, job_status, cancel_job, fetch_images, list_projects, select_project and
list_collections (see Tools reference).
From the Claude desktop app (chat)
The desktop app keeps its own MCP config for chats. Claude rewrites that config when it exits, so Backdraw only changes it while Claude is closed. If setup found Claude running, add Backdraw later:
-
Quit Claude completely, also from the system tray.
-
Run this from PowerShell (not from a Claude session):
(From a manual install:
node install.js --desktopin~\.backdraw.) A timestamped.bakcopy of each config file is written before it is changed. -
Start Claude again. Backdraw is available in new chats.
From other MCP clients
setup adds Backdraw to Codex, Cursor, VS Code and Gemini CLI too: pick them when it asks, or run
npx backdraw@latest setup --clients=codex,cursor,vscode,gemini. It writes the full path of
node.exe as the command, so a client that doesn't see your PATH still finds it. Restart the
client or start a new session afterwards.
VS Code and Gemini CLI allow comments in their config files. Rewriting such a file would drop the comments, so setup leaves a file with comments alone and tells you; add the entry by hand then.
Backdraw is a plain stdio MCP server: node %USERPROFILE%\.backdraw\mcp-server.js. To add it by
hand, use the examples below. In the config files, replace C:/Users/you with your home folder
(echo %USERPROFILE% in cmd prints it). Forward slashes work on Windows and need no escaping in
JSON. ~ below is your home folder. The PowerShell commands fill in the path themselves.
Codex (the CLI, the IDE extension and the app share ~\.codex\config.toml;
docs). From PowerShell:
or in config.toml:
Cursor (~\.cursor\mcp.json for all projects, or .cursor\mcp.json in a project;
docs). Cursor fills in ${userHome} itself:
VS Code (GitHub Copilot agent mode: run MCP: Open User Configuration for every workspace,
or create .vscode\mcp.json in one; docs).
Here the key is servers and type is required:
Gemini CLI (~\.gemini\settings.json;
docs). -s user
adds it for all projects (the default is the current project only). From PowerShell:
or in settings.json:
Example prompts
To edit an image, Backdraw needs it as a file on your PC: give Claude its full path (type or paste
it) so Claude can pass it in reference_images. Files saved by earlier calls work directly. A fresh
chat with the image attached is the most reliable way to edit.
You can also ask "What's the status of the ChatGPT image job?" or "Cancel it."
Reference collections
Collect images from the web, then use them as references.
- Right-click an image on any web page → Add to Backdraw → pick a collection, or New collection… (a small window asks for the name).
- A short note in the page confirms it, e.g. "Added to Cats · 5 images". On pages where Chrome doesn't let extensions show anything, the toolbar icon flashes a ✓ (or a red ! on error) instead.
- Ask Claude to use the collection by name.
Each collection is a folder Pictures\Backdraw\References\<collection>\ with the images (named by
Backdraw: 001_<name>.png, …), a collection.json with the source page and date of each image,
and a thumbs\ folder. Adding the same image to a collection twice keeps one copy. PNG, JPEG, WebP
and GIF are kept as they are; other formats Chrome can show (such as AVIF, BMP or SVG) are saved as
PNG. If you delete an image file by hand, it drops out of the collection.
The popup's Collections section lists your collections. Open one to see its thumbnails, delete images, or rename or delete the collection.
A request uses the newest images of the collection that fit in the free slots. To use specific
ones, name them: Claude passes their file names (from list_collections) in reference_files.
Sizes and transparency
aspect_ratio
W:H with whole numbers, anywhere from 1:4 to 4:1: 1:1, 3:2, 2:3, 4:5, 16:9, 9:16,
5:2 (Discord banner), 3:1, 4:1, … 1920:1080 is reduced to 16:9; write 3:2, not 1.5:1.
A few names work too: square, landscape (3:2), portrait (2:3), wide (16:9), tall (9:16),
discord-banner (5:2).
- 1:3 to 3:1: ChatGPT draws these itself, at about 1.57 megapixels in the asked shape. Observed in October 2026: 1254×1254 (1:1), 1536×1024 (3:2), 1672×941 (16:9), 1983×793 (5:2).
- Up to 4:1 / 1:4: ChatGPT is asked for 3:1 (or 1:3) and told to keep subjects, faces and text inside the band that survives the crop; Backdraw then crops it from the centre.
- An image more than 1% off the asked ratio is cropped from the centre. The crop is the main file
(
<name>.png) and ChatGPT's original stays next to it as<name>_full.<ext>.output_dircopies get the main file only. - If ChatGPT drew another shape and the crop had to cut more than planned, the result warns you to check for cut-off subjects or text.
transparent_background
transparent_background: true asks ChatGPT for a PNG with an alpha channel that shows only the
subject. ChatGPT doesn't always deliver, so Backdraw checks the saved image: it reads the PNG header
(alpha channel or tRNS chunk) and measures the share of see-through pixels. The result says
either
or starts with ⚠ TRANSPARENT BACKGROUND MISSING (no alpha channel, or 2% or fewer of the pixels are transparent). Then
retry once in a fresh chat or remove the background with another tool. Previews of transparent
images are drawn over a checkerboard.
Gallery side panel
Click Open gallery in the popup to open Backdraw's side panel next to the page you are on. You can also right-click the Backdraw toolbar icon → Open Backdraw gallery.
- Top: the job in progress (step, job id and elapsed time; hover for ChatGPT's message), "Idle", or a not-connected notice.
- Gallery: your generated images, newest first, 12 at a time (Load more), each with a thumbnail, the date, the prompt (hover to see its first 300 characters), the size and, if one was asked, the aspect ratio.
- Per image: Open chat, Show in folder (Explorer with the file selected), Copy path and Add to collection (an existing collection or New collection…).
The gallery lists the images of the job history, which keeps the last 100 jobs. Thumbnails come from the previews, which are kept for 7 days; older images show a placeholder. The image files themselves stay in your images folder.
Tools reference
reference_images: local png / jpg / webp / gif files, up to 16; collection images fill the slots that are left.reference_files: file names fromlist_collections, to attach only those images ofreference_collection.conversation_url: ahttps://chatgpt.com/chat link. Fine for quick follow-ups; for exact edits a fresh chat withreference_imagesworks better.auto_reattach: if ChatGPT says it can't see the image and asks for it again, attach it automatically and ask once more.send_as_is: send the prompt word for word, without the short instruction Backdraw adds (e.g. to answer a question ChatGPT asked).output_dir: also copy the result into this folder; the images folder always keeps a copy.filename_hint: a few words naming the subject, used for the file name instead of the start of the prompt (handy when the prompt opens with instructions about the reference images).wait_seconds: 0 to 900.
What a result can say:
Fast return
Generating usually takes 1-3 minutes, but generate_image, fetch_images and job_status return
within 45 seconds by default (wait_seconds). If the image isn't ready yet, the result is
STILL RUNNING or QUEUED (with the queue position) plus a job id, and Claude calls
job_status(job_id, wait_seconds=45) again until the job is done.
Clients that reach your PC from the cloud often give up on a tool call after 60 seconds; the
45-second default keeps these calls under that limit. When the client asks for progress, Backdraw
sends progress notifications while it waits. Cancelling a tool call in the client only stops the
waiting; the job keeps running until cancel_job stops it.
CLI
For setup and troubleshooting, run these in the Backdraw folder (%USERPROFILE%\.backdraw, or the
folder you installed from). From anywhere, npx backdraw <command> runs the same commands, e.g.
npx backdraw status. npm run status is the same as node cli.js status. backdraw mcp runs
the MCP server itself on stdio; that is what MCP clients start.
Examples:
Doctor
doctor prints one line per check, ✓ (fine), ⚠ (worth a look) or ✗ (broken), each with a one-line
fix:
- Node.js version, the install folder, and that its files, the extension and this version match.
- The host manifest and, for each installed browser, the registry entry it really reads (also from inside the Claude desktop app's MSIX sandbox).
- Browser policies that switch off per-user native hosts (
NativeMessagingUserLevelHosts) or block them (NativeMessagingBlocklist). Only an administrator can change these. - The bridge (named pipe), the extension and its version, the ChatGPT sign-in as the extension last saw it, and whether a Project is selected.
- Every MCP client's Backdraw entry: there, and pointing to this install. It also says whether the Claude desktop app is running.
--fix rewrites the host manifest and the registry entries, and points client entries back at
this install (with a backup; the Claude desktop app only while it is closed). It says what it
couldn't fix. The output is safe to paste into an issue: your home folder is shown as ~, and
project names, prompts and chat links are never printed.
Troubleshooting
For a detailed log, run node cli.js debug on and look at %USERPROFILE%\.backdraw\logs\host.log
(turn it off again with node cli.js debug off).
If the ChatGPT web UI changes
Backdraw drives the chatgpt.com web page, so a redesign can break it (for example, it can no longer find the message box).
- Run
node cli.js diagnose(ornode cli.js diagnose <chat link>). It prints a summary of the page structure Backdraw sees;--selector CSSand--max Nnarrow it down,--workerlooks at the tab of the running job. - The selectors live in
extension/inpage.js. - After a fix, run
node install.jsagain: it copies the files and reloads the running extension. - Please open an issue with what changed. Remove personal details (chat titles, project names, prompts) from the diagnose output first.
Updating
On an update, setup changes only the MCP clients that already have a Backdraw entry and leaves npx entries as they are; add a new client with --clients=….
From a manual install: git pull (or download the ZIP again), then node install.js.
Both copy the new files over the old ones, keep your settings, job history and collections, register everything again and reload the running extension. If Chrome was closed, it loads the new version when it starts.
Coming from the "ChatGPT image bridge" (1.x)? Setup (or node install.js) migrates it: it copies the
settings and job history from %USERPROFILE%\.claude\chatgpt-image-bridge (never overwriting) and
removes the old native host and the old chatgpt-images MCP entry. Then, at chrome://extensions,
remove the old "Claude ChatGPT Görsel Köprüsü" extension and load %USERPROFILE%\.backdraw\extension
instead; the extension ID stays the same. Delete the old folder by hand once Backdraw works.
Uninstall
(From a manual install: node install.js --uninstall [--dry-run].) This removes the native host
registration of every browser, and the backdraw MCP entry from Claude Code, Codex, Cursor,
VS Code and Gemini CLI and, while Claude is closed, from the desktop app's config (each with a
backup), plus the names used by 1.x. Then remove the extension at chrome://extensions.
Your files are kept, in two places:
%USERPROFILE%\.backdraw: the program, your settings, the job history (with prompts), previews and logs.- The images folder,
Pictures\Backdrawby default: your generated images and, underReferences, your reference collections. The dry run lists the folders actually used, and so doesnode cli.js statusbefore you uninstall.
Delete these folders by hand if you want them gone. Coming from 1.x? Delete
%USERPROFILE%\.claude\chatgpt-image-bridge too.
Privacy & security
- Everything runs on your PC: no Backdraw server, no telemetry, no API key.
- Backdraw never reads cookies, tokens or passwords, and never automates logins or CAPTCHAs: you complete them yourself.
- The local bridge is a named pipe, not a network port, and the native host only accepts the Backdraw extension.
- Prompts, job history, previews and logs stay in
%USERPROFILE%\.backdraw(data\andlogs\). reference_imagescan attach any local file whose name ends in.png,.jpg,.jpeg,.webpor.gifto a ChatGPT message. Review Backdraw's tool calls when Claude works with content you don't trust.
Details, the threat model and how to report a vulnerability: SECURITY.md.
MCP protocol support
- 2026-07-28 (stateless): no handshake; each request names its version in
_meta;server/discoveris supported. - Legacy
initializehandshake: 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05. - Tool titles and annotations, progress notifications,
notifications/cancelledand JSON-RPC batches. An unsupported version gets error-32022with the list of supported ones.
Disclaimer and responsible use
- Personal use, your own account. Backdraw is made for one person generating images with their own ChatGPT account in their own Chrome. Don't use it to share an account, to generate images for other people as a service, or as the backend of a product.
- OpenAI's terms. OpenAI's Terms of Use say you may not "automatically or programmatically extract data or Output", nor get around rate limits or protective measures. Backdraw drives the ChatGPT web page for you, so using it may conflict with these terms. Read them and decide for yourself.
- The risk to your account is yours. OpenAI may limit, suspend or close an account it finds in breach of its terms. Backdraw comes without any warranty (MIT license), and its authors are not responsible for what happens to your account.
- One job at a time, at a human pace. There is a single queue: one prompt in one background
tab, and the next job starts only after the image is saved. Backdraw doesn't open parallel
chats, doesn't resend prompts on its own (apart from the single re-ask of
auto_reattach) and stops at every login or human-verification page until you finish it yourself. - Your normal limits apply. Every image counts toward your own ChatGPT usage limits.
- Not affiliated with, endorsed or sponsored by OpenAI or Anthropic.
License
來源:README.md,提交 8a5d3e8
工具
0版本歷史
3- v2.1.3最新Oct 29, 2026
- v2.1.2Oct 26, 2026
- v2.1.1Oct 25, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
