Self-hosted photo and video management app with backup from mobile, facial recognition, and search, offered as a Google Photos alternative.
simulot/immich-go
A Go command-line tool for uploading photo collections, including Google Photos Takeout archives, to a self-hosted Immich server without Node.js.
Open-source alternative to:Google Photos
- Stars
- 7,065
- Forks
- 273
- Open issues
- 272
- Last commit
- 2 days ago
What is it?
Immich-go is a command-line tool for moving large photo libraries into a self-hosted Immich server. It works as an alternative to the official immich-cli and is distributed as a single binary, so it does not require Node.js or Docker to run.
The tool offers several upload commands for different sources: local folders, Google Photos Takeout archives, iCloud exports, Picasa folders, ZIP files, and other Immich servers. The Google Photos command matches photos with their JSON metadata to restore albums, descriptions and locations. Other commands can create albums from folder structure, read XMP sidecar files, and stack RAW+JPEG pairs or bursts.
It also detects duplicates to avoid re-uploading existing files, skips common system clutter such as thumbnail folders and .DS_Store files by default, and can filter files with custom ban patterns. The project supports Immich V2 and V3 and runs on Windows, macOS, Linux and FreeBSD.
Key features
- 01Uploads from local folders, Google Photos Takeout, iCloud exports, Picasa folders and ZIP archives
- 02Copies assets between Immich servers with filtering
- 03Preserves albums, tags, descriptions and locations from source metadata
- 04Detects duplicates and stacks RAW+JPEG pairs and bursts
- 05Ships as a single binary with no Node.js or Docker dependency
Use cases
- Migrating a Google Photos library to a self-hosted Immich server
- Importing iCloud Photos exports into Immich
- Moving assets from one Immich instance to another
- Bulk-uploading a large local photo archive from a NAS or disk
Quick start
- 1
Download the pre-built binary for your system from the GitHub releases page
- 2
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 - 3
Upload Google Photos takeout
immich-go upload from-google-photos --server=http://your-ip:2283 --api-key=your-api-key /path/to/takeout-*.zip
Things to know
- Described by its author as an early version that is not yet extensively tested.
- Requires a running Immich server and an API key with appropriate permissions.
- Licensed under AGPL-3.0, a copyleft license with network-use obligations.
Topics
FAQ
- What is immich-go?
- A Go command-line tool for uploading photo collections, including Google Photos Takeout archives, to a self-hosted Immich server without Node.js. Immich-go is a command-line tool for moving large photo libraries into a self-hosted Immich server. It works as an alternative to the official immich-cli and is distributed as a single binary, so it does not require Node.js or Docker to run.
- Is immich-go free to use? What license does it have?
- immich-go is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
- Is immich-go still maintained?
- Actively maintained. The last commit to immich-go was on Oct 18, 2026.
- What can I use immich-go for?
- Migrating a Google Photos library to a self-hosted Immich server Importing iCloud Photos exports into Immich Moving assets from one Immich instance to another Bulk-uploading a large local photo archive from a NAS or disk
- How do I install immich-go?
- 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
- Where can I get immich-go?
- The source code and installation instructions are on GitHub: https://github.com/simulot/immich-go
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A self-hosted, offline-first knowledge base with an extended Markdown editor, team workspaces, OIDC SSO and S3-backed storage.
A self-hosted cloud platform shipped as a single Go binary for sharing files, editing code collaboratively, and managing users.
A CLI and Go library for managing database schema changes through versioned SQL files or Go functions.
A free, open-source web panel for managing game servers, running each server in an isolated Docker container.
Free, self-hosted PostgreSQL backup tool with Point-in-Time Recovery, automated restore verification, and a web UI.