Skip to main content

PSImmich

This project has adopted the following policies CodeOfConduct Contributing Security

Project status​

GitHub Workflow Status Codecov Platform PowerShell Gallery License docs changelog GitHub release (latest SemVer including pre-releases) GitHub release (latest SemVer including pre-releases) Static Badge Static Badge2

About​

PSImmich is a Powershell API wrapper for Immich

Installation​

To install from the PowerShell gallery using PowerShellGet run the following command:

Install-Module PSImmich -Scope CurrentUser

Usage​

Before calling the Immich cmdlets a session needs to be created. Currently it is supported to use an API key or credentials (username and password)

Connect-Immich -BaseURL 'https://immich.domain.com' -AccessToken 'ztKkvGWVIacJATX7RLCbWCISpamwEQkLpakn8O48acE'
$Cred = Get-Credential
Connect-Immich -BaseURL 'https://immich.domain.com' -Credential $Cred

You can verify that the connection is working by calling Get-IMSession and verifying that AccessTokenValid is true

Get-IMSession

BaseUri : https://immich.domain.com
AuthMethod : AccessToken
AccessToken : System.Security.SecureString
AccessTokenValid : True
Credential :
JWT :
APIUri : https://immich.domain.com/api
ImmichVersion : 1.98.2
SessionID : 67055f46-51aa-42a2-8471-46170c441558

The session object can be passed to all cmdlets. This is useful if connection to more than one Immich instance is needed.

$Session1 = Connect-Immich -BaseURL 'https://immich.domain.com' -AccessToken 'ztKkvGWVIacJATX7RLCbWCISpamwEQkLpakn8O48acE' -PassThru

Get-IMAsset -Session $Session1

To see available cmdlets you can use the following command

Get-Command -Module PSImmich | Format-Wide -Column 4 -Property Name

Add-IMActivity Add-IMAlbumAsset Add-IMAlbumUser Add-IMAsset
Add-IMAssetTag Add-IMMyProfilePicture Add-IMPartner Add-IMSharedLinkAsset
...
...

Available commands​

Below is a reference of the available command. For documentation about each command please see the docs

Activity​

  • Add-IMActivity
  • Get-IMActivity
  • Get-IMActivityStatistic
  • Remove-IMActivity

Album​

  • Add-IMAlbumUser
  • Get-IMAlbum
  • Get-IMAlbumCount
  • New-IMAlbum
  • Remove-IMAlbum
  • Remove-IMAlbumUser
  • Rename-IMAlbum
  • Set-IMAlbum
  • Set-IMAlbumUser

API key​

  • Get-IMAPIKey
  • New-IMAPIKey
  • Remove-IMAPIKey
  • Set-IMAPIKey

Asset​

  • Export-IMAssetThumbnail
  • Get-IMAsset
  • Get-IMAssetMemoryLane
  • Get-IMAssetStatistic
  • Import-IMAsset
  • Remove-IMAsset
  • Restore-IMAsset
  • Save-IMAsset
  • Set-IMAsset
  • Start-IMAVideoTranscode
  • Update-IMAssetMetadata
  • Update-IMAssetThumbnail

Audit​

  • Get-IMAuditDelete

Auth​

  • Test-IMAccessToken

AuthSession​

  • Get-IMAuthSession
  • Remove-IMAuthSession

Face​

  • Get-IMFace

FileReport​

  • Get-IMFileChecksum

Job​

  • Clear-IMJob
  • Get-IMJob
  • Resume-IMJob
  • Start-IMJob
  • Suspend-IMJob

Library​

  • Get-IMLibrary
  • New-IMLibrary
  • Remove-IMLibrary
  • Remove-IMOfflineLibraryFile
  • Set-IMLibrary
  • Sync-IMLibrary
  • Test-IMLibrary

Map​

  • Get-IMMapMarker
  • Get-IMMapStyle

Memories​

  • Get-IMMemory
  • New-IMMemory
  • Remove-IMMemory
  • Set-IMMemory

Notification​

  • Send-IMTestMessage

Partner​

  • Add-IMPartner
  • Get-IMPartner
  • Remove-IMPartner
  • Set-IMPartner

Person​

  • Export-IMPersonThumbnail
  • Get-IMPerson
  • Merge-IMPerson
  • New-IMPerson
  • Set-IMPerson
  • Find-IMAsset
  • Find-IMCity
  • Find-IMExploreData
  • Find-IMPerson
  • Find-IMPlace

ServerConfig​

  • Get-IMConfig
  • Set-IMConfig

ServerInfo​

  • Get-IMServer
  • Get-IMServerConfig
  • Get-IMServerFeature
  • Get-IMServerStatistic
  • Get-IMServerStorage
  • Get-IMServerVersion
  • Get-IMSupportedMediaType
  • Get-IMTheme
  • Test-IMPing

Session​

  • Connect-Immich
  • Disconnect-Immich
  • Get-IMSession
  • Invoke-ImmichMethod
  • Add-IMSharedLinkAsset
  • Get-IMSharedLink
  • New-IMSharedLink
  • Remove-IMSharedLink
  • Remove-IMSharedLinkAsset
  • Set-IMSharedLink

Tag​

  • Add-IMAssetTag
  • Get-IMTag
  • New-IMTag
  • Remove-IMAssetTag
  • Remove-IMTag
  • Rename-IMTag

Timeline​

  • Get-IMTimeBucket

User​

  • Add-IMMyProfilePicture
  • Export-IMProfilePicture
  • Get-IMUser
  • New-IMUser
  • Remove-IMMyProfilePicture
  • Remove-IMUser
  • Restore-IMUser
  • Set-IMUser