Gemini Super Power is a desktop creative workspace for iterative Gemini image generation. It combines generation history, branch navigation, reference management, layer masks, pixel-density inspection, PSD/layer export, and Electron packaging in a single app.
Gemini_Super_Power_Demo.mp4
- Gemini image generation with Flash and Pro image-preview models
- Branch-based node history with parent/child navigation
- Before/after lineage preview with
A,Up,Down, andSpace - Layer-based export package and PSD export
- Live layer mask painting on the generation canvas
- Dedicated Layer Mask Studio workspace
- Pixel density heatmap overlay
- Workspace/session persistence in IndexedDB
- Electron desktop packaging and auto-update support through GitHub Releases
- Vue 3
- TypeScript
- Pinia
- Tailwind CSS
- Vite
- Electron
- electron-builder
- electron-updater
- Node.js 20+ recommended
- npm
- A Google AI Studio API key for generation
- Install dependencies:
npm install- Start the desktop app in development:
npm run dev- Open the app and paste your Gemini API key in
Application Settings.
The app currently uses your Gemini API key from the UI or from .env.
Example:
VITE_GEMINI_API_KEY=AIzaSy...- Load or create a root image.
- Draw a selection on the canvas.
- Ref 1 is filled automatically from the active image if no explicit primary reference is set yet.
- Enter a prompt and generate.
- A new node is created with its own metadata, references, result images, and layer information.
A: hold to preview lineageUp/Down: move backward or forward through the active branch while holdingASpace: jump to the currently previewed lineage node while holdingA
In the generation sidebar:
X: switch brush mode betweenHideandRevealZ: toggleMask View/Live ViewCtrl+Z: undo last mask strokeCtrl+drag: pan the canvas when zoomed in
There is also a dedicated Layer Mask Studio tab for branch-wide mask editing.
From the active node you can export:
- Quick PNG
- Layer package folder
- PSD with positioned layers
The generation view includes a pixel-density panel in the bottom-right corner.
- It is closed by default
- It can be toggled independently from the main top capsule
- Opacity is adjustable with a slider
- Density is computed per layer from generated pixel dimensions versus the layer coverage area
Sessions are stored locally inside the Electron renderer profile through IndexedDB.
- Workspace metadata:
boldbrush_workspaces - Image blobs:
boldbrush-blobs(separate IDB store, native Blob format) - Legacy migration key:
boldbrush_history
Images are automatically extracted from workspace JSON and stored as native Blobs in a dedicated IndexedDB store. This keeps workspace saves fast (~50 KB metadata instead of hundreds of MB of inline base64). Migration from older inline formats is automatic on first load.
electron/ Main process + preload
public/ Icons and static assets
src/
components/ Shared UI and editor components
services/ Gemini, export, rendering, blob store, and utility services
stores/ Pinia application state
views/ Main app views
workers/ Web Workers (PSD export)
Create a packaged desktop build without publishing:
npm run buildCreate an unpacked app build:
npm run build:dirAuto updates are configured for GitHub Releases on:
zerr0o/gemini-super-power
To publish a release:
- Make sure the GitHub repository has been renamed to
gemini-super-power. - Create a GitHub token with release upload permissions.
- Copy
.env.publish.exampleto.env.publish.local. - Paste your token into:
GH_TOKEN=your_github_token- Run:
npm run publishThe publish script reads .env.publish.local first, then .env.publish, and only falls back to the current terminal environment if no project-specific publish file exists.
- Packaged builds check for updates automatically on startup
- Updates download in the background
- Downloaded updates install on quit
- Users can also trigger
Install & RestartfromApplication Settings
- Product name:
Gemini Super Power - App ID:
com.geminisuperpower.app - Windows target:
NSIS - Output folder:
release/<version>/
Some build steps require running outside the desktop sandbox. If vite build or electron-builder fails with spawn EPERM, rerun with elevated permissions from the Codex desktop workflow.
Check the following:
- The packaged app was built from a release configuration
- The GitHub repository exists under the renamed slug
- Release assets and update metadata were published successfully
- The user is running an installed packaged build, not the dev server
- The published version is newer than the installed one according to semver
Workspace data is only persistent after a successful IndexedDB save. If the app was reloaded while persistence was failing, the missing nodes may not be recoverable automatically.
This project is licensed under CC BY-NC 4.0 (Creative Commons Attribution-NonCommercial 4.0 International).
0.5.1



