Skip to content

Installation

immich-go is a single binary with no dependencies. Download it and run.

Download

Visit the releases page and download the appropriate archive:

PlatformArchitectureFile
Windowsx64immich-go_Windows_x86_64.zip
macOSIntelimmich-go_Darwin_x86_64.tar.gz
macOSApple Siliconimmich-go_Darwin_arm64.tar.gz
Linuxx64immich-go_Linux_x86_64.tar.gz
LinuxARM64immich-go_Linux_arm64.tar.gz
FreeBSDx64immich-go_Freebsd_x86_64.tar.gz

Extract

bash
tar -xzf immich-go*.tar.gz
powershell
# Use Windows Explorer or:
Expand-Archive immich-go*.zip -DestinationPath .

Install (Optional)

Add to your system PATH for easy access:

bash
sudo mv immich-go /usr/local/bin/
powershell
# Move to a directory in your PATH, or add the current directory to PATH

Verify

bash
immich-go --version

Build from Source

Requires Go 1.26 or higher.

bash
git clone https://github.com/sweepies/immich-go.git
cd immich-go
go build

To install to $GOPATH/bin:

bash
go install

Nix

immich-go is available in nixpkgs:

bash
# Try without installing
nix-shell -p immich-go

# With flakes
nix run nixpkgs#immich-go -- --help

For NixOS, add to your configuration:

nix
environment.systemPackages = with pkgs; [
  immich-go
];

Termux (Android)

Pre-built ARM64 binaries don't work in Termux. Build from source:

bash
pkg install git golang
git clone https://github.com/sweepies/immich-go.git
cd immich-go
go build

# Add to PATH
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc
source ~/.bashrc

API Permissions

Create an API key in Immich (Account Settings > API Keys) with these permissions:

Required Permissions

PermissionPurpose
asset.readRead existing assets
asset.uploadUpload new assets
asset.updateUpdate asset metadata
asset.deleteDelete assets (for stacking)
asset.downloadDownload assets (for archive/migration)
asset.copyCopy assets between albums
asset.replaceReplace existing assets
asset.statisticsGet upload statistics
album.createCreate albums
album.readRead album information
albumAsset.createAdd assets to albums
stack.createCreate photo stacks
tag.assetTag assets
tag.createCreate new tags
server.aboutGet server information
user.readRead user information

Admin Permissions (for job control)

To pause Immich jobs during upload (recommended for large imports):

PermissionPurpose
job.createControl background jobs
job.readRead job status

Troubleshooting

Permission Denied (Linux/macOS)

bash
chmod +x immich-go

Command Not Found

Either:

  • Add the binary to your PATH
  • Use the full path: /path/to/immich-go
  • Run from the directory: ./immich-go

SSL/TLS Certificate Errors

If you have certificate issues (self-signed certs, corporate proxies):

bash
immich-go upload --skip-verify-ssl ...

Security Note

Only use --skip-verify-ssl in trusted environments.