{"id":50813174,"url":"https://github.com/comfy-org/comfy-desktop","last_synced_at":"2026-06-13T07:01:45.198Z","repository":{"id":338238434,"uuid":"1156928425","full_name":"Comfy-Org/Comfy-Desktop","owner":"Comfy-Org","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-11T05:53:38.000Z","size":11758,"stargazers_count":97,"open_issues_count":96,"forks_count":13,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-11T06:22:52.423Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Comfy-Org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-13T08:09:29.000Z","updated_at":"2026-06-11T05:51:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Comfy-Org/Comfy-Desktop","commit_stats":null,"previous_names":["kosinkadink/comfyui-launcher","comfy-org/comfyui-launcher","comfy-org/comfy-desktop"],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/Comfy-Org/Comfy-Desktop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comfy-Org%2FComfy-Desktop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comfy-Org%2FComfy-Desktop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comfy-Org%2FComfy-Desktop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comfy-Org%2FComfy-Desktop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Comfy-Org","download_url":"https://codeload.github.com/Comfy-Org/Comfy-Desktop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Comfy-Org%2FComfy-Desktop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34275068,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-13T07:01:44.009Z","updated_at":"2026-06-13T07:01:45.167Z","avatar_url":"https://github.com/Comfy-Org.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"assets/Comfy_Logo_x512.png\" alt=\"Comfy Desktop\" width=\"128\" /\u003e\n\n# Comfy Desktop\n\n**Install, run, and manage [ComfyUI](https://github.com/Comfy-Org/ComfyUI) from one app — no dependency hell.**\n\n[![Release](https://img.shields.io/github/v/release/Comfy-Org/Comfy-Desktop?display_name=tag\u0026style=flat\u0026label=release\u0026color=4f46e5)](https://github.com/Comfy-Org/Comfy-Desktop/releases/latest)\n[![CI](https://img.shields.io/github/actions/workflow/status/Comfy-Org/Comfy-Desktop/ci.yml?branch=main\u0026style=flat\u0026label=CI)](https://github.com/Comfy-Org/Comfy-Desktop/actions/workflows/ci.yml)\n[![License](https://img.shields.io/github/license/Comfy-Org/Comfy-Desktop?style=flat\u0026color=blue)](LICENSE)\n[![Stars](https://img.shields.io/github/stars/Comfy-Org/Comfy-Desktop?style=flat\u0026logo=github\u0026color=f5c518)](https://github.com/Comfy-Org/Comfy-Desktop/stargazers)\n[![Discord](https://img.shields.io/badge/Discord-comfy.org-5865F2?style=flat\u0026logo=discord\u0026logoColor=white)](https://www.comfy.org/discord)\n![Platforms](https://img.shields.io/badge/platforms-Windows%20·%20macOS-555?style=flat)\n\n[**Download**](#download) · [**Getting Started**](#getting-started) · [**Contributing**](#development) · [**Discord**](https://www.comfy.org/discord)\n\n\u003c/div\u003e\n\n---\n\nComfy Desktop is the official desktop application for **ComfyUI**, the node-based engine for generative AI. It installs ComfyUI into a self-contained, GPU-ready environment, lets you run **multiple independent setups side by side**, and keeps them updated — so you spend your time building workflows instead of fighting Python, CUDA, and pip.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/hero.png\" alt=\"Comfy Desktop — run multiple ComfyUI installs side by side from one app\" width=\"820\" /\u003e\n\u003c/div\u003e\n\n## Features\n\n- 🧩 **Multiple installs, side by side** — run as many independent ComfyUI setups as you like, each with its own version, models, and custom nodes. Switch between them without conflicts.\n- 📦 **Isolated, GPU-ready environments** — each install ships a relocatable Python with PyTorch and GPU wheels prebuilt. No pip/uv failures, no CUDA roulette at install time.\n- 🔄 **One-click updates** — update ComfyUI (and custom nodes) to the latest version in place. No terminal, no git, no re-downloading the multi-gigabyte environment.\n- 📸 **Snapshots \u0026 rollback** — back up an install and restore it if an update or a custom node breaks something.\n- 📥 **Bring your existing setup** — adopt and migrate existing ComfyUI installations (portable, git, or a previous desktop install) in place.\n- 🖥️ **Cross-platform** — Windows, macOS, and Linux.\n- ⬆️ **Built-in auto-updates** — the app keeps itself current.\n- 🛠️ **Works without system Git** — bundles a tiny Python + `pygit2` bootstrap so clones work on a clean machine.\n\n## Download\n\n\u003cdiv align=\"center\"\u003e\n\n[![Download Comfy Desktop](https://img.shields.io/badge/⬇%20Download%20Comfy%20Desktop-Windows%20·%20macOS-4f46e5?style=for-the-badge)](https://dl.todesktop.com/241130tqe9q3y)\n\n**[dl.todesktop.com/241130tqe9q3y](https://dl.todesktop.com/241130tqe9q3y)** — one link, auto-detects your platform.\n\n\u003c/div\u003e\n\n\u003e **New to ComfyUI?** Just download, install, and open the app — it walks you through creating your first setup. No terminal required.\n\n**Requirements:** Windows, macOS (Apple Silicon), or Linux. A dedicated GPU (NVIDIA / AMD) or Apple Silicon is recommended for good performance, but not required.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eInstall instructions per platform\u003c/b\u003e\u003c/summary\u003e\n\n**Windows** — run the NSIS installer (`.exe`) and launch from the Start Menu or desktop shortcut.\n\n**macOS** — open the `.dmg`, drag **Comfy Desktop** to Applications, and launch from there.\n\n**Linux** — `.deb` (Debian/Ubuntu), from the directory you downloaded it to:\n```bash\nsudo apt install ./*.deb\n```\nAppImage:\n```bash\nchmod +x ./*.AppImage\n./*.AppImage --no-sandbox\n```\nThen launch from your application menu.\n\n\u003c/details\u003e\n\n## Getting Started\n\n1. **Download and install** Comfy Desktop for your OS (above).\n2. **Launch the app.**\n3. **Create a new install** — pick a standalone, GPU-ready environment and Comfy Desktop downloads and provisions it for you. (Already have a ComfyUI install? Import it instead.)\n4. **Hit launch** — the app starts ComfyUI and opens it, ready to build.\n\nFrom there you can add more installs, take snapshots before risky changes, and update ComfyUI or its custom nodes per install.\n\n## Development\n\nContributions are welcome. The app is an [Electron](https://www.electronjs.org/) + [Vue 3](https://vuejs.org/) + [TypeScript](https://www.typescriptlang.org/) project built with [electron-vite](https://electron-vite.org/).\n\n### Prerequisites\n\n- [**Node.js**](https://nodejs.org/) v22 LTS or later\n- [**pnpm**](https://pnpm.io/) v10 or later (via Corepack)\n\n```bash\nnvm install 22 \u0026\u0026 nvm use 22   # recommended — https://github.com/nvm-sh/nvm\ncorepack enable                # enables pnpm (bundled with Node)\n```\n\n### Setup\n\n```bash\ngit clone https://github.com/Comfy-Org/Comfy-Desktop.git\ncd Comfy-Desktop\npnpm run init\n```\n\n`pnpm run init` is the one-shot for a fresh clone: it runs `pnpm install` (with the `postinstall` + husky hooks) and `pnpm run bootstrap` to build the bundled bootstrap Python (see below).\n\n### Run in development\n\n```bash\npnpm run dev               # Windows / macOS\n./linux-dev.sh             # Linux\n```\n\n### Common tasks\n\n| Command | Description |\n|---|---|\n| `pnpm run dev` | Start the app in dev mode |\n| `pnpm test` | Unit tests ([Vitest](https://vitest.dev/)) |\n| `pnpm run test:integration` | Integration suite |\n| `pnpm run test:e2e` | End-to-end tests ([Playwright](https://playwright.dev/)) |\n| `pnpm run typecheck` | Type-check (node + web + e2e + integration) |\n| `pnpm run lint` / `lint:fix` | Lint (ESLint) |\n| `pnpm run format` | Format (Prettier) |\n| `pnpm run build:{win,mac,linux}` | Build local distributables → `dist/` |\n\n### Project structure\n\n```\nsrc/\n  main/          # Electron main process (TypeScript)\n    sources/     # Install-method plugins (standalone, portable, git, …)\n    lib/         # Shared main-process logic + IPC\n  preload/       # Context-bridge preload scripts\n  renderer/src/  # Vue 3 renderer (components, composables, stores, views)\n  types/         # Shared IPC types (single source of truth)\nlocales/         # i18n translations\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eBootstrap Python\u003c/b\u003e (the bundled Git backend)\u003c/summary\u003e\n\nThe app ships a minimal (~15–20 MB) standalone Python with `pygit2` baked in, under `bootstrap-python/\u003cplatform\u003e/`. It provides git operations (clone, fetch, ls-remote) before any standalone ComfyUI environment is provisioned, so the app works on machines without system `git`.\n\n| Command | What it does |\n|---|---|\n| `pnpm run bootstrap` | Build locally via `scripts/build-bootstrap-python.py` (requires Python 3.13). Auto-detects the host platform; pass `--platform win-x64\\|mac-arm64\\|linux-x64` for another. |\n| `pnpm run bootstrap:fetch` | Download a prebuilt archive from the [`bootstrap-v1`](https://github.com/Comfy-Org/Comfy-Desktop/releases/tag/bootstrap-v1) release (faster; no local Python needed). Set `GITHUB_TOKEN` to authenticate. |\n\nBoth write to `bootstrap-python/{win-x64,mac-arm64,linux-x64}/` (gitignored). The directory must exist before `pnpm run dev` or `pnpm run build:*`.\n\nAt runtime the main process picks a git backend in priority order ([`src/main/lib/ipc/index.ts`](src/main/lib/ipc/index.ts)): bootstrap pygit2 → standalone-install pygit2 → system `git`. Set `COMFY_FORCE_BOOTSTRAP_GIT=1` (or `pnpm run dev:bootstrap`) to verify the bundled path that ships to users without git.\n\n\u003c/details\u003e\n\n## Releasing\n\n\u003e Production builds go through [ToDesktop](https://www.todesktop.com/) in CI — nothing is built locally. Any maintainer can cut a release; it's one workflow run plus a PR merge.\n\n**To ship a release:**\n\n1. Open the **[Version Bump](../../actions/workflows/version-bump.yml)** workflow → **Run workflow**, and choose:\n   - **`channel`** — `stable` for a real release (promotes to **Latest**), or `rc` for a pre-release test build.\n   - **`bump`** — `patch` / `minor` / `major`.\n2. It opens a **`chore: bump version to vX.Y.Z`** PR, authored by **`cloud-code-bot`** and labeled **`Release`**.\n3. **Review, approve, and merge** that PR.\n4. The rest is automatic — merging tags `vX.Y.Z`, which triggers the ToDesktop build and ships the new version to Desktop users. No manual tagging, no draft to publish.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003ePipeline \u0026amp; config\u003c/b\u003e\u003c/summary\u003e\n\nThree workflows in [`.github/workflows/`](.github/workflows/):\n\n| Workflow | Trigger | Role |\n|---|---|---|\n| `version-bump.yml` | manual (**Run workflow**) | Opens the version-bump PR (bot-authored) and labels it `Release`. |\n| `release-from-pr-label.yml` | `pull_request_target: closed` | On merge of a `Release`-labeled PR, tags `vX.Y.Z` and dispatches the build. |\n| `build-release.yml` | push of a `v*` tag | Runs `pnpm run build`, uploads Datadog sourcemaps, runs `todesktop build`, and publishes the GitHub Release (`stable` → Latest, `-rc` → pre-release). |\n\nCLI equivalent of step 1:\n```bash\ngh workflow run version-bump.yml -f channel=stable -f bump=patch\n```\n\n**GitHub Actions config:**\n- Variable `APP_ID` + secret `CLOUD_CODE_BOT_PRIVATE_KEY` — the `cloud-code-bot` GitHub App that opens the version-bump PR, so any maintainer can release without a personal token.\n- Secrets `TODESKTOP_ACCESS_TOKEN`, `TODESKTOP_EMAIL` (ToDesktop CLI) and `DATADOG_API_KEY` (RUM sourcemaps).\n\n\u003c/details\u003e\n\n## Data \u0026amp; Troubleshooting\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eData locations\u003c/b\u003e\u003c/summary\u003e\n\nOn Windows/macOS, app data lives under the standard Electron `userData` path. Dev and production use **separate** directories because Electron derives the name from `package.json` `name` (`comfyui-desktop-2`) in dev vs `productName` (`Comfy Desktop`) in packaged builds:\n\n| | Windows | macOS | Linux |\n|---|---|---|---|\n| **Dev** | `%APPDATA%\\comfyui-desktop-2` | `~/Library/Application Support/comfyui-desktop-2` | `~/.config/comfyui-desktop-2` |\n| **Production** | `%APPDATA%\\Comfy Desktop` | `~/Library/Application Support/Comfy Desktop` | `~/.config/Comfy Desktop` |\n\nOn Linux the app follows the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/latest/) for config, data, cache, and state. The default install directory is `~/ComfyUI-Installs`.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eReset / clean install\u003c/b\u003e\u003c/summary\u003e\n\nIf a manual update leaves the app broken (no styling, dead dropdowns — usually a stale Chromium profile), the [`scripts/reset-*`](scripts/) helpers wipe every known data location. They **prompt before deleting** and **do not touch** your `~/ComfyUI-Installs`.\n\nQuit the app first, then:\n\n```powershell\n# Windows (PowerShell)\niwr -useb https://raw.githubusercontent.com/Comfy-Org/Comfy-Desktop/main/scripts/reset-windows.ps1 -OutFile reset-windows.ps1\npowershell -ExecutionPolicy Bypass -File .\\reset-windows.ps1\n```\n```sh\n# macOS\ncurl -fsSLO https://raw.githubusercontent.com/Comfy-Org/Comfy-Desktop/main/scripts/reset-mac.sh \u0026\u0026 bash reset-mac.sh\n# Linux\ncurl -fsSLO https://raw.githubusercontent.com/Comfy-Org/Comfy-Desktop/main/scripts/reset-linux.sh \u0026\u0026 bash reset-linux.sh\n```\n\nPass `--yes` (or `-Yes` on Windows) to skip the prompt. After cleanup, reinstall from the latest release. You may need to re-add installations via **\"Add existing installation\"** since `installations.json` is wiped too.\n\n\u003c/details\u003e\n\n## Contributing\n\nIssues and pull requests are welcome. Before opening a PR, please run `pnpm run typecheck`, `pnpm run lint`, and `pnpm test` locally — see [Development](#development). For coding conventions, see [`AGENTS.md`](AGENTS.md).\n\n## Community\n\n- 💬 **Discord** — [comfy.org/discord](https://www.comfy.org/discord)\n- 🌐 **Website** — [comfy.org](https://www.comfy.org)\n- 🐛 **Issues** — [GitHub Issues](https://github.com/Comfy-Org/Comfy-Desktop/issues)\n- 🧠 **ComfyUI** — [github.com/Comfy-Org/ComfyUI](https://github.com/Comfy-Org/ComfyUI)\n- 📦 **Standalone Environments** — [ComfyUI-Standalone-Environments](https://github.com/Comfy-Org/ComfyUI-Standalone-Environments)\n\n## License\n\nReleased under the [MIT License](LICENSE). © Comfy Org.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomfy-org%2Fcomfy-desktop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomfy-org%2Fcomfy-desktop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomfy-org%2Fcomfy-desktop/lists"}