Open source · MIT · v0.1

The RAW editor your AI agent can drive.

Optixel Studio is a non-destructive RAW processor and photo catalog with a built-in MCP server. Edit by hand, ask in plain words, or let Claude cull and grade a whole shoot — every change stays undoable.

Tauri v2 · Rust · React 19 · SQLite · rawler

Intro

A full darkroom that speaks MCP.

Optixel Studio catalogs, culls and develops your photos where they already live — folders, NAS shares, cloud buckets, Immich and Google Photos — without ever touching the originals.

One Rust pipeline in linear Rec.2020 float renders the viewport, the MCP previews and the full-resolution export, so an agent sees exactly what you see. Every agent call is one undoable history step, logged in the photo's provenance.

🛡️

Non-destructive

Edits live in the catalog, standard Adobe .xmp, and .olxmp sidecars. Master RAWs remain untouched.

📷

Native C++ RAW Core

Embedded LibRaw C++ with AMaZE & RCD demosaicing, Canon CR3, Nikon HE, and Fuji X-Trans support.

🎨

Studio Color & GPU

32-bit ProPhoto & ACEScg via LittleCMS 2, printer soft-proofing, and AOT SPIR-V compute kernels.

🤖

Agent-ready MCP

Claude, Antigravity, Ollama, LM Studio, OpenAI, Gemini — full MCP tool and telemetry suite.

0MCP tools
0Auto functions
0Source types
0AI providers

Features

Everything from import to export.

Lightroom-class develop panels, Photoshop's everyday adjustments, and automation that runs on one photo or the whole catalog.

🗂️

Your photos, wherever they live

No import step. Add a folder, a network share or a cloud account and browse it in place. Immich albums page in 250 at a time; ratings and flags sync both ways. Duplicate copies between any two sources with SHA-256 verification.

  • Folders
  • SMB · AFP · NFS · WebDAV
  • S3 · B2 · R2 · Wasabi · MinIO
  • Dropbox
  • OneDrive
  • Immich
  • Google Photos
🎚️

Develop

White balance, tone, presence, parametric and point curves, 8-band colour mixer, Point Color, 3-way grading, detail, vignette, crop & straighten.

📷

Native C++ LibRaw Engine

Studio-grade decoding for Canon CR3 (C-RAW), Nikon high-efficiency NEF, Sony ARW, and Fuji X-Trans sensors. Pro demosaicing selector: AMaZE (anti-aliasing & low-ISO suppression), RCD (maximum edge sharpness), and LMMSE (high-ISO & astro).

🎨

LittleCMS2 Soft-Proofing

End-to-end 32-bit floating-point ProPhoto RGB and ACEScg pipeline. Load custom paper/printer .icc profiles with ink black-point compensation; unprintable out-of-gamut pixels flash in high-visibility neon overlays.

⚡

Lossless SIMD JPEG & Sidecars

Hardware-accelerated lossless JPEG cropping, rotation and mirroring with libjpeg-turbo without recompressing DCT blocks. Decode encrypted MakerNotes to draw exact active AF / eye-AF focus boxes (A); 2-way Lightroom .xmp sync.

🚀

AOT GPU Compute Kernels

Ahead-of-Time compiled binary SPIR-V bytecode embedded in the executable: local clarity/dehaze pyramids, 3D LUT trilinear interpolation, axial defringing, and 60 FPS real-time RGB Parade and Waveform scopes.

🧠

On-Device AI Models

Paint over unwanted objects for edge-snapped removal using LaMa or Stable Diffusion generative fill. Clean high-ISO noise with NAFNet. Everything stays in-place as non-destructive adjustment layers on the RAW master with zero duplicate files.

✦

AI Select & Agent Routing

"Select the castle" traces an edge-snapped mask. Connect Claude, Gemini, or local models to fine tune, color grade, or mask objects with natural language.

🎭

Masks

Linear, radial, luminance, colour range and AI outlines with add / subtract / intersect, feather and edge shift. Every panel tunes inside a mask.

📐

Advanced optics

Upright Auto / Level / Vertical / Full / Guided, lens distortion, auto chromatic aberration, defringe, calibration, grain, soft proofing.

⚡

Six Auto functions

Run on a selection, the current view or the whole catalog — cancellable, with results you can act on and Show in Library.

  • Catalog & Culling
  • Non-destructive Editing
  • AI Masking
  • Denoise & Super Resolution
  • Find blurred subjects
  • Find duplicates
🧪

Pro tab

Levels, Hue/Saturation with Colorize, Selective Color, Channel Mixer, Gradient Map, blur, posterize, threshold — as adjustment layers on any selection.

🔌

Built-in MCP server

Streamable HTTP on 127.0.0.1:41920 or stdio. Tools for query, culling, develop, masks, retouch, export and inspection.

📤

Export & upload

JPEG, AVIF, 16-bit PNG/TIFF in sRGB, Display P3 or Adobe RGB with ICC; Rec.2020 PQ HDR. Upload straight to Immich, Google Photos or cloud.

Supported storage & cloud services

Connect every drive, bucket and photo library.

Browse local folders and NAS shares in place, sync cloud folders on demand, and connect self-hosted or consumer photo libraries — without locking your RAW files into a proprietary vault.

Zero-Import Browsing OS Keychain Secrets SHA-256 Verified Copy
🖧

Local & Network (NAS)

Edited in place · live status dot
  • Local Folders & SSDsIn-place
  • SMB Network Sharessmb://
  • Apple Filing Protocolafp://
  • Unix NFS Mountsnfs://
  • WebDAV Network Driveshttps://
🏠

Self-Hosted & WebDAV

App passwords · folder sync & export
  • Immich Server2-way sync · stacks
  • NextcloudWebDAV
  • ownCloudWebDAV
  • Synology NASWebDAV HTTPS
  • pCloud & KoofrUS / EU WebDAV
🪣

S3 Object Storage

AWS SigV4 · read, sync & upload
  • Amazon S3Standard / IA
  • Cloudflare R2Zero egress
  • Backblaze B2S3-compatible
  • Wasabi Hot CloudS3-compatible
  • MinIO ServerSelf-hosted S3
☁️

Cloud & Photo Services

OAuth 2.0 PKCE · native libraries
  • DropboxOAuth PKCE
  • Microsoft OneDriveEntra OAuth
  • Google PhotosPicker API + Upload
  • Apple iCloud PhotosLibrary & Sync
  • Amazon & Adobe CloudRAW & CC Sync
🔒 Credentials stay in your OS keychain: API keys, WebDAV passwords, S3 secret keys and OAuth refresh tokens are stored in macOS Keychain, Windows Credential Manager or Linux Secret Service — never in settings.json. 🔁 Cross-source Duplicate: Copy or back up between any two sources with SHA-256 verification.

Feature demos

Try it right here.

Interactive browser re-creations of the app's main workflows, running on real CC0 landscape and portrait photographs.

DEVELOP · ADJUST

Sliders, profiles and one-click Auto

Drag the sliders, apply a profile, or switch between the Landscape and Portrait sample photos. ✦ Auto measures white balance and tone on the photo, then applies the profile's look. Applying a profile twice changes nothing; your other edits stay.

In the app, every change is a history step — ⌘Z to undo, \ for before/after, ⌘⇧C / V to copy and paste settings.

Eilean Donan Castle · Sorin Tudorut (CC0)
BEFORE / AFTER

See exactly what changed

Drag the handle across the portrait or landscape shot. The same Rust pipeline renders the viewport, the thumbnails, the MCP previews and the export — what you compare is what you ship.

Geometry is applied last in one resample, so masks, removals and guides stay pinned to the content.

Daytime Portrait · Corey Saldana
Before (RAW)After (Graded)
✦ SELECT · S

Click an object, get a mask

Click the castle, mountains, sky or lake in the landscape — or switch to the portrait and click the face, hair, outfit or stairs. In the app, the selected AI provider sees the photo with your click marked, traces the object, and snaps the outline to the photo's edges.

Each object becomes its own entry in Selections. While one is selected, every Develop panel tunes only inside it. ⌥-click subtracts; Esc goes back to the whole photo.

Click: castle · mountains · sky · lake
Click the castle, mountains, sky or lake
Selections (0)
AI TAB · ON-DEVICE NEURAL MODELS

In-place object removal and AI denoise

Paint over photobombers, power lines, or unwanted clutter with edge-snapping, then let LaMa or Stable Diffusion 1.5 fill the background naturally. High-ISO RAW shots are cleaned up using NAFNet neural denoising while preserving highlight headroom and fine texture.

Zero duplicate master files: Unlike conventional tools that write massive 250 MB -Enhanced-Removed.tif files, Optixel Studio composites neural patches non-destructively in-place right inside Develop. Adjust exposure, white balance, or denoise strength in real time!

LaMa 512
80%
Model: NAFNet · Real-time linear blending
✦ In-Place Layer: 1 Master RAW · 0 Duplicates
AUTO · CATALOG & CULLING

Cull a shoot in seconds

Measures sharpness on the main subject, clipping, noise and colour. Groups bursts by time and perceptual hash and picks the best of each, rejects blurred or blown-out frames, rates the rest 1–5 stars and adds keywords.

Turn on Auto Catalog & Culling of new photos and it runs in the background whenever a folder, drive or album gets new files.

12 photos selected

MCP · AGENTS

Hand the whole shoot to an agent

Connect Claude Code (or any MCP client) in one command. The agent queries the catalog, culls, develops, masks and exports through the same tools you use — and the open Develop view updates live.

Every mutating call is one undoable step, recorded in the photo's ai_provenance_log.

claude — optixel

      

Detailed usage

From first launch to first export.

A walkthrough of the everyday workflow. The full reference lives in the README and the guide/ folder.

Install & run

Download a release for your platform, or build from source with Node 20+ and stable Rust.

npm install
npm run tauri dev

The catalog lives in ~/Library/Application Support/org.optixel.studio/. Set OPTIXEL_DATA_DIR to use another folder. Release build: npm run tauri build.

Add your sources

The Library sidebar groups sources under Library, Folders and Cloud & services. Press + on a group to add one. There is no import step — opening a source picks up new files.

  • Folder: + › Folder… — photos stay where they are.
  • Network drive: smb://nas.local/photos, afp://, nfs:// or https:// (WebDAV). A dot shows if it is connected.
  • Cloud storage: WebDAV, S3-compatible, Dropbox or OneDrive in Settings › Locations. Keys go to the OS keychain, never settings.json.
  • Immich: server URL + an API key. Google Photos: Pick photos… through the Picker API.
optixel-studio --import ~/Pictures/Iceland   # headless, recursive

Cull

Select photos, open Auto › Catalog & Culling on the Library's right bar and press Run. Review the results list, then filter by rating, flag, label or keyword. Use Find blurred subjects and Find duplicates to clean up further. Open a photo full-size in the viewer with ← → to step through.

Develop

Open a photo in Develop. The right panel has five tabs:

  • Adjust — Basic tone, curves, colour mixer, Point Color, grading, detail, effects.
  • Advanced — lens corrections, Transform/Upright, calibration, noise, grain, spot removal (Q), soft proofing.
  • Pro — Levels, Hue/Sat, Selective Color, Channel Mixer, Gradient Map, filters, rotation.
  • AI — On-device neural models: Remove objects (paint, snap, LaMa / Stable Diffusion generative fill) and AI Denoise (NAFNet). Stored non-destructively as adjustment layers directly on the RAW master with real-time blending and zero duplicate files.
  • Auto — ✦ Auto, profiles, one-at-a-time autos, auto rotate, auto select & remove.

Ask the AI & Agent

Pick a provider in Settings › Agent & MCP (API keys go to the keychain, or read from ANTHROPIC_API_KEY, GEMINI_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY). Manage on-device models in Settings › AI models. Then type in the ✦ AI bar:

select the castle and warm it up a little
remove the people on the left
make it moody, keep the sky detail

Or press S and click objects. ✦ AI fine tune levels a tilted horizon first, then tunes the look.

Export

Choose JPEG, AVIF, 16-bit PNG/TIFF, colour space (sRGB, Display P3, Adobe RGB) and destination: a folder, Upload to Immich, Upload to Google Photos or a cloud account. Exports carry the capture date, so uploads land on the right day. Save to Immich stacks the edit on the original.

Connect an agent

The Agent & MCP tab shows the bearer token and copy-ready configs. The green MCP dot in the title bar means the server is running.

claude mcp add --transport http optixel http://127.0.0.1:41920/mcp \
  --header "Authorization: Bearer <token>"

Or over stdio — it forwards to the running app, or edits the catalog headless when the app is closed:

optixel-studio --mcp-stdio

Develop shortcuts

KeyAction
S✦ Select tool (click to trace an object)
QSpot removal
RCrop
JClipping warning
OMask overlay
\Before / after
[ ]Rotate 90°
Z / FZoom 2× / fit
+ −Zoom in / out
⌘Z · ⌘⇧ZUndo · redo
⌘⇧C / VCopy / paste settings
EscLeave tool or selection

MCP tools

ToolDoes
catalog_queryFind photos by folder, rating, flag, keyword
culling_batch_updateRatings, flags, labels, keywords
develop_apply_parametersAny Develop / Advanced / Pro value
develop_autoAuto to a profile
auto_runAny of the six Auto functions
mask_create_and_editCreate and tune selections
retouch_remove_objectsHeal outlines away
ai_reconstruct_and_retouchDenoise, super resolution
batch_exportRender and save / upload
photo_inspectPreview, histogram, telemetry

Promo guideline

How to show Optixel to the world.

A small press kit: brand, voice, the screens to capture, ready-made formats and copy, and a launch checklist.

1 · Brand

Two interlocking rings — cyan for the light you capture, amber for the light you shape. Keep the icon on dark or neutral backgrounds, with clear space of at least a quarter of its width.

Logo

Optixel icon on dark
Optixel icon on light
Optixel icon on brand gradient

Download icon.png (512 × 512). Full set in src-tauri/icons/.

Type & name

Write Optixel Studio — one word "Optixel". Short form: Optixel. Never "Opti Pixel" or "Optix".

Headlines in a system sans (SF Pro, Segoe UI, Inter) at bold weight, tight tracking. Code, tool names and shortcuts in a monospace.

Aa Optixel auto_run()

Light Cyan#25C6D8

Shape Amber#F6B930

AI Violet#A78BFA

Studio Dark#161616

UI Accent#0EA5E9

Click a swatch to copy its hex. Violet is reserved for anything AI (✦).

2 · Voice & taglines

Plain, concrete, confident. Say what the feature does, not how revolutionary it is. Show the agent working rather than claiming "AI-powered".

The RAW editor your AI agent can drive.
Edit by hand. Ask in plain words. Undo either.
Your photos stay where they are. Your originals stay untouched.
A full darkroom that speaks MCP.
Open source RAW editing, culling and cataloging — local-first, MIT.

3 · The six screens to capture

Shoot at 2880 × 1800 (Retina 1440 × 900 window), Studio Dark theme, a real catalog of a few hundred of your own photos, no personal paths or tokens visible. Hide the dock and menu bar extras.

01

Library grid

Sidebar with Folders, a NAS drive (green dot) and Immich connected. Stars, picks and colour labels visible on the grid.

Hero · App Store · README
02

Develop · Adjust

A strong landscape mid-edit, histogram and Basic panel visible, before/after split at 50%.

Feature · social
03

✦ AI Tab & In-Place AI

On-device object removal with LaMa / SD and NAFNet denoise running non-destructively as adjustment layers.

The money shot · every channel
04

Auto · Culling results

Right panel mid-run with the progress bar, results list on the left showing picks and rejects.

Feature · blog
05
› cull the Iceland shoot
⏺ auto_run(catalog_culling)
✓ 486 photos · 61 picks
⏺ develop_auto(Landscape)
✓ 61 edited

Agent side-by-side

Terminal with Claude Code on the left, the app on the right updating live as tools are called.

Video · launch post
06

Advanced · Upright

A tilted architecture shot with Guided Upright lines drawn, then the corrected result.

Pro audience · forums

4 · Formats

One idea per image: a single screen, one headline of six words or fewer, the logo. Keep text out of the outer 10% so platforms don't crop it.

Optixel Studio

The RAW editor your AI agent can drive.

1200 × 630 · Open Graph, X, LinkedIn, HN

Optixel

Click the castle. Get a mask.

1080 × 1080 · Instagram, Mastodon

Optixel

Cull 486 photos in one prompt.

1080 × 1920 · Stories, Reels, Shorts

5 · Ready-to-post copy

Pair each with screen 03 or a 20–40 s screen recording of the agent demo.

X / Bluesky / Threads

Optixel Studio is an open-source RAW editor with a built-in MCP server. Connect Claude, then: "cull the Iceland shoot, grade the picks for landscape, export for Immich." Every step is undoable. MIT · macOS / Windows / Linux github.com/rcwkan/optixel-studio

Show HN

Show HN: Optixel Studio – an open-source RAW editor that AI agents can drive over MCP Tauri + Rust, one linear Rec.2020 pipeline for viewport, previews and export, so the agent sees exactly what you see. Folders, NAS, S3, Immich and Google Photos browsed in place. Non-destructive, local-first, MIT.

Reddit · r/photography, r/selfhosted

I built a free, open-source Lightroom-style editor that works with Immich in place: ratings sync both ways, edits save as a stack on top of the original, and an Auto function culls a whole album (sharpness on the subject, bursts, exposure). Feedback welcome.

Hashtags, sparingly: #photography #RAW #opensource #MCP #selfhosted #Immich

6 · Do & don't

Do

  • Show real, unretouched app UI and real photos you own.
  • Show the before, the prompt and the after together.
  • Name what is local: the catalog, the MCP server, the keys.
  • Credit the stack: Tauri, Rust, rawler.
  • Link to the repo and the README.

Don't

  • Mock up features from the README's "Not yet" list (generative fill, face detection, CLIP search).
  • Show tokens, API keys, home paths or someone else's photos.
  • Use other products' logos or call it a Lightroom "replacement".
  • Stretch, recolour or add effects to the icon.
  • Claim speed numbers you haven't measured.

7 · Launch checklist

Bring your photos. Bring your agent.

Free and open source under the MIT License.

Copied