immich-go(1)

πŸ“¦ version 0.32.0, in ubuntu stonking

πŸ’– immich-go-upload-from-folder β€” aka immich-go upload from-folder πŸ’–

okay bestie, gather round, because this is the page you're gonna want open in a second terminal while you're yeeting an entire folder of photos at your Immich server 🫢. This lives inside the immich-go manual, and it's the "I have a folder, I have a server, let's make it happen" command. No cap.


🌸 NAME 🌸

immich-go-upload-from-folder β€” upload photos from a folder. that's it. that's the vibe. ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

immich-go upload from-folder [flags] ...

yes the ... is real, she takes flags and she takes args, and she will not be stopped πŸ’…


πŸŽ€ DESCRIPTION πŸŽ€

Upload photos from a folder. fr fr that's the whole description, the real tea is all down in the options, so keep scrolling, bestie πŸ‘‘


✨ OPTIONS ✨

like... a LOT of options. but we're going through every single one because I refuse to gatekeep πŸ”₯

  • --album-path-joiner=" / " β€” the little string she uses to glue multiple folder names together when she's building an album name. like, examples in the wild: ' ' and ' - '. so you can have Summer - 2024 or whatever cute thing you want πŸŽ€
  • --ban-file='@eaDir/', '@__thumb/', 'SYNOFILETHUMB.', 'Lightroom Catalog/', 'thumbnails/', '.DSStore', '/.*', '.Spotlight-V100/', '.photostructure/', 'Recently Deleted/' β€” the block list, the "not you" list. it excludes a file based on a pattern, and the matching is case-insensitive. you can drop this flag multiple times to ban multiple things 🚫
  • --date-from-name[=true] β€” if the date is just... not in the metadata (crying), she'll steal it from the filename instead. and it only works for these file types, no exceptions bestie: jpg, mp4, heic, dng, cr2, cr3, arw, raf, nef, mov πŸ—“οΈ
  • --date-range=unset β€” only import photos taken inside the date range you specify. keep it tight, keep it curated πŸ’–
  • --exclude-extensions= β€” a comma-separated list of extensions you want OUT. example: .gif,.PM. default is none, so by default nothing gets excluded πŸ™ˆ
  • --folder-as-album=NONE β€” this one is iconic. it imports all files into albums defined by your folder structure. set it to 'FOLDER' and the folder name becomes the album name, set it to 'PATH' and the whole full path becomes the album name. main character behavior, honestly πŸ‘‘
  • --folder-as-tags[=false] β€” flip your folder structure into tags instead. example straight from the source: the file holiday/summer 2024/file.jpg will have the tag holiday/summer 2024 🏷️
  • -h, --help[=false] β€” help for from-folder. classic.
  • --ignore-sidecar-files[=false] β€” don't upload the sidecar with the photo. sidecar said not today 🚫
  • --include-extensions= β€” a comma-separated list of extensions you want IN. example: .jpg,.heic. default is all because she is generous πŸ’…
  • --include-type= β€” one single file type to include. your options are VIDEO or IMAGE. default is all 🌈
  • --into-album="" β€” name an album and every single file goes in there. the group chat of albums 🫢
  • --recursive[=true] β€” explore the folder and all its sub-folders. it's on by default because she's thorough like that 🧚

πŸ‘‘ OPTIONS INHERITED FROM PARENT COMMANDS πŸ‘‘

these come from the parent, so they work here too. yes, all of them. no skipping πŸ’œ

  • --admin-api-key="" β€” the admin's API key, for managing the server's jobs πŸ”‘
  • -k, --api-key="" β€” the regular API key πŸ”
  • --api-trace[=false] β€” turn on tracing of api calls. for when you need to see everything πŸ‘€
  • --client-timeout=20m0s β€” sets the timeout for server calls ⏳
  • --concurrent-tasks=16 β€” how many concurrent tasks she runs. legal range is 1–20, and she defaults to a very confident 16 πŸ”₯
  • --config="" β€” the config file. default is ./immich-go.yaml πŸ“„
  • --device-uuid="framework" β€” set a device UUID πŸ†”
  • --dry-run[=false] β€” simulate ALL the actions. nothing actually happens, it's just a rehearsal, it's giving dress rehearsal 🎭
  • -l, --log-file="" β€” write log messages into the file πŸ“
  • --log-level="INFO" β€” log level, pick from DEBUG, INFO, WARN, ERROR. default is INFO β€” and honestly same, INFO is the balanced queen πŸ‘Έ
  • --log-type="text" β€” log formatted as text or a JSON file. default is text πŸͺ„
  • --manage-burst=NoStack β€” manages burst photos. possible values: NoStack, Stack, StackKeepRaw, StackKeepJPEG πŸ“Έ
  • --manage-epson-fastfoto[=false] β€” manages Epson FastFoto files. default is false πŸ–¨οΈ
  • --manage-heic-jpeg=NoStack β€” manages coupled HEIC and JPEG files. possible values: NoStack, KeepHeic, KeepJPG, StackCoverHeic, StackCoverJPG πŸ–ΌοΈ
  • --manage-raw-jpeg=NoStack β€” manages coupled RAW and JPEG files. possible values: NoStack, KeepRaw, KeepJPG, StackCoverRaw, StackCoverJPG 🎞️
  • --no-ui[=false] β€” disables the user interface. bye bye pretty screen 😭
  • --on-errors=stop β€” what she does when an error shows up. your options: stop, continue, or accept N errors at max. default is stop, she does not play πŸ’€
  • --overwrite[=false] β€” always overwrite the files on the server with your local versions. careful bestie, this one does exactly what it says ⚠️
  • --pause-immich-jobs[=true] β€” pause Immich background jobs while upload operations are running. on by default, she's polite βœ‹
  • --save-config[=false] β€” saves the configuration to immich-go.yaml πŸ’Ύ
  • -s, --server="" β€” your Immich server address. examples from the source, verbatim: http://your-ip:2283 or https://your-domain 🌐
  • --session-tag[=false] β€” tags every uploaded photo with a tag formatted like "{immich-go}/YYYY-MM-DD HH-MM-SS" 🏷️
  • --skip-verify-ssl[=false] β€” skips SSL verification πŸ™ˆ
  • --tag=[] β€” add tags to the imported assets. can be specified multiple times. hierarchy is supported with a / separator, example: 'tag1/subtag1' πŸ’–
  • --time-zone="" β€” override the system time zone. you're the boss of time now πŸ•°οΈ

🌈 SEE ALSO 🌈


πŸ“œ HISTORY πŸ“œ

28-Mar-2026 β€” Auto generated by spf13/cobra. yep, a robot did it. and she ate πŸ€–βœ¨


okay that's the whole page, bestie, you're fully caught up πŸ’… this doc came to you from the immich-go manual page, auto generated by spf13/cobra, dated Mar 2026 β€” so if anything's weird, blame the cobra, not me 🐍😭. now go upload those photos, you absolute icon πŸ‘‘πŸ’–

πŸ“¦ where this page comes from