An alternative to the immich-CLI command that doesn't depend on nodejs installation. It tries its best for importing google photos takeout archives.
Go
6,910
1,180 commits
updated Jun 25, 2026
Immich-Go is an open-source tool designed to streamline uploading large photo collections to your self-hosted Immich server.
✅ Compatible with Immich V2 and V3
⚠️ This is an early version, not yet extensively tested
⚠️ Keep a backup copy of your files for safety
Download the pre-built binary for your system from the GitHub releases page.
# Upload photos from a local folder
immich-go upload from-folder --server=http://your-ip:2283 --api-key=your-api-key /path/to/your/photos
# Upload Google Photos takeout
immich-go upload from-google-photos --server=http://your-ip:2283 --api-key=your-api-key /path/to/takeout-*.zip
# Archive photos from Immich server
immich-go archive from-immich --from-server=http://your-ip:2283 --from-api-key=your-api-key --write-to-folder=/path/to/archive
⚠️ Breaking Change (v0.32.0): The
ReplaceAssetAPI method has been removed. Theasset.replacepermission is no longer needed. If your API key includes it, it will be ignored by the server. Useasset.copyinstead for asset duplication needs.
--ban-file to exclude junk artifacts. Patterns ending with / apply to directories (for example, --ban-file .Spotlight-V100/), while patterns without the trailing slash apply to individual files (for example, --ban-file .DS_Store).@eaDir/, @__thumb/, SYNOFILE_THUMB_*.*, Lightroom Catalog/, thumbnails/, .DS_Store, /._*, .Spotlight-V100/, .photostructure/, and Recently Deleted/.| Topic | Description |
|---|---|
| Installation | Detailed installation instructions for all platforms |
| Commands | Complete command reference and options |
| Configuration | Configuration options and environment variables |
| Examples | Common use cases and practical examples |
| Best Practices | Tips for optimal performance and reliability |
| Technical Details | File processing, metadata handling, and advanced features |
| Upload Commands Overview | How immich-go processes files from different sources |
| Release Notes | Version history and release notes |
immich-go offers a versatile set of commands to handle your photo and video uploads. Whether you're uploading from a simple folder, migrating from a Google Photos Takeout, or transferring assets between Immich servers, the tool provides intelligent features to preserve your metadata and organization.
Here's a brief overview of the main upload commands:
from-folder: The basic command for uploading from any local folder. It can create albums from your directory structure and read XMP sidecar files.from-google-photos: A powerful command to migrate from a Google Photos Takeout. It intelligently matches photos with their JSON metadata to preserve albums, descriptions, and locations.from-immich: A server-to-server migration tool that allows you to copy assets between two Immich instances with fine-grained filtering.from-picasa: A specialized version of from-folder that automatically reads .picasa.ini files to restore your Picasa album organization.from-icloud: Another specialized command that handles the complexity of an iCloud Photos takeout, correctly identifying creation dates and album structures from the included CSV files.immich-go is more than just an uploader; it intelligently interacts with the Immich server to preserve your library's structure:
For a detailed explanation of how each upload command works, please see the Upload Commands Overview.
Contributions are welcome! Please see our contributing guidelines for details.
This project is licensed under the terms specified in the LICENSE file.
Need help? Check our documentation or open an issue on GitHub.
(top 30 of 45)
Go
94.7%
Shell
5.3%
An alternative to the immich-CLI command that doesn't depend on nodejs installation. It tries its best for importing google photos takeout archives.
Go
6,910
1,180 commits
updated Jun 25, 2026
Immich-Go is an open-source tool designed to streamline uploading large photo collections to your self-hosted Immich server.
✅ Compatible with Immich V2 and V3
⚠️ This is an early version, not yet extensively tested
⚠️ Keep a backup copy of your files for safety
Download the pre-built binary for your system from the GitHub releases page.
# Upload photos from a local folder
immich-go upload from-folder --server=http://your-ip:2283 --api-key=your-api-key /path/to/your/photos
# Upload Google Photos takeout
immich-go upload from-google-photos --server=http://your-ip:2283 --api-key=your-api-key /path/to/takeout-*.zip
# Archive photos from Immich server
immich-go archive from-immich --from-server=http://your-ip:2283 --from-api-key=your-api-key --write-to-folder=/path/to/archive
⚠️ Breaking Change (v0.32.0): The
ReplaceAssetAPI method has been removed. Theasset.replacepermission is no longer needed. If your API key includes it, it will be ignored by the server. Useasset.copyinstead for asset duplication needs.
--ban-file to exclude junk artifacts. Patterns ending with / apply to directories (for example, --ban-file .Spotlight-V100/), while patterns without the trailing slash apply to individual files (for example, --ban-file .DS_Store).@eaDir/, @__thumb/, SYNOFILE_THUMB_*.*, Lightroom Catalog/, thumbnails/, .DS_Store, /._*, .Spotlight-V100/, .photostructure/, and Recently Deleted/.| Topic | Description |
|---|---|
| Installation | Detailed installation instructions for all platforms |
| Commands | Complete command reference and options |
| Configuration | Configuration options and environment variables |
| Examples | Common use cases and practical examples |
| Best Practices | Tips for optimal performance and reliability |
| Technical Details | File processing, metadata handling, and advanced features |
| Upload Commands Overview | How immich-go processes files from different sources |
| Release Notes | Version history and release notes |
immich-go offers a versatile set of commands to handle your photo and video uploads. Whether you're uploading from a simple folder, migrating from a Google Photos Takeout, or transferring assets between Immich servers, the tool provides intelligent features to preserve your metadata and organization.
Here's a brief overview of the main upload commands:
from-folder: The basic command for uploading from any local folder. It can create albums from your directory structure and read XMP sidecar files.from-google-photos: A powerful command to migrate from a Google Photos Takeout. It intelligently matches photos with their JSON metadata to preserve albums, descriptions, and locations.from-immich: A server-to-server migration tool that allows you to copy assets between two Immich instances with fine-grained filtering.from-picasa: A specialized version of from-folder that automatically reads .picasa.ini files to restore your Picasa album organization.from-icloud: Another specialized command that handles the complexity of an iCloud Photos takeout, correctly identifying creation dates and album structures from the included CSV files.immich-go is more than just an uploader; it intelligently interacts with the Immich server to preserve your library's structure:
For a detailed explanation of how each upload command works, please see the Upload Commands Overview.
Contributions are welcome! Please see our contributing guidelines for details.
This project is licensed under the terms specified in the LICENSE file.
Need help? Check our documentation or open an issue on GitHub.
(top 30 of 45)
Go
94.7%
Shell
5.3%