---
title: "Immich Photos — Extensión Mango 3.1 Grove"
description: "Explora fotos recientes, favoritos y álbumes de tu servidor Immich, luego agrega una copia privada o un enlace para compartir a tu borrador."
url: "https://mangoirc.chat/es/extensions/immich"
language: "es"
---

[← Todas las extensiones](https://mangoirc.chat/es/extensions)

Fotos · Sprig

# Immich Photos

por [Mango](https://mangoirc.chat/)

Explora fotos recientes, favoritos y álbumes de tu servidor Immich, luego agrega una copia privada o un enlace para compartir a tu borrador.

Instalar en Mango 3.1 15 KB · Mango 3.1

Versión

0.1.4

Tipo de ejecución

Panel de redacción

Grove API

1

Actualizado

2026-09-18

Permisos solicitados

## 4 permisos

- **Abrir sesiones de inicio de sesión seguras**Utiliza la sesión de autenticación del sistema de Mango para un inicio de sesión OAuth solicitado por el usuario.
- **Conectarse a servicios aprobados**Realiza solicitudes HTTPS limitadas solo a sitios web aceptados durante la instalación.
- **Mantener secretos en el llavero**Almacena valores privados en un espacio de nombres Keychain reservado para esta extensión.
- **Subir archivos**Sube archivos mediante tu proveedor configurado e inserta sus enlaces en el borrador del mensaje sin enviarlo.

Acceso a la red

## Hosts declarados

Grove bloquea todos los destinos de red excepto estos orígenes declarados:

- ` https://* `

Desde la extensión

## README · Inglés

# Immich Photos

This composer Sprig signs in directly to a user-selected Immich instance, browses recent photos, and inserts either an Immich share link or a FILEHOST/upload-provider copy into Mango’s message draft. The user remains in control of the final IRC message.

It requires Mango 3.1 or newer and an Immich server with OAuth login enabled. The OAuth or OpenID Connect client configured at the identity provider used by Immich must allow ` mango://grove/oauth ` as an additional exact redirect URI. Keep Immich’s existing browser and mobile redirect URIs. This requirement applies to Authentik, Keycloak, Authelia, and any other provider that validates redirect URIs; the extension itself remains provider agnostic.

## Sign-in flow

Immich brokers its configured login provider, so the extension needs no provider-specific code or configuration in Mango:

1. Mango creates a one-time state and S256 PKCE transaction through ` grove.oauth.prepare() `.
2. The extension sends the callback, state, and challenge to the selected Immich server’s ` /api/oauth/authorize ` endpoint.
3. Mango opens the authorization URL returned by Immich in an isolated system authentication session and validates the callback. The isolated session prevents an identity provider’s unrelated browser login from silently selecting the wrong Immich account.
4. The extension sends that callback and Mango’s verifier to ` /api/oauth/callback `.
5. Immich returns its own access token, which is stored in ` grove.secrets.application ` (Keychain), never Web storage.

The extension does not know or configure any identity provider behind Immich. It receives no password.

## Permissions

- ` oauth.authorize ` opens the user-visible system sign-in session.
- ` network.request ` makes bounded native HTTPS requests to Immich instances that do not permit browser CORS.
- ` storage.secure ` stores the Immich session in Mango’s Keychain namespace.
- ` uploads.use ` hands one bounded display-quality rendition to Mango’s configured native uploader without exposing its credentials to the extension.
- ` https://* ` lets users enter any self-hosted Immich origin and lets Mango open whatever HTTPS identity-provider URL that instance returns. This broad destination grant is visible in the installation consent sheet.

Native requests never follow redirects automatically and reject unsafe headers, non-HTTPS destinations, oversized request/response bodies, and destinations outside the accepted host permissions. Immich thumbnail redirects are accepted only when they stay on the selected instance and within the same asset path, then requested as a separately validated hop. Thumbnail requests are limited to four at a time.

## Sharing behavior

The picker browses recent photos, favorites, and albums. Photo collections start with the newest 60 images and fetch older pages as the user scrolls; the Albums source shows cover art and drills into each album. **Immich link** creates one Immich ` INDIVIDUAL ` shared link with downloads enabled and metadata hidden; the user chooses a one-day, seven-day, 30-day, or non-expiring link. **Uploaded copy** downloads Immich’s display-quality preview and hands it to Mango’s configured native uploader, which avoids placing the Immich instance hostname in the draft. Mango inserts either resulting URL into the composer and never sends it automatically.

## Test

```bash
node Examples/grove-immich-composer/immich-client.test.cjs
```

**manifest.json**chat.mangoirc.grove.immich

```
{
  "grove": 1,
  "id": "chat.mangoirc.grove.immich",
  "name": "Immich Photos",
  "version": "0.1.4",
  "description": "Browse recent photos, favorites, and albums from your Immich server, then add a private copy or share link to your draft.",
  "author": {
    "name": "Mango",
    "url": "https://mangoirc.chat"
  },
  "readme": "README.md",
  "entry": "index.html",
  "presentation": {
    "surfaces": [
      "composer"
    ],
    "defaultSurface": "composer",
    "minSize": {
      "width": 340,
      "height": 300
    },
    "defaultSize": {
      "width": 560,
      "height": 580
    }
  },
  "capabilities": [
    "oauth.authorize",
    "network.request",
    "storage.secure",
    "uploads.use"
  ],
  "hostPermissions": [
    "https://*"
  ]
}
```
