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-IMAuditFile
  • 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