immich-go

simulot·simulot.immich-go

An alternative to the immich-CLI command that doesn't depend on nodejs installation.

Immich-Go is an open-source tool designed to streamline uploading large photo collections to your self-hosted Immich server. It doesn't require NodeJS or Docker for installation. This makes it easy to get started, even for those less familiar with technical environments.

winget install --id simulot.immich-go --exact --source winget

Latest 0.32.0·June 25, 2026

Release Notes

Release Notes - v0.32.0 This release brings full compatibility with Immich V3.0.0. All upload, album, and server communication paths have been updated to work with the new API while maintaining backward compatibility with Immich V2. A big thank you to bwees who has done the very neat work for addressing changes: ✨ New Features

  • Immich V3 support – Full compatibility with Immich V3.0.0. The tool now detects the server version and adapts its behavior accordingly, ensuring smooth operation regardless of which version you're running.
  • Server version detection – immich-go now reads and exposes the server version at startup, enabling version-aware API calls. πŸš€ Improvements
  • Album contents via search – Album asset retrieval now uses the paginated POST /api/search/metadata endpoint instead of relying on GET /api/albums/{id} to return assets. This works with both Immich V2 and V3 and is more reliable for large albums.
  • Error handling overhaul – Server error messages are now parsed according to the server version (Zod-based errors for V3, legacy format for V2), providing clearer and more actionable error output. πŸ”§ Internal Changes
  • Asset upload field changes – Removed deviceId and deviceAssetId from the upload payload (dropped in Immich V3's AssetMediaCreateDto). These fields are silently ignored by V2, so this change is safe across versions.
  • Duration field handling – The duration field has been updated to use "0" as a plain string value, which is accepted by both Immich V2 and V3.
  • Removed deprecated replaceAsset – The ReplaceAsset method and its associated asset.replace permission have been removed entirely. Use CopyAsset instead.
  • Error processing moved to immich/error.go – All server error parsing logic is now centralized with a serverError interface and separate serverErrorV2/serverErrorV3 implementations.
  • Album contents E2E test – Added Test_GetImmichAlbums to verify that album uploads and duplicate detection work correctly with the new search-based album retrieval. Changelog
  • 6bbcad6 Merge pull request #1227 from simulot/dependabot/github_actions/actions/setup-go-6
  • eaf6d44 Merge pull request #1228 from simulot/dependabot/github_actions/actions/upload-artifact-5
  • 3fe9218 Merge pull request #1229 from simulot/dependabot/github_actions/actions/checkout-6
  • 720fd5a Merge pull request #1230 from simulot/dependabot/github_actions/actions/setup-node-6
  • 2e5607a Merge pull request #1231 from simulot/dependabot/github_actions/actions/github-script-8
  • d274f81 Merge pull request #1260 from rob518183:patch-1
  • cc928ed Merge pull request #1300 from marianwolf/main
  • e6b8933 Merge pull request #1377 from bwees:fix/v3
  • 3e5ee70 Update archive.md
  • 6cfb85f chore(deps): bump actions/checkout from 4 to 6
  • d43f6d1 chore(deps): bump actions/github-script from 7 to 8
  • dd52877 chore(deps): bump actions/setup-go from 5 to 6
  • 2cdd446 chore(deps): bump actions/setup-node from 4 to 6
  • 59e781e chore(deps): bump actions/upload-artifact from 4 to 5
  • f7d19fc doc: update readme for v0.32.0 with Immich V3 support
  • 51e2032 feat: add release notes for v0.32.0 with Immich V3 compatibility and improvements
  • 5ca6b5a fix: album upload
  • 18196f9 fix: immich v3 support
  • d717789 update archive bash command in readme

Installer type: zip

ArchitectureScopeDownloadSHA256
x64β€”Download37326F95D6654F7F67A5FDE3263E96AA8F9CF288DCBB9A2164AAFAE0AAA144AF
arm64β€”Download3BA2AD0F7B175CB31FAC15C1F13648F3622C9C82C5CBEC0F63A46CE8A1110AC8

Details

Homepage
https://github.com/simulot/immich-go
License
AGPL-3.0
Publisher
simulot
Support
https://github.com/simulot/immich-go/issues

Tags

golanggoogleimmichimmich-cliphotostakeout

Older versions (16)

0.31.0
ArchitectureScopeDownloadSHA256
x64β€”DownloadA81DFB582D94B8901A75E57FC91778C837FA060540DD814F9F56695C91F9992A
arm64β€”Download0F82C2649C3EBE01E84391EFEA8464DE0FBB9D2A4815074154A057AF04C8DE3A
0.30.0
ArchitectureScopeDownloadSHA256
x64β€”DownloadE4C6E51C6036CD017448566C72917B9B76F0C30331CDD9A63A4F5E698021FEBF
arm64β€”DownloadFAB95BF27B8C5CD9C439F7EF8D4026DB2431B3A265FA7B76C517FE897F469B82
0.29.0
ArchitectureScopeDownloadSHA256
x64β€”Download0EE81B7CA785EFF6875D84E894C9EB70603030994CB16FD61B756719BFD5812C
arm64β€”Download5CB9D76729E34D6334FD01BD429B5E4CF4D85AA149BE73EADC3D6E4B17C46C40
0.28.0
ArchitectureScopeDownloadSHA256
x64β€”Download047631A7DA6673AB7966BDC4ED4700DCD1B5ACD6B6265475EC29165AB49AE72D
arm64β€”DownloadF08AFA1BC4419023D8B85F11023D8B10E69409870F9841F4836B0D505845ABBD
0.27.0
ArchitectureScopeDownloadSHA256
x64β€”Download924B641086BD605B06438132EAC687B33B4EA4848E03D0DD45CAFF215CB2A8FC
arm64β€”DownloadEFDC7AA3A503BBF7280C1E506373A52525DD96E610EFB89509D06C724157DF9B
0.26.3
ArchitectureScopeDownloadSHA256
x64β€”Download54DECD214B781B8946C1B92139EEC711B9F3D423EFAEB4C7BD02CF549C42269F
arm64β€”Download7FFA9569ACEDC44AA355A81BC188A33960B769B0B2853EF38B849E3197D7301A
0.26.2
ArchitectureScopeDownloadSHA256
x64β€”Download148A80828A65BA5E145DCA03B666DF701D065F9E60E858C1D2BA1891173B51D1
arm64β€”Download77704727B062FFD80F160ECD1931B6D8EFDF1643B5058F885B4241279A182091
0.26.1
ArchitectureScopeDownloadSHA256
x64β€”DownloadB53818D6F5C12777E81E5858C100C9680BF1A7432303E226C82843213114DEA3
arm64β€”DownloadAE15E0C3CE8EC0AC7836EF61714EF48BFBA0441BD6B37AD976B4B7D4BDF4B5E5
0.26.0
ArchitectureScopeDownloadSHA256
x64β€”DownloadC50C9C7C1D71EEF442C08DECB2816367FB2B1AA54E7F07A7D7FD879A463E40F4
arm64β€”DownloadB27B8CE4C2C2997810A9A4F11ED5BE1B5F6FF82F70200B7BB3EE7CC478AE64F6
0.25.3
ArchitectureScopeDownloadSHA256
x64β€”Download64643B038E9D1598708521B75EE04699D24DBA323666AEB1AF8BCE95EAECE303
arm64β€”DownloadE0F2E18901AD9A47CCA8E8692907F9D220CB1DB1B73CC24E105246DEC47D6138
0.25.2
ArchitectureScopeDownloadSHA256
x64β€”Download43C131EEF31FAA0F188A8918A17D72C76450586113285042B8F1BFCB0A65DBF0
arm64β€”Download96302163011E42F6C8F8D9C78C11FE027616792AE4CF9A5DE81C40A4061581BF
0.25.1
ArchitectureScopeDownloadSHA256
x64β€”Download7AEA27097C26DBEF47338C5E5AF079ED44EFF5998E6BFE7A711D7C57A166F6AC
arm64β€”Download363A7F140C76B4271D782EF22230A1D25ECA24F2A89F20DF5F68A7068164D3A4
0.25.0
ArchitectureScopeDownloadSHA256
x64β€”DownloadF759AA8F629470D963D71422DC5341607B2C861E2B43A7F5DF6EA1E1F248EF39
arm64β€”Download615F229E3BDD32B5EE1D04354374572D8A31E317D35CE18692561D13CEAC839D
0.24.7
ArchitectureScopeDownloadSHA256
x64β€”Download65C1BBB264C07C38B5BAF13E70D5A5459E7C35BD58B486A98DF55E1E4621BDA1
0.24.2
ArchitectureScopeDownloadSHA256
x64β€”Download8F72BAB81BF0D57395794CD08442B3CBB13B3E4026CA3BAD134E2E1DBA88A851
0.24.1
ArchitectureScopeDownloadSHA256
x64β€”DownloadCCB892CC71AA8D384B1A85E5C49BD3DE0BFD56FE1EB6169CFF3F4EB27F32BAC4
arm64β€”Download8A745CDFD1C2F995875E7DD64C9E46D99A7EC134D37966E7B69635DC9F8705B7