immich/cli
Jonathan Jogenfors 7e38e7c949
feat(cli): refactor and add album support (#4434)
* Allow building and installing cli

* feat: add format fix

* docs: remove cli folder

* feat: use immich scoped package

* feat: rewrite cli readme

* docs: add info on running without building

* cleanup

* chore: remove import functionality from cli

* feat: add logout to cli

* docs: add todo for file format from server

* docs: add compilation step to cli

* fix: success message spacing

* feat: can create albums

* fix: add check step to cli

* fix: typos

* feat: pull file formats from server

* chore: use crawl service from server

* chore: fix lint

* docs: add cli documentation

* chore: rename ignore pattern

* chore: add version number to cli

* feat: use sdk

* fix: cleanup

* feat: album name on windows

* chore: remove skipped asset field

* feat: add more info to server-info command

* chore: cleanup

* chore: remove unneeded packages

* chore: fix docs links

* feat: add cli v2 milestone

* fix: set correct cli date

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-11-19 22:16:24 +00:00
..
src feat(cli): refactor and add album support (#4434) 2023-11-19 22:16:24 +00:00
.editorconfig feat(cli) Add new CLI (#3066) 2023-07-06 09:37:47 -05:00
.eslintignore feat(cli) Add new CLI (#3066) 2023-07-06 09:37:47 -05:00
.eslintrc.js fix(server,cli): don't float promises (#4433) 2023-10-13 01:22:40 -04:00
.gitignore feat(cli) Add new CLI (#3066) 2023-07-06 09:37:47 -05:00
.prettierignore feat(cli) Add new CLI (#3066) 2023-07-06 09:37:47 -05:00
.prettierrc feat(cli) Add new CLI (#3066) 2023-07-06 09:37:47 -05:00
package-lock.json feat(cli): refactor and add album support (#4434) 2023-11-19 22:16:24 +00:00
package.json feat(cli): refactor and add album support (#4434) 2023-11-19 22:16:24 +00:00
README.md feat(cli): refactor and add album support (#4434) 2023-11-19 22:16:24 +00:00
testSetup.js feat(cli) Add new CLI (#3066) 2023-07-06 09:37:47 -05:00
tsconfig.build.json feat(cli): add build script and unify tests (#3369) 2023-07-21 13:10:01 -05:00
tsconfig.json feat(cli): refactor and add album support (#4434) 2023-11-19 22:16:24 +00:00

A command-line interface for interfacing with the self-hosted photo manager Immich.

Installing

To use the cli, run

$ npm install @immich/cli

Usage

To use the CLI, you need to login with an API key first:

$ immich login-key https://your-immich-instance/api your-api-key

NOTE: This will store your api key in cleartext under ~/.config/immich/auth.yml

Next, you can run commands, for example:

$ immich server-info

When you're done, log out to remove the credentials from your filesystem

$ immich logout

Commands

Usage: immich [options] [command]

Immich command line interface

Options:
  -h, --help                        display help for command

Commands:
  upload [options] [paths...]       Upload assets
  server-info                       Display server information
  login-key [instanceUrl] [apiKey]  Login using an API key
  logout                            Remove stored credentials
  help [command]                    display help for command

Todo

  • Sidecar should check both .jpg.xmp and .xmp
  • Sidecar check could be case-insensitive
  • Use the SDK for all api calls. We currently use raw axos http calls
  • Use list of supported files from server via api

For developers

To run the Immich CLI from source, run the following in the cli folder:

$ npm run build
$ ts-node .

You'll need ts-node, the easiest way to install it is to use npm:

$ npm i -g ts-node

You can also build and install the CLI using

$ npm run build
$ npm install -g .