Metadata-Version: 2.4
Name: chronocatalog-desktop
Version: 0.1.0
Summary: Desktop app for ChronoCatalog photo and video archives
Project-URL: Homepage, https://github.com/chronocatalog/chronocatalog-desktop
Project-URL: Repository, https://github.com/chronocatalog/chronocatalog-desktop
Project-URL: Changelog, https://github.com/chronocatalog/chronocatalog-desktop/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/chronocatalog/chronocatalog-desktop/issues
Author-email: Jakub Stefanski <js@jakubstefanski.com>
License-Expression: MIT
License-File: LICENSE
Keywords: archive,exif,gui,photography,qt,rename,video
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: MacOS X
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: System :: Archiving
Requires-Python: >=3.11
Requires-Dist: chronocatalog>=0.2
Requires-Dist: pyside6-essentials>=6.7
Requires-Dist: tomlkit>=0.12
Provides-Extra: dev
Requires-Dist: mypy>=1.13; extra == 'dev'
Requires-Dist: pyside6>=6.7; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.8; extra == 'dev'
Description-Content-Type: text/markdown

# ChronoCatalog Desktop

Desktop app for [ChronoCatalog](https://github.com/chronocatalog/chronocatalog)
photo and video archives.

The design premise: the CLI already plans everything before touching
anything, so the app is a renderer of those plans and reports — every
view is a dry run, and Apply goes through the same validated, journaled
engine. Views are named after the commands they wrap (Verify, Rename,
History), and the exact terminal equivalent of every action is one
click away.

## Status

Early development.

## Install

**macOS (Apple Silicon):** download `ChronoCatalog-<version>-arm64.dmg`
from [Releases](https://github.com/chronocatalog/chronocatalog-desktop/releases)
and drag the app to Applications. The build is not yet signed with an
Apple Developer ID, so the first launch is blocked: open **System
Settings → Privacy & Security**, scroll to Security and click
**Open Anyway**. This is needed once.

**Any platform (Python 3.11+):**

```console
$ uv tool install chronocatalog-desktop
```

or `pipx install chronocatalog-desktop`. Either way you also need
[ExifTool](https://exiftool.org/) on `PATH` (macOS:
`brew install exiftool`).

## Run

```console
$ chronocatalog-desktop [archive.toml]
```

Without an argument the app asks for an archive configuration and
remembers it. Everything is a dry run until Apply, which confirms
first; every applied change lands in History with Undo (and Resume,
for interrupted runs).

## Demo archive

Builds a small throwaway archive under `demo/archive` (macOS: uses
`sips`), imports it through the real engine, then plants a date edit,
an unnamed file and an orphan sidecar so every view has something to
show:

```console
$ python demo/make_demo.py
$ chronocatalog-desktop demo/demo.toml
```

## Requirements

- Python 3.11+
- [ExifTool](https://exiftool.org/) on `PATH`

## License

[MIT](LICENSE)
