Skip to main content

picturesq

Turn a folder of RAW photos into consistently graded exports. No photo editor needed.

picturesq run ./lisbon    # decode → normalise → grade → export
picturesq ui ./lisbon     # choose looks, fix exposure and dates, export, in a local web UI
  • Any camera LibRaw supports; built and tested on DJI Osmo Pocket DNGs
  • Runs on an 8 GB, CPU-only laptop (Linux, WSL2, Windows)
  • 18 built-in looks in four categories (B/W · Cold · Warm · Cinematic), each with adjustable intensity
  • Each photo is normalised first (exposure, colour noise), so one look gives a consistent result across a whole shoot
  • Everything you choose is saved in one YAML file, picturesq.yaml, which a coding agent can edit too
  • Your originals are never changed: exports go to <project>/exports/

Status: alpha (v0.1). Feedback and bug reports are welcome on GitHub issues.

Install

Python 3.11 or newer. With uv (or pipx install picturesq):

uv tool install picturesq
picturesq doctor          # checks the libraries, CPU and memory picturesq will use

Quick start

A project is a folder of RAW files. Point picturesq at it:

picturesq ui ./lisbon

The browser opens with your photos. Pick a look for the whole project or one photo, set its intensity, nudge exposure, warmth or highlights, step through the photos picturesq flagged for review (f), compare photos against every look in a grid (g), then Export. Every change is saved to ./lisbon/picturesq.yaml as you make it.

From the command line instead:

picturesq looks                                  # the look library and each look's parameters
picturesq preview ./lisbon --category cinematic  # a contact sheet: your photos × the cinematic looks
picturesq export ./lisbon                        # web (2048 px) and archive (full size) JPEGs

Wrong dates on the camera?

If the camera's clock was never set (photos dated 2000, say), tell picturesq the real time of one photo and every export is corrected by the same amount:

picturesq metadata shift ./lisbon --photo DJI_0042.DNG --actual "2026-10-17 20:05"
picturesq metadata show ./lisbon     # camera time vs corrected time, per photo
picturesq metadata apply ./lisbon    # fix the dates in exports already written

The UI's Date and time panel does the same.

Using it with a coding agent

picturesq ships a skill: instructions that teach a coding agent its workflow (edit picturesq.yaml, render a preview, look at it) and how words map to edits ("warmer", "softer highlights", "less of the look").

picturesq skill install                     # Claude Code, every project (~/.claude/skills)
picturesq skill install --project ./lisbon  # Claude Code, this project only
picturesq skill install --dir PATH          # another agent's skills folder
picturesq skill show                        # print it, e.g. to paste into AGENTS.md

Then ask your agent things like "make the sunset photos warmer and the rest nordic at 80 %". Keep the UI open while it works: its edits appear in the browser within a second. Rerun picturesq skill install --force after upgrading picturesq to get the matching skill.

Agents (and scripts) can also discover everything from the CLI itself: picturesq looks --json, picturesq schema project, picturesq normalise PROJECT --json. An invalid edit makes any command exit with code 2 and name the key.

Documentation

Licence

MIT, except the third-party LUT files bundled with the looks, which are CC BY 4.0: see NOTICE.

Metadata

Release files for picturesq 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for picturesq 0.1.0
File Size Uploaded Provenance Actions
picturesq-0.1.0.tar.gz 2.4 MB Without provenance Details for picturesq-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for picturesq 0.1.0
File Interpreter ABI Platform Actions
picturesq-0.1.0-py3-none-any.whl Python 3 none any Details for picturesq-0.1.0-py3-none-any.whl

Total release size: 4.0 MB

Release files / picturesq-0.1.0.tar.gz

Download URL picturesq-0.1.0.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
5741d6b9ecd88f4a98965c6e50911e3245e536ab439cf54e92c0e25bbc51156f
BLAKE2b-256 checksum
How to use checksums
cbd6546818eb64763c24a4df0102f8005e2a44f28eb4623ab1f773fdfc9332b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / picturesq-0.1.0-py3-none-any.whl

Download URL picturesq-0.1.0-py3-none-any.whl
Size 1.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
664ee1c753566a7c8b2d63e838fdf6ae4091896dfa7e31b3b99274d32a9d36dd
BLAKE2b-256 checksum
How to use checksums
26c4e2f663da85a0673c13306b11eaa0f6511406882661122bde024048047e0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for picturesq 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page