PhotoCraft: the open-source Photoshop rival you can drive from the terminal
Originally published at aifrontierpost.com
Photoshop rebuilt from scratch in Rust, with 74,000 stars in four weeks — and a command-line tool that edits real photos without ever opening a window. This guide downloads the real release, verifies its checksum, and runs every headless command that matters: inspect, edit, batch, convert, and MCP. No account, no API key, no GPU, and every number below is one the installed tool printed.
TL;DR: PhotoCraft (storytold/photocraft) is an open-source, pure-Rust Photoshop rebuild: version 0.17.0 ships a headless CLI that inspects, edits, batch-grades, converts (including PSD), and serves the engine over MCP — all verified here with no account, no API key, and no GPU. The desktop app is early alpha and was not tested; the CLI path is the proven one.
- Who: PhotoCraft (storytold/photocraft on GitHub), from the ArtCraft team — 74,359 stars, 7,040 commits, 13,130 forks, dual MIT/Apache-2.0, first committed September 30, 2026.
- What: a clean-room Photoshop rebuild in pure Rust, plus a headless CLI: info, run, batch, convert, commands, and an MCP server — verified here end to end.
- When: version verified in this guide is photocraft-cli 0.17.0, released and run October 28, 2026; star and commit counts are dated the same day.
- Requirement: a Linux, macOS, or Windows machine and ~200 MB of free disk for the prebuilt release. No account, no API key, no GPU, no Rust toolchain.
Why this is blowing up now
PhotoCraft is a clean-room reimplementation of Photoshop, written from scratch in pure Rust. Layers, masks, adjustment layers, layer styles, type, vectors, brushes, and real PSD files — in a native app with no Electron and no web view. The repository (storytold/photocraft on GitHub) had 74,359 stars, 7,040 commits, and 13,130 forks when this guide read it on October 28, 2026, under a dual MIT/Apache-2.0 license. It was created on September 30, 2026, which makes that star count a four-week sprint, not a slow accumulation. Version 0.17.0 landed the same day this guide ran, October 28, 2026.
The part that makes it tutorial-worthy instead of just impressive is not the GUI. It is the headless command-line tool that ships in the same release. Every menu item, tool, and dialog in PhotoCraft runs a command from one registry of 500+ commands, and the UI, the CLI, the JSON control channel, and the MCP server all call the same commands. That means anything you can click, a script can do too — and this guide proves it, because every command below was run on a headless Linux server with no display, no account, no API key, and no GPU.
One boundary first, because it decides whether this tutorial is for you. PhotoCraft is in early alpha, and its own README says so plainly: much of Photoshop's feature surface exists in some form, but it is not yet a Photoshop replacement for daily professional work. The gaps it names are AI/generative features, 15 missing tools, depth in typography and pro workflows, and plug-in compatibility. What this guide verifies is the headless editing path — install, inspect, edit, batch, convert, and hand the engine to an agent over MCP. If you need a finished desktop replacement today, this is not that article. If you want a scriptable, offline, open-source photo engine, keep reading.
What you'll need
- A Linux, macOS, or Windows machine. This guide ran on Linux (x86_64), using the prebuilt release tarball — no Rust toolchain, no source build, no compile wait.
- About 200 MB of free disk. The Linux tarball is 123 MB; extracted, it is roughly twice that.
- A terminal and a scratch directory with a photo or two to practise on. Do not practise on originals: the CLI overwrites nothing by default, but work on copies anyway.
- No account, no API key, no GPU, no sign-in of any kind for anything in this guide. The desktop app's smart-selection features run on your machine with no cloud and no account, per the README; the CLI path here touches no network at all after the download.
- Optional but useful: Python with Pillow, only if you want to diff pixels before and after like this guide did. It is not required for any step.
One photo in, one graded photo out: the CLI runs the same engine commands the desktop app runs. Image: AI Frontier Post.
Step 1: Get the real binary and check it
Download the release for your platform from the project's releases page. On Linux x86_64, the file is photocraft-0.17.0-linux-x86_64.tar.gz. The release also ships a SHA256SUMS.txt — check your download against it before you run anything from it:
curl -LO https://github.com/storytold/photocraft/releases/download/v0.17.0/photocraft-0.17.0-linux-x86_64.tar.gz
curl -LO https://github.com/storytold/photocraft/releases/download/v0.17.0/SHA256SUMS.txt
grep "linux-x86_64.tar.gz" SHA256SUMS.txt
sha256sum photocraft-0.17.0-linux-x86_64.tar.gz
Expected result, verified October 28, 2026: the hash printed by sha256sum is 5259f9c428c8ee3478c35500ece98713561cafc050e4c9eb354a5050f36eb2b8, matching the release checksum. If yours differs, stop — re-download, and do not run the binary.
Extract it and confirm the tool answers:
tar -xzf photocraft-0.17.0-linux-x86_64.tar.gz
./photocraft-0.17.0-linux-x86_64/bin/photocraft-cli --version
./photocraft-0.17.0-linux-x86_64/bin/photocraft-cli --help
Expected output:
photocraft-cli 0.17.0 (b8c3f3aa8, 2026-10-28)
The help listing shows eight subcommands: convert, info, run, batch, droplet, commands, mcp, and serve. This guide runs the first four plus commands and mcp. The tarball also contains the desktop app binary (photocraft), which needs a display and is not used here. Put the CLI on your PATH if you plan to use it regularly; the rest of this guide calls it as photocraft-cli for brevity.
Step 2: Inspect a photo before you touch it
Copy a photo into a scratch directory and ask the CLI what it sees. This guide used a 640×400 test image; substitute your own file:
mkdir photocraft-demo
cp your-photo.jpg photocraft-demo/
cd photocraft-demo
photocraft-cli info your-photo.jpg
Expected output (abridged): a JSON document describing the image — its channels (Red, Green, Blue), composite mode (RGB), and layer tree, starting with "activeLayer": 2 for a flat import. The info command changes nothing; it is the read-only way to confirm the CLI can parse your file before you build an edit chain on top of it. If info fails on your file, the edit steps will too, and you have found that out cheaply. Run it on every new format you plan to feed the tool: PNG, JPEG, WebP, TIFF, and PSD are all on the convert list, but your specific file is the only test that matters.
Step 3: Make your first headless edit
The core command is run: open a file, apply engine commands in order, save the result. This is the exact shape from the project's README, run here verbatim — a Smart Sharpen filter followed by a Curves adjustment layer:
photocraft-cli run your-photo.jpg \
--cmd filter.sharpen.smartSharpen --params '{"amount":80}' \
--cmd layer.newAdjustmentLayer.curves --params '{"points":[[0,0],[64,48],[192,212],[255,255]]}' \
--out graded-photo.png
Expected output, as printed by the run in this guide:
{"command":"filter.sharpen.smartSharpen","result":{"filter":{"amount":80.0,"filter":"smartSharpen","radius":1.0,"reduceNoise":10.0},"layer":2}}
{"command":"layer.newAdjustmentLayer.curves","result":{"layer":3}}
warning: 2 layer(s) flattened; layers, masks and blend modes are not kept
Read that output carefully, because it teaches you three things. First, every command echoes its result as JSON, so a script can check success per step instead of trusting an exit code alone. Second, the defaults are visible: Smart Sharpen at amount 80 also applied radius 1.0 and noise reduction 10.0, which the command line never mentioned — when you tune a look, query the result JSON to see what actually ran. Third, the warning is real and worth understanding: PNG output is flat, so the adjustment layer and the sharpened layer were flattened into one image. The layers survive only in layered formats (the native .pcraft format, PSD, or TIFF with the --tiff-layers flag in batch mode). If your workflow needs the layers back later, export to a layered format; if you need a finished file for the web, PNG is the right, honest end of the chain.
Verify the edit did something, rather than assuming it. Open both files and compare: the output keeps the input's dimensions (640×400 in this guide's test) and the pixels change — a sample pixel moved from RGB (240, 230, 180) to (247, 241, 199) after the sharpen-plus-curves chain. Your numbers will differ with your photo and your curve points; what matters is that you check, because a command that silently no-ops is worse than one that errors.
To find more commands, ask the registry itself instead of guessing names:
photocraft-cli commands | grep -i -E "vibrance|curves|levels|hue"
This lists real, callable command IDs with their menu paths — for example layer.newAdjustmentLayer.vibrance, image.adjustments.levels, and layer.newAdjustmentLayer.hueSaturation. Every command in this guide came from that list or from the README; none was invented, and you should hold any other tutorial to the same rule.
Step 4: Grade a whole folder with one recipe file
Single-image edits are a demo. The real use case is a folder: a shoot, a product catalog, a set of blog images that all need the same grade. That is what batch is for. Write the recipe as a JSON list of steps, one file per look:
cat > grade.json << 'EOF'
[{"command":"filter.sharpen.smartSharpen","params":{"amount":80}}]
EOF
mkdir raw graded
cp photo-a.jpg photo-b.jpg raw/
photocraft-cli batch --actions grade.json --in ./raw --out ./graded
Expected output, verified with two test images:
ok ./raw/a.png -> ./graded/a.png
ok ./raw/b.png -> ./graded/b.png
2 succeeded, 0 failed
Two details in that recipe are load-bearing, and both were learned the hard way in this guide's sandbox. First, each step needs the key "command". The batch help also describes [id, params] pairs and bare ids, but a step written with "cmd" instead of "command" fails outright with error: invalid parameters for batch --actions: step needs "command" — that exact error is what this guide got on its first attempt, and the fix is the one-word key change above. Second, batch refuses to write into the input folder unless you pass --in-place; keep input and output separate, as above, so a bad recipe never eats your originals. Useful extras on the same command: --format webp to change the output format regardless of input extension, and --quality 85 for lossy JPEG/WebP output (without a quality value, WebP output is lossless).
Batch mode: one recipe file, every image in the folder, one graded set out. Image: AI Frontier Post.
Step 5: Convert formats, including real PSD files
PhotoCraft's headline format claim is PSD without compromise: its PSD support is a standalone crate written from Adobe's public specification, and the project reports re-saving renders identically for 307 of the 309 files in the psd-tools test set. You do not need Photoshop to test the round trip at the CLI level:
photocraft-cli convert your-photo.png your-photo.psd
photocraft-cli info your-photo.psd
photocraft-cli convert your-photo.png your-photo.webp
All three commands ran cleanly in this guide's sandbox: the PNG became an 84,898-byte PSD that info reads back as a valid RGB document, and the same PNG became a 1,248-byte WebP. The convert list covers .pcraft, .psd, .png, .jpg, .tif, .webp, .exr, and more, with the output extension picking the format unless --format overrides it. Two honest limits, both from the README: HEIC photos from iPhone and Mac are read-only, and AVIF is write-only in official builds. And the PSD fidelity figures above are the project's corpus numbers, not something this guide re-measured — treat them as the project's claim, verified here only to the extent that a real PSD file was produced and re-read.
Step 6: Let an agent drive the same engine over MCP
The same engine is also an MCP server, which is the step that matters if you want a coding agent to edit images instead of you typing commands. Start it on stdio with explicit read and write roots — an omitted root denies that direction of file access, so grant only the scratch directory:
photocraft-cli mcp --automation-read-root "$PWD" --automation-write-root "$PWD"
Send it a standard MCP handshake (JSON-RPC initialize, then notifications/initialized, then tools/list), and it answers with server info photocraft 0.17.0 and a tool list that includes command_list (discover command ids and parameter docs), command_run and command_batch (edit, one history step per command), doc_open, doc_save, and doc_inspect. Its own instructions say to start with doc_new/doc_open, discover ids with command_list, and save as native .pcraft or export by extension. The ui_* tools (inspect, screenshot) require bridge mode against a running desktop app via --bridge 127.0.0.1:PORT and do not work headless — do not build an agent workflow on them unless the app is open.
What this guide verified for MCP is the handshake and the tool list, not a full agent-driven edit session. Wiring it into your MCP client is the documented next step: point the client at the stdio command above with the two root flags, and the agent gets the same 500+ commands the CLI has, scoped to one folder. That scoping is the point — an agent with an image editor should get a scratch folder, not your photo library.
When to use this vs alternatives
PhotoCraft's CLI is the right shape when your edits are a repeatable recipe: grade every photo from a shoot the same way, convert a folder between formats, or hand a bounded set of commands to an agent. It is the wrong shape when you need one-off creative work with a mouse — that is what the desktop app (or GIMP, or Photoshop) is for — and when your pipeline is already Python, where a Pillow script will beat a subprocess call on simplicity. Against ImageMagick, the difference is the model: ImageMagick is a pixel pipeline, while PhotoCraft is a layered document engine with adjustment layers, masks, and PSD round trips, so a recipe can stay editable instead of baked. Against GIMP's Script-Fu, the difference is friction: no Scheme, no display server, one JSON recipe file, and an MCP surface an agent can call. Against Photoshop Actions, the difference is cost and openness: no subscription, no account, and the whole engine is MIT/Apache-2.0 source you can read. And against writing your own editor: do not. This one already has 1,700+ tests behind it, including compositor oracles that check the CPU and GPU renderers against each other.
What this guide did not verify
- The desktop GUI: it needs a display, and this guide's sandbox has none. Every GUI claim here (68 tools, brush engine, live adjustment layers) is the project's, not a measured result.
- A full agent-driven edit over MCP: the handshake and tool list were verified, but no agent session edited an image end to end in this guide.
- PSD fidelity beyond produce-and-re-read: the 307-of-309 corpus figure is the project's measurement, quoted as such.
- Smart selection and Select Subject: documented as on-device with no cloud or account, but not exercised headless here.
- Star, commit, and fork counts move with every release. The figures here (74,359 stars, 7,040 commits, 13,130 forks, version 0.17.0) are dated October 28, 2026; re-run --version and check the repository page before quoting them elsewhere.
The takeaway
PhotoCraft earns its stars the way open-source tools used to: it is a real, working engine with a real, working command line, and it does not ask for your account, your money, or your GPU before it does anything useful. Download one 123 MB tarball, check its hash, and you can inspect, sharpen, curve, batch-grade, convert, and hand the whole thing to an agent — all from a terminal, all offline after the download. The alpha label is honest and the GUI is unproven here, but the headless path is not a promise. It ran. Start with Step 3 on a copy of one photo tonight; if the recipe-file workflow in Step 4 feels like the missing piece in your image pipeline, the rest of the engine is already installed.
Sources
- PhotoCraft repository page (github.com/storytold/photocraft) — star, commit, fork, license, and creation-date figures; the early-alpha status note.
- PhotoCraft README — the headless CLI examples, the 500+ command registry, the MCP and control-channel description, the format list, and the HEIC/AVIF limits.
- PhotoCraft release v0.17.0 (October 28, 2026) — the Linux tarball, the SHA256SUMS.txt checksum, and the per-platform download table.
- The installed CLI itself, run in this guide: photocraft-cli 0.17.0 — every version string, command result, batch count, conversion, and MCP handshake quoted here came from running it, not from documentation alone.
2 reactions · 1 comment
Mentions
I Tested photocraft — Here's What You Need to Know The News PhotoCraft: An open-source, photo editor written by scratch What is photocraft? photocraft is a new open-source project with 74552 stars. Why This Matters 1. Open Source - Free to use — no API costs - Self-hosted — run on your own infrastructure - Privacy-focused — your data stays local 2. Performance - Industry-leading — top-tier capabilities - Faster inference — optimized for speed - Lower cost — free vs paid APIs 3. Accessibility - Easy to use — simple API - Well-documented — comprehensive guides - Active community — growing ecosystem How to Get Started Option 1: Use Online 1. Visit storytold/photocraft 2. Try the online demo 3. Test with your prompts Option 2: Self-Host # Clone the repository git clone https://github.com/storytold/photocraft.git # Install dependencies pip install -r requirements.txt # Run the project python run.py Option 3: Use with MonkeyCode # Install MonkeyCode # Visit https://ly.cyberserval.tech/iIETXiF # Configure photocraft as your model # Use local inference for privacy My Experience I tested photocraft with MonkeyCode and here's what I found: Speed - Fast — quick responses - Reliable — consistent performance - No latency — local processing Quality - Good results — accurate suggestions - Context understanding — understands context - Error handling — good error messages Cost - Free — no API costs - Unlimited — no rate limits - Private — data stays local Conclusion photocraft is a game-changer. - ✅ 74552 stars - ✅ Open source - ✅ Free to use - ✅ Fast and reliable Try it with MonkeyCode! --- Links: - storytold/photocraft - MonkeyCode #ai #opensource #github #photocraft
PhotoCraft: the open-source Photoshop rival you can drive from the terminal Originally published at aifrontierpost.com Photoshop rebuilt from scratch in Rust, with 74,000 stars in four weeks — and a command-line tool that edits real photos without ever opening a window. This guide downloads the real release, verifies its checksum, and runs every headless command that matters: inspect, edit, batch, convert, and MCP. No account, no API key, no GPU, and every number below is one the installed tool printed. TL;DR: PhotoCraft (storytold/photocraft) is an open-source, pure-Rust Photoshop rebuild: version 0.17.0 ships a headless CLI that inspects, edits, batch-grades, converts (including PSD), and serves the engine over MCP — all verified here with no account, no API key, and no GPU. The desktop app is early alpha and was not tested; the CLI path is the proven one. - Who: PhotoCraft (storytold/photocraft on GitHub), from the ArtCraft team — 74,359 stars, 7,040 commits, 13,130 forks, dual MIT/Apache-2.0, first committed September 30, 2026. - What: a clean-room Photoshop rebuild in pure Rust, plus a headless CLI: info, run, batch, convert, commands, and an MCP server — verified here end to end. - When: version verified in this guide is photocraft-cli 0.17.0, released and run October 28, 2026; star and commit counts are dated the same day. - Requirement: a Linux, macOS, or Windows machine and ~200 MB of free disk for the prebuilt release. No account, no API key, no GPU, no Rust toolchain. Why this is blowing up now PhotoCraft is a clean-room reimplementation of Photoshop, written from scratch in pure Rust. Layers, masks, adjustment layers, layer styles, type, vectors, brushes, and real PSD files — in a native app with no Electron and no web view. The repository (storytold/photocraft on GitHub) had 74,359 stars, 7,040 commits, and 13,130 forks when this guide read it on October 28, 2026, under a dual MIT/Apache-2.0 license. It was created on September 30, 2026, which makes that star count a four-week sprint, not a slow accumulation. Version 0.17.0 landed the same day this guide ran, October 28, 2026. The part that makes it tutorial-worthy instead of just impressive is not the GUI. It is the headless command-line tool that ships in the same release. Every menu item, tool, and dialog in PhotoCraft runs a command from one registry of 500+ commands, and the UI, the CLI, the JSON control channel, and the MCP server all call the same commands. That means anything you can click, a script can do too — and this guide proves it, because every command below was run on a headless Linux server with no display, no account, no API key, and no GPU. One boundary first, because it decides whether this tutorial is for you. PhotoCraft is in early alpha, and its own README says so plainly: much of Photoshop's feature surface exists in some form, but it is not yet a Photoshop replacement for daily professional work. The gaps it names are AI/generative features, 15 missing tools, depth in typography and pro workflows, and plug-in compatibility. What this guide verifies is the headless editing path — install, inspect, edit, batch, convert, and hand the engine to an agent over MCP. If you need a finished desktop replacement today, this is not that article. If you want a scriptable, offline, open-source photo engine, keep reading. What you'll need - A Linux, macOS, or Windows machine. This guide ran on Linux (x86_64), using the prebuilt release tarball — no Rust toolchain, no source build, no compile wait. - About 200 MB of free disk. The Linux tarball is 123 MB; extracted, it is roughly twice that. - A terminal and a scratch directory with a photo or two to practise on. Do not practise on originals: the CLI overwrites nothing by default, but work on copies anyway. - No account, no API key, no GPU, no sign-in of any kind for anything in this guide. The desktop app's smart-selection features run on your machine with no cloud and no account, per the README; the CLI path here touches no network at all after the download. - Optional but useful: Python with Pillow, only if you want to diff pixels before and after like this guide did. It is not required for any step. One photo in, one graded photo out: the CLI runs the same engine commands the desktop app runs. Image: AI Frontier Post. Step 1: Get the real binary and check it Download the release for your platform from the project's releases page. On Linux x86_64, the file is photocraft-0.17.0-linux-x86_64.tar.gz. The release also ships a SHA256SUMS.txt — check your download against it before you run anything from it: curl -LO https://github.com/storytold/photocraft/releases/download/v0.17.0/photocraft-0.17.0-linux-x86_64.tar.gz curl -LO https://github.com/storytold/photocraft/releases/download/v0.17.0/SHA256SUMS.txt grep "linux-x86_64.tar.gz" SHA256SUMS.txt sha256sum photocraft-0.17.0-linux-x86_64.tar.gz Expected result, verified October 28, 2026: the hash printed by sha256sum is 5259f9c428c8ee3478c35500ece98713561cafc050e4c9eb354a5050f36eb2b8, matching the release checksum. If yours differs, stop — re-download, and do not run the binary. Extract it and confirm the tool answers: tar -xzf photocraft-0.17.0-linux-x86_64.tar.gz ./photocraft-0.17.0-linux-x86_64/bin/photocraft-cli --version ./photocraft-0.17.0-linux-x86_64/bin/photocraft-cli --help Expected output: photocraft-cli 0.17.0 (b8c3f3aa8, 2026-10-28) The help listing shows eight subcommands: convert, info, run, batch, droplet, commands, mcp, and serve. This guide runs the first four plus commands and mcp. The tarball also contains the desktop app binary (photocraft), which needs a display and is not used here. Put the CLI on your PATH if you plan to use it regularly; the rest of this guide calls it as photocraft-cli for brevity. Step 2: Inspect a photo before you touch it Copy a photo into a scratch directory and ask the CLI what it sees. This guide used a 640×400 test image; substitute your own file: mkdir photocraft-demo cp your-photo.jpg photocraft-demo/ cd photocraft-demo photocraft-cli info your-photo.jpg Expected output (abridged): a JSON document describing the image — its channels (Red, Green, Blue), composite mode (RGB), and layer tree, starting with "activeLayer": 2 for a flat import. The info command changes nothing; it is the read-only way to confirm the CLI can parse your file before you build an edit chain on top of it. If info fails on your file, the edit steps will too, and you have found that out cheaply. Run it on every new format you plan to feed the tool: PNG, JPEG, WebP, TIFF, and PSD are all on the convert list, but your specific file is the only test that matters. Step 3: Make your first headless edit The core command is run: open a file, apply engine commands in order, save the result. This is the exact shape from the project's README, run here verbatim — a Smart Sharpen filter followed by a Curves adjustment layer: photocraft-cli run your-photo.jpg \ --cmd filter.sharpen.smartSharpen --params '{"amount":80}' \ --cmd layer.newAdjustmentLayer.curves --params '{"points":[[0,0],[64,48],[192,212],[255,255]]}' \ --out graded-photo.png Expected output, as printed by the run in this guide: {"command":"filter.sharpen.smartSharpen","result":{"filter":{"amount":80.0,"filter":"smartSharpen","radius":1.0,"reduceNoise":10.0},"layer":2}} {"command":"layer.newAdjustmentLayer.curves","result":{"layer":3}} warning: 2 layer(s) flattened; layers, masks and blend modes are not kept Read that output carefully, because it teaches you three things. First, every command echoes its result as JSON, so a script can check success per step instead of trusting an exit code alone. Second, the defaults are visible: Smart Sharpen at amount 80 also applied radius 1.0 and noise reduction 10.0, which the command line never mentioned — when you tune a look, query the result JSON to see what actually ran. Third, the warning is real and worth understanding: PNG output is flat, so the adjustment layer and the sharpened layer were flattened into one image. The layers survive only in layered formats (the native .pcraft format, PSD, or TIFF with the --tiff-layers flag in batch mode). If your workflow needs the layers back later, export to a layered format; if you need a finished file for the web, PNG is the right, honest end of the chain. Verify the edit did something, rather than assuming it. Open both files and compare: the output keeps the input's dimensions (640×400 in this guide's test) and the pixels change — a sample pixel moved from RGB (240, 230, 180) to (247, 241, 199) after the sharpen-plus-curves chain. Your numbers will differ with your photo and your curve points; what matters is that you check, because a command that silently no-ops is worse than one that errors. To find more commands, ask the registry itself instead of guessing names: photocraft-cli commands | grep -i -E "vibrance|curves|levels|hue" This lists real, callable command IDs with their menu paths — for example layer.newAdjustmentLayer.vibrance, image.adjustments.levels, and layer.newAdjustmentLayer.hueSaturation. Every command in this guide came from that list or from the README; none was invented, and you should hold any other tutorial to the same rule. Step 4: Grade a whole folder with one recipe file Single-image edits are a demo. The real use case is a folder: a shoot, a product catalog, a set of blog images that all need the same grade. That is what batch is for. Write the recipe as a JSON list of steps, one file per look: cat > grade.json << 'EOF' [{"command":"filter.sharpen.smartSharpen","params":{"amount":80}}] EOF mkdir raw graded cp photo-a.jpg photo-b.jpg raw/ photocraft-cli batch --actions grade.json --in ./raw --out ./graded Expected output, verified with two test images: ok ./raw/a.png -> ./graded/a.png ok ./raw/b.png -> ./graded/b.png 2 succeeded, 0 failed Two details in that recipe are load-bearing, and both were learned the hard way in this guide's sandbox. First, each step needs the key "command". The batch help also describes [id, params] pairs and bare ids, but a step written with "cmd" instead of "command" fails outright with error: invalid parameters for batch --actions: step needs "command" — that exact error is what this guide got on its first attempt, and the fix is the one-word key change above. Second, batch refuses to write into the input folder unless you pass --in-place; keep input and output separate, as above, so a bad recipe never eats your originals. Useful extras on the same command: --format webp to change the output format regardless of input extension, and --quality 85 for lossy JPEG/WebP output (without a quality value, WebP output is lossless). Batch mode: one recipe file, every image in the folder, one graded set out. Image: AI Frontier Post. Step 5: Convert formats, including real PSD files PhotoCraft's headline format claim is PSD without compromise: its PSD support is a standalone crate written from Adobe's public specification, and the project reports re-saving renders identically for 307 of the 309 files in the psd-tools test set. You do not need Photoshop to test the round trip at the CLI level: photocraft-cli convert your-photo.png your-photo.psd photocraft-cli info your-photo.psd photocraft-cli convert your-photo.png your-photo.webp All three commands ran cleanly in this guide's sandbox: the PNG became an 84,898-byte PSD that info reads back as a valid RGB document, and the same PNG became a 1,248-byte WebP. The convert list covers .pcraft, .psd, .png, .jpg, .tif, .webp, .exr, and more, with the output extension picking the format unless --format overrides it. Two honest limits, both from the README: HEIC photos from iPhone and Mac are read-only, and AVIF is write-only in official builds. And the PSD fidelity figures above are the project's corpus numbers, not something this guide re-measured — treat them as the project's claim, verified here only to the extent that a real PSD file was produced and re-read. Step 6: Let an agent drive the same engine over MCP The same engine is also an MCP server, which is the step that matters if you want a coding agent to edit images instead of you typing commands. Start it on stdio with explicit read and write roots — an omitted root denies that direction of file access, so grant only the scratch directory: photocraft-cli mcp --automation-read-root "$PWD" --automation-write-root "$PWD" Send it a standard MCP handshake (JSON-RPC initialize, then notifications/initialized, then tools/list), and it answers with server info photocraft 0.17.0 and a tool list that includes command_list (discover command ids and parameter docs), command_run and command_batch (edit, one history step per command), doc_open, doc_save, and doc_inspect. Its own instructions say to start with doc_new/doc_open, discover ids with command_list, and save as native .pcraft or export by extension. The ui_* tools (inspect, screenshot) require bridge mode against a running desktop app via --bridge 127.0.0.1:PORT and do not work headless — do not build an agent workflow on them unless the app is open. What this guide verified for MCP is the handshake and the tool list, not a full agent-driven edit session. Wiring it into your MCP client is the documented next step: point the client at the stdio command above with the two root flags, and the agent gets the same 500+ commands the CLI has, scoped to one folder. That scoping is the point — an agent with an image editor should get a scratch folder, not your photo library. When to use this vs alternatives PhotoCraft's CLI is the right shape when your edits are a repeatable recipe: grade every photo from a shoot the same way, convert a folder between formats, or hand a bounded set of commands to an agent. It is the wrong shape when you need one-off creative work with a mouse — that is what the desktop app (or GIMP, or Photoshop) is for — and when your pipeline is already Python, where a Pillow script will beat a subprocess call on simplicity. Against ImageMagick, the difference is the model: ImageMagick is a pixel pipeline, while PhotoCraft is a layered document engine with adjustment layers, masks, and PSD round trips, so a recipe can stay editable instead of baked. Against GIMP's Script-Fu, the difference is friction: no Scheme, no display server, one JSON recipe file, and an MCP surface an agent can call. Against Photoshop Actions, the difference is cost and openness: no subscription, no account, and the whole engine is MIT/Apache-2.0 source you can read. And against writing your own editor: do not. This one already has 1,700+ tests behind it, including compositor oracles that check the CPU and GPU renderers against each other. What this guide did not verify - The desktop GUI: it needs a display, and this guide's sandbox has none. Every GUI claim here (68 tools, brush engine, live adjustment layers) is the project's, not a measured result. - A full agent-driven edit over MCP: the handshake and tool list were verified, but no agent session edited an image end to end in this guide. - PSD fidelity beyond produce-and-re-read: the 307-of-309 corpus figure is the project's measurement, quoted as such. - Smart selection and Select Subject: documented as on-device with no cloud or account, but not exercised headless here. - Star, commit, and fork counts move with every release. The figures here (74,359 stars, 7,040 commits, 13,130 forks, version 0.17.0) are dated October 28, 2026; re-run --version and check the repository page before quoting them elsewhere. The takeaway PhotoCraft earns its stars the way open-source tools used to: it is a real, working engine with a real, working command line, and it does not ask for your account, your money, or your GPU before it does anything useful. Download one 123 MB tarball, check its hash, and you can inspect, sharpen, curve, batch-grade, convert, and hand the whole thing to an agent — all from a terminal, all offline after the download. The alpha label is honest and the GUI is unproven here, but the headless path is not a promise. It ran. Start with Step 3 on a copy of one photo tonight; if the recipe-file workflow in Step 4 feels like the missing piece in your image pipeline, the rest of the engine is already installed. Sources - PhotoCraft repository page (github.com/storytold/photocraft) — star, commit, fork, license, and creation-date figures; the early-alpha status note. - PhotoCraft README — the headless CLI examples, the 500+ command registry, the MCP and control-channel description, the format list, and the HEIC/AVIF limits. - PhotoCraft release v0.17.0 (October 28, 2026) — the Linux tarball, the SHA256SUMS.txt checksum, and the per-platform download table. - The installed CLI itself, run in this guide: photocraft-cli 0.17.0 — every version string, command result, batch count, conversion, and MCP handshake quoted here came from running it, not from documentation alone.
github.com/storytold/photocraft/issues It's also a buggy mess
AI coding security: the tunnel my agent opened without asking In October 2026, Claude Code opened a Cloudflare tunnel on my machine. The Google Slides connector couldn't import my media files, so the agent put them on a public URL and let Google fetch them from there. It was a smart workaround, and it didn't ask for approval or warn me. The command just went by in its output, and I only caught it because I was reading along. While it ran, anyone with that link could reach those files on my machine. That was one session, with my settings. But most people won't be reading along. Why the agent wanted a public URL Google's Slides API inserts an image from a URL only if the URL is publicly accessible. It fetches the image once, at insertion, and keeps its own copy. So the files only had to be public while Google fetched them. A tunnel is a quick way to get a public URL. Cloudflare's quick tunnels give a local service a temporary address, and by default anyone with that address can reach the service until the cloudflared process stops. The workaround wasn't the problem. Doing it without asking was. Files only my machine could read became reachable from the internet, and the only notice was a line in the output. What to check before an agent can expose anything - Make the agent ask before anything that opens your machine. Tunnels, port forwarding, public share links and public buckets all turn something private into something reachable. - Keep exposure as short as the job. If a service needs to fetch a file once, the tunnel can close right after; stopping cloudflared ends access for everyone. - Before an agent connects your email, files or calendar to an MCP server, check who wrote the server and what it can reach. MCP's security best practices describe the authorization risks to look for. Agents in a business workflow need the same rule: a person approves anything that matters. Software isn't only prototyping Prototyping slop is solved. Pieter Levels calls it "software is dead." He's right that prototyping got cheap. But software isn't only prototyping. It takes time, effort, money and users before one approach is good enough for many people to reuse. One developer has been publishing the Craft apps, an early-alpha suite for image editing, documents, slides and more, each written from scratch in Rust. Even one of them, PhotoCraft, stands on hundreds of open source libraries: its lockfile on 20 October listed 839 packages, counting its own crates and everything they pull in, and 803 of them came from crates.io. I don't think what a chatbot builds for you usually gets that far. I think most people will just ask for something and let the agent in the chat handle it. Chat apps can already connect to files, email and calendars. For a lot of people the chat will be the only UI they use. They're about to own software and not know it. Whose responsibility it is Now picture your agent wiring your email to an MCP server some stranger wrote. A June 2026 TrendAI study found confirmed security issues in 2,259 of 9,695 MCP servers, even after setting aside the ones flagged only for missing authentication. The servers came from public MCP directories crawled between November 2025 and March 2026. If that server leaks your inbox, that's on you. You connected it, even if the agent did it for you and you never noticed. It's the same thing as my tunnel, just with nobody reading the output. By "on you" I mean responsibility, not legal liability: someone has to know what's connected and what it can reach. Who is liable after a leak is a legal question. It depends on contracts, jurisdiction and the facts, and I'm not answering it here. Software isn't dying. More of it is moving to where people can't see it. And so is the responsibility for it. _A shorter version of this first appeared on LinkedIn on 2026-10-13. The maintained version, with every source and the date I last checked them, is on argbe.tech._
Eight Rust apps, one team, and a PSD parser written from Adobe’s public spec Somebody on Bluesky summed up the PhotoCraft repo as "AI stole Photoshop and now it's open source?" That's a catchy line, and it's also not what the README says. So I went through the READMEs for storytold/artcraft and the apps around it to see what's actually there. Caveat before anything else: GitHub blocks automated browsing of source trees, so this is a read of the READMEs and public write-ups, not of the Rust code. I'm flagging which claims are the team's own and which come from third-party coverage. What ArtCraft is, and what it isn't ArtCraft itself is not a Photoshop clone. The team describes it as an AI image and video studio "for artists who want real control." Third-party coverage describes a desktop app on a Rust foundation, split into advanced crafting for controlled production work and quick prompting for fast ideas. Several features (scene blocking, canvas editing, relighting, inpainting) are listed as "preview coming soon", so treat it as work in progress. The Adobe-shaped part is the family around it, which the team calls the Crafting Apps. Each is written from scratch in Rust and meant to stand on its own. The suite, mapped {% details Which Craft covers which Adobe workflow? %} | App | Does | Adobe workflow it targets | Status | | --- | --- | --- | --- | | PhotoCraft | Layers, masks, type, real PSD files | Photoshop | Early alpha | | VectorCraft | Vector illustration | Illustrator | In active development | | DesignCraft | Page layout and publishing | InDesign | Runs on desktop and in the browser via WebAssembly | | FilmCraft | Video editing, color, sound | Premiere Pro | See repo | | LightCraft | Photo library and raw development | Lightroom | See repo | | PdfCraft | Reading, organizing, protecting PDFs | Acrobat | See repo | | EffectCraft | Motion graphics and effects | After Effects | See repo | | DeckCraft | Presentations | PowerPoint (Microsoft, not Adobe) | See repo | PhotoCraft, VectorCraft and DesignCraft say outright that they reimplement Photoshop, Illustrator and InDesign. For the other four I matched them by description, using the Adobe product list in the shared trademark notice. Check each repo before you quote me. {% enddetails %} Every README carries the same disclaimer: the apps are independent, "not affiliated with, sponsored by or endorsed by Adobe Inc.", and Adobe's names are used only to describe compatible workflows. PhotoCraft is the one worth reading closely It's the most documented of the group, and the README is blunt about its own state. It says "early alpha" and, per coverage of the project, "not yet a Photoshop replacement for daily professional work." What it reportedly ships today: - 34 tools and 16 adjustment layers - A GPU compositor on wgpu, aimed at Metal, Vulkan, DX12 and WebGPU - ICC colour management, with soft proofing and gamut warning - Over 1,700 tests, including a check that diffs renders against Photoshop's own merged images - PSD import that matches 307 of 309 files in the psd-tools test corpus, and 116 of 116 shape layers in the team's own corpus The PSD support is a separate crate written from Adobe's public specification, and the README admits a re-saved file won't be byte-identical to the original. I like that. A file format claim with a failure rate attached is more believable than one without. The agent angle PhotoCraft and VectorCraft both expose an MCP server, so an AI agent can drive the editor. One write-up counts 500+ commands behind a JSON control channel, and the README shows a headless photocraft-cli for batch work. DesignCraft is also described as drivable over MCP. This is the real thesis, I think. Photoshop is hard for an agent to script cleanly. An editor built with a command interface from day one is a different kind of target. What did this do to Adobe? I looked for it and couldn't find much. As of mid-October 2026 I found: - No statement from Adobe about the Craft apps - No reported legal action - No evidence of any effect on Adobe's products or pricing What exists is smaller and still worth noting. The project is getting shared as "Photoshop, but open." One Spanish-language write-up tells readers to audit their Adobe lock-in and to evaluate photocraft-cli mcp as an alternative backend to Adobe's API. The team also had to put a long trademark disclaimer on every repo, which tells you they know where the sensitive line is. The open question is legal, not technical. "Clean-room" is a claim about process, and I can't verify it from outside. Whether it holds up isn't something I can judge, and I'm not a lawyer. If you're thinking about using these apps in a company, ask someone who is. {% details My honest take on who should try it %} If you edit PSDs for a living, not yet. The README tells you that itself. If you build tooling for creatives, or you want to see what a Rust and WebAssembly editor looks like from the inside, it's worth an afternoon. DesignCraft is the easiest to poke at, since it opens in the browser. {% enddetails %} Try it git clone https://github.com/storytold/photocraft cargo run --release -p photocraft -- image.psd ArtCraft Launcher, also early alpha, checks each app's GitHub releases and updates the ones you have installed. Your turn Which of these would you actually swap for the Adobe version, and what would have to be true first? File format fidelity? Plugin support? Leave it in the comments. I'm especially curious about video, since FilmCraft is the one I know least about.
Why do people just not understand how valuable this new Adobe alternative is? I'm genuinely confused by the reaction to the ArtCraft "Crafting Apps" (PhotoCraft, VectorCraft, FilmCraft, LightCraft, EffectCraft, DesignCraft, PdfCraft). Not affiliated, just a solo dev in the US watching this happen. This sub has spent years asking for a real way out of Adobe. Now a team shows up building free, open-source (MIT/Apache), offline replacements for basically the whole suite, with releases already out for macOS, Windows and Linux. And the main response I see is "AI slop." Look at what's actually on the table: - ~16,500 commits across seven apps in about two and a half weeks - ~2.8 million lines of Rust, ~34,000 tests - PhotoCraft alone: 314 contributors, real PSD round-trips (307 of 309 files in the public psd-tools test set re-save with the same render) - No account, no subscription, your files stay on your machine - Every line of code is public, so you can check all of this yourself Nobody has published what this cost, but that's an insane amount of work and compute, and it's being handed to everyone for free. Is it rough? Yes. They say so themselves: early alpha, not ready for daily pro work. But Photoshop 1.0 shipped in 1990, Mac only, with one engineer, and needed several bug-fix releases. Every tool we use today started out rough. So honest question: what exactly were we waiting for? A finished, polished, free Photoshop clone falling from the sky? This is how it starts. Try it on a real file, and when something breaks, file a bug report. That does more than a downvote ever will. getartcraft.com storytold/photocraft
So are we all okay with AI reverse engineered apps calling themselves open source? ArtCraft gained a lot of steam lately with their AI reverse engineered versions of Photoshopand Adobe suite apps. While they are very obviously reverse engineered, they claim it is a "clean-room reimplementation of Adobe Photoshop" which by very definition means "without ever looking at or copying the original source code". Fireship even did a video covering these apps, in which he finds their apps are barely usable, and filled with bugs and usability issues. Today I came across "TraceDraw" which is, again, a total ripoff of CorelDraw. While I'm not on the side of large predatory corporations like Adobe charging ridiculous monthly subscription fees, I can totally understand the pain a company like Corel might feel seeing a ripoff of their 30+ year old product lovingly created and maintained by a team of skilled HUMANS. And once again, this repo claims it is a "clean-room" implementation. I find it ironic how only the reverse engineered apps bother to add this oddly specific disclaimer. So are we, as a community, okay with these new breed of AI reverse engineered apps claiming that they are "open source"? (Note: I'm not questioning their legality, just how ethical it is)
No sé si habéis visto esto, que son en esencia las apps de Adobe casi tal cual, mismas funionalidades, sin mierda IA, gratuitas y opensource. Ah, y para todos los sistemas operativos, incluido Linux. storytold/photocraft
REA: Faz Engenharia Reversa de QUALQUER Software? 🔥Se inscreva para receber novidades: links.elirigobeli.com Links: morluto/rea NationalSecurityAgency/ghidra storytold/photocraft Você precisa assistir estes vídeos 👇🏻 Crie seu app: youtu.be App de jogo: youtu.be Curso N8N: youtube.com Agente Whatsapp: youtube.com Me segue no insta: @elirigobeli O REA realmente clona qualquer software? Testei a ferramenta com o Street Chaves para mostrar como funciona a engenharia reversa com IA, o que conseguimos descobrir e onde estão os limites. [en-US] REA: Does it Reverse Engineer ANY Software? 🔥Subscribe to receive updates: links.elirigobeli.com Links: morluto/rea NationalSecurityAgency/ghidra storytold/photocraft You need to watch these videos 👇🏻 Create your app: youtu.be Game app: youtu.be N8N Course: youtube.com Whatsapp Agent: youtube.com Follow me on Instagram: @elirigobeli Does REA really clone any software? I tested the tool with Street Chaves to show how AI-powered reverse engineering works, what we were able to discover, and where the limitations lie. [es-US] REA: ¿Hace ingeniería inversa de CUALQUIER software? 🔥Suscríbete para recibir actualizaciones: links.elirigobeli.com Enlaces: morluto/rea NationalSecurityAgency/ghidra storytold/photocraft Debes ver estos videos 👇🏻 Crea tu app: youtu.be Aplicación de juego: youtu.be Curso N8N: youtube.com Agente de WhatsApp: youtube.com Sígueme en Instagram: @elirigobeli ¿REA realmente clona algún software? Probé la herramienta con Street Chaves para mostrar cómo funciona la ingeniería inversa basada en IA, qué pudimos descubrir y cuáles son sus limitaciones.
ArtCraft está impulsando doce aplicaciones gratuitas y de código abierto para tareas que asociamos con Adobe y Microsoft. PhotoCraft y PdfCraft figuran en alfa. Las alternativas a documentos, hojas de cálculo y presentaciones siguen en desarrollo. Tener un instalador disponible no equivale a disponer de un sustituto profesional completo. El proyecto, detrás del cual está Brandon Thomas y el equipo de ArtCraft, también ofrece servicios de generación con IA mediante créditos de pago. Mi lectura del modelo: las herramientas gratuitas pueden atraer a usuarios que después paguen por otros servicios. No demuestra que Adobe o Microsoft estén perdiendo clientes por este proyecto. Sí plantea una pregunta útil: si una parte de lo que vendes se vuelve gratuita, ¿qué valor seguirá justificando que te paguen? Aplicaciones y acceso oficial: lnkd.in Modelo de créditos: lnkd.in Para empezar a explorar: • PhotoCraft: edición de imágenes, al estilo de Photoshop. • PdfCraft: trabajo con PDF, como Acrobat. • WordCraft, GridCraft y DeckCraft: alternativas en desarrollo para documentos, hojas de cálculo y presentaciones. 📍 Busca «ArtCraft apps» en Google y entra en la web oficial: lnkd.in Desde ahí puedes acceder al ArtCraft Launcher y a las páginas de cada aplicación. Código y desarrollador: storytold/photocraft github.com/echelon Enlaces directos: PhotoCraft: lnkd.in PdfCraft: lnkd.in WordCraft: lnkd.in GridCraft: lnkd.in DeckCraft: lnkd.in Launcher (descargas): github.com/storytold/craft-launcher/releases/tag/…