simulot/immich-go — 7.1k★ on GitHub (Go). An alternative to the immich-CLI command that doesn't depend on nodejs installation. It tries its best for importing google photos takeout archives.
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Cross-Platform: Available for Windows, macOS, Linux, and FreeBSD
🚀 Quick Start
1. Install Immich-Go
Download the pre-built binary for your system from the GitHub releases page.
2. Basic Usage
# 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
3. Requirements
A running Immich server with API access
API key with appropriate permissions (see full list)
⚠️ Breaking Change (v0.32.0): The ReplaceAsset API method has been removed. The asset.replace permission is no longer needed. If your API key includes it, it will be ignored by the server. Use asset.copy instead for asset duplication needs.
🙈 Skip System Files
Use --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).
Immich-Go ships with sensible defaults that already skip common clutter such as @eaDir/, @__thumb/, SYNOFILE_THUMB_*.*, Lightroom Catalog/, thumbnails/, .DS_Store, /._*, .Spotlight-V100/, .photostructure/, and Recently Deleted/.
Add additional patterns as needed to keep uploads focused on real photos. See the banned files reference for details.
📚 Documentation
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
✨ How immich-go Works
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.
Leveraging Immich's Features
immich-go is more than just an uploader; it intelligently interacts with the Immich server to preserve your library's structure:
Albums and Tags: Automatically creates albums and tags on the server to match your source organization.
Stacking: Groups related images, like RAW+JPEG pairs or photo bursts, into stacks.
Duplicate Detection: Avoids re-uploading files that already exist on the server.
Efficient Uploads: Can pause Immich's background jobs (like thumbnailing) during an upload for better performance.
For a detailed explanation of how each upload command works, please see the Upload Commands Overview.
🎯 Popular Use Cases
Google Photos Migration: Complete guide
iCloud Import: Step-by-step instructions
Server Migration: Transfer between Immich instances
Bulk Organization: Stacking and tagging strategies
💡 Support the Project
GitHub Sponsor
PayPal Donation
🤝 Contributing
Contributions are welcome! Please see our contributing guidelines for details.
📄 License
This project is licensed under the terms specified in the LICENSE file.
Need help? Check our documentation or open an issue on GitHub.
The most recent commit recorded on simulot/immich-go was 4 months ago, based on the GitHub push timestamp. The repository has 276 forks — one of the better signals of community interest.
How does simulot/immich-go compare to other Backend projects?
simulot/immich-go is tracked by TopGit in the Backend category, with 7.1k GitHub stars and written in Go. Browse the Backend topic page on TopGit to compare it against similar projects by stars and activity.
How many stars does simulot/immich-go have?
simulot/immich-go has 7.1k GitHub stars — refresh the page for the live number, or check github.com/simulot/immich-go. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What is simulot/immich-go?
simulot/immich-go (simulot/immich-go) is a Go project on GitHub. From the project's own README: An alternative to the immich-CLI command that doesn't depend on nodejs installation. It tries its best for importing google photos takeout archives.
What language is simulot/immich-go written in?
simulot/immich-go is written primarily in Go. GitHub's language field is based on the largest share of bytes in the default branch.
What topics is simulot/immich-go associated with?
GitHub's repository topics for simulot/immich-go: "golang", "google", "immich", "immich-cli", "photos", "takeout". TopGit's editorial category is Backend.
Why is simulot/immich-go categorized under Backend?
TopGit places simulot/immich-go in the Backend category based on its GitHub topics and description (tagged: "golang", "google", "immich"). Categories are assigned from real repository metadata, not editorial guesswork.
Read full README in the tab above.
Is immich-go worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of immich-go.