A desktop image editor faithfully replicating classic Adobe Photoshop (~2020) with 1:1 native PSD/PSB compatibility.
Quick Start • Downloads • Screenshots • What This Is • Features • Supported Formats • Documentation • Building & Testing
# Clone with submodules included
git clone --recursive https://github.com/eolix/photosuite.git
cd photosuite
# Install dependencies and start in development mode
npm install
npm run devNote: If already cloned without
--recursive, initialise submodules before starting:git submodule update --init --recursive
Pre-built binary packages are available on the Releases page:
Click any image for the full-resolution version.
PhotoSuite is a full-featured desktop raster and vector graphics editor designed with fidelity in mind rather than reinterpretation. Panels sit where you expect them, shortcuts match your muscle memory, dialogs expose identical fields, and tools behave exactly like the originals — right down to modifier keys. If you know Photoshop ~2020, you already know PhotoSuite.
- PSD/PSB Native Format: PSD is the native format, not a lossy import filter. Documents round-trip cleanly through the binary format: layer records, masks, blending modes, channel data, descriptors, layer effects, smart-filter stacks, text engine data, vector paths, slices, and colour profiles. A file saved in PhotoSuite opens in Photoshop with its layer tree intact, and vice versa. PSB is supported for large documents.
- Offline-First & Private: Built as a Tauri v2 application. The editor runs HTML5, WebAssembly, and WebGL inside the system webview, backed by a lightweight Rust host for filesystem access, native menus, dialogs, clipboard, and printing. Everything stays local on your machine with zero telemetry or cloud requirements.
Disclaimer: Not affiliated with or endorsed by Adobe. Photoshop is a registered trademark of Adobe Inc., referenced here solely to describe the interface and behavioral specifications this project aims to replicate.
-
Layer Engine & Styles: - Raster layers, vector layers, layer groups, clipping masks, and layer masks.
- 1:1 Photoshop layer styles: Drop Shadow, Inner Shadow, Outer Glow, Inner Glow, Bevel & Emboss, Satin, Color Overlay, Gradient Overlay, Pattern Overlay, and Stroke.
- Smart Objects and Smart Filter stacks with non-destructive editing.
- Layer Comps palette and tracker.
-
Tools & Canvas Experience: - Complete toolset: Marquee, Lasso, Magic Wand, Crop, Brush, Clone Stamp, Healing Brush, Eraser, Gradient, Blur/Sharpen, Dodge/Burn, Pen, Type, Shapes, Hand, Zoom, and Eyedropper.
- Full canvas panning, zooming, rotation, pixel grid, rulers, and custom guides.
- Deep History palette with snapshot support.
-
Filters & WebAssembly Acceleration: - Classic Filter Gallery with multi-band runner and live thumbnails.
- Liquify with interactive mesh warping.
- Lens Correction backed by the Lensfun database.
- WebAssembly-powered image processing (blur, median, WebP encode/decode, zstd compression, etc.).
-
Vector Geometry & Advanced Typography:
-
Automation, Scripting & Extensibility: - Photoshop Actions (.atn) parser and playback engine.
- JavaScript/JSX scripting engine powered by Acorn.
- Sandboxed sidebar plugins using plain HTML, CSS, and JavaScript communicating via IPC (see PLUGINS.md).
- Photoshop Actions (
-
Native Desktop Integration: - Native OS menus via Tauri.
- Direct printing support (CUPS on macOS/Linux, Windows Spooler on Windows).
- Drag-and-drop file loading and native OS file dialogs.
PhotoSuite opens and exports a comprehensive range of raster, vector, and digital design formats:
Comprehensive architecture guides and development documentation are located in docs/:
- Node.js: v25 or newer
- Rust: Current stable toolchain (rustup)
- Tauri Prerequisites: Platform dependencies for Tauri v2
npm run dev # Launch the app from source with Tauri
npm run build # Build the production application bundle for your current platform
npm test # Run the behavioral test suite (1,600+ tests)
npm run verify # Verify imports, cyclic dependencies, static bindings, and bootstrap
npm run lint # Run ESLint across src/Automated cross-platform builds (macOS universal, Linux deb/rpm, Windows x64) are run on every release tag via GitHub Actions.
The primary inspiration for this project is Photopea, Ivan Kutskir's browser-based editor, which demonstrated that a desktop-class image editor with complete PSD fidelity is achievable in a web runtime. The author has also open-sourced many format libraries utilised by this project. An archive snapshot is available at ruanjiyang/Photopea-Offline.
All third-party libraries live in src/vendor/ as pinned git submodules with their respective upstream licenses:
- From the Photopea Author: UPNG.js (PNG/APNG), UTIF.js (TIFF), UZIP.js (ZIP/deflate), Typr.js (font parsing & shaping), UTEX.js (TeX typesetting). All MIT.
- Core Libraries: pako (zlib, MIT), Paper.js (vector geometry, MIT), omggif (GIF, MIT), js-sha1 (MIT), acorn (JS parser, MIT), linear-solve (MIT), parse-exr (OpenEXR, MIT), pdf.js (JPEG/JPX/JBIG2 codecs, Apache-2.0), PDFI.js (PDF/PS/EMF/WMF, MIT).
- WebAssembly Modules: HarfBuzz (text shaping, MIT), FriBidi (bidirectional text, LGPL-2.1+), libwebp (BSD-3), zstd (BSD-3), stb_image (Public domain / MIT), libheif (LGPL-3.0+).
- Data & Assets: Lensfun for camera and lens profile data (LGPL / CC), and Tabler Icons (MIT).