No description
Find a file
2024-11-04 13:54:20 +11:00
src Update Immich API bindings to 1.119.1 2024-11-04 13:54:20 +11:00
.envrc Initial commit 2024-10-23 20:36:36 +11:00
.gitignore Initial commit 2024-10-23 20:36:36 +11:00
.gitlab-ci.yml Set-up CI 2024-10-28 14:47:53 +11:00
build.rs Initial commit 2024-10-23 20:36:36 +11:00
Cargo.lock Add support for a configuration file 2024-10-30 17:46:14 +11:00
Cargo.toml Add support for a configuration file 2024-10-30 17:46:14 +11:00
flake.lock Initial commit 2024-10-23 20:36:36 +11:00
flake.nix Initial commit 2024-10-23 20:36:36 +11:00
LICENSE Add LICENSE 2024-10-28 05:02:36 +00:00
README.md Update Immich API bindings to 1.119.1 2024-11-04 13:54:20 +11:00

Immich CLI utilities

immich-tools is a small command-line utility interacting with an Immich server. It offers the following features:

  • List named faces that do not have an associated date of birth
  • Synchronise date of births from a vcard file

Some other features are planned, mainly around using external libraries. Feature ideas and contributions welcome.

Configuration

Different options need to be passed to this tool, mainly:

  • server_url: the API endpoint of the Immich instance to work on
  • api_key: the API key to use

These can be passed through different mechanisms:

  • Command line arguments, e.g. immich-tools --server-url https://photos.example.com/api --api-key api-key-goes-here server version
  • Environment variables prefixed with IMMICH_TOOLS_, e.g. IMMICH_TOOLS_SERVER_URL=https://photos.example.com/api IMMICH_TOOLS_API_KEY=api-key-goes-here immich-tools server version
  • Environment variables pointing to files, suffixed with _FILE, e.g. IMMICHTOOLS_SERVER_URL_FILE=~/immich-url.txt IMMICH_TOOLS_API_KEY_FILE=~/immich-api-key.txt immich-tools server version. This is mostly useful for secrets.
  • Through a configuration file, in a well-known, OS-dependent location (on Linux, ~/.config/immichtools/config.toml, on macOS, ~/Library/Application Support/fr.enoent.Immich-Tools/config.toml, and on Windows ~\AppData\Roaming\enoent\Immich Tools\config\config.toml). Note that keys in this file can also be suffixed with _file and point to a file containing the value, instead of the value directly.

Command line arguments take precedence over environment variables, which in turn take precedence over the configuration file.

Example configuration file

server_url = "https://photos.example.com/api"
api_key_file = "/home/example/.config/immichtools/apikey"

[people.sync_date_of_births]
vcard = "/home/example/contacts.vcf"

Immich API bindings

The bindings are generated automatically from src/immich-openapi-specs.json. The file currently in the repo has been generated with Immich v1.119.1, with a few methods removed around file upload (Progenitor doesn't yet support multipart/form-data content types, see here). All other methods should be available.