Help us improve
Share bugs, ideas, or general feedback.
From immich-photo-manager
Monitors an Immich photo library for new photos that match existing albums using GPS location, CLIP visual similarity, and date patterns, then suggests album additions.
npx claudepluginhub drolosoft/immich-photo-manager --plugin immich-photo-managerHow this skill is triggered — by the user, by Claude, or both
Slash command
/immich-photo-manager:auto-album-curatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Before doing ANYTHING else in this skill, call `ping` on the Immich MCP server.**
Creates, curates, and publishes Immich albums organized by geography, theme, or custom criteria. Automates album creation from user prompts like 'create an album from my trip to Italy'.
Automates Google Photos tasks (upload media, manage albums, search photos, batch add items) via Rube MCP (Composio). Always searches tools first for current schemas.
Share bugs, ideas, or general feedback.
Before doing ANYTHING else in this skill, call ping on the Immich MCP server.
ping succeeds → proceed with the skill normally.ping fails or the MCP tools are not available → STOP. Do not continue. Tell the user:❌ Immich is not connected. This plugin needs a running Immich MCP server to work.
Run /setup-immich-photo-manager to configure your Immich connection. You'll need:
- Your Immich server URL (e.g.,
http://192.168.1.100:2283)- An Immich API key (how to create one)
- The MCP server configured (see /setup-immich-photo-manager)
Nothing in this plugin will work until the connection is configured.
Do NOT skip this check. Do NOT try to run any other tool first. Always ping, always block if it fails.
Analyze new photos against existing albums and suggest additions. Uses GPS proximity, CLIP visual similarity, and temporal patterns to find photos that belong in an album but haven't been added yet.
Use the MCP tool list_albums to get all albums, then get_album for each to understand their contents:
for album in albums:
album.photo_count = len(album.assets)
album.date_range = (min(dates), max(dates))
album.gps_center = average(gps_coordinates)
album.gps_radius = max_distance_from_center
album.themes = [] # populated by CLIP analysis
For each album, build a profile:
GPS Profile:
Temporal Profile:
Visual Profile:
search_smart (CLIP) with descriptive terms derived from album nameFor each album, search for unassigned photos that match its profile:
candidates = []
# GPS-based matching (for location albums)
if album.gps_center:
nearby = search_metadata(
lat=album.gps_center.lat,
lng=album.gps_center.lng,
radius_km=album.gps_radius * 1.5 # slightly wider
)
candidates.extend(nearby)
# CLIP-based matching (for theme albums)
if album.name:
similar = search_smart(query=album.name)
candidates.extend(similar)
# Date-based matching (for event albums)
if album.is_event:
in_range = search_metadata(
date_after=album.date_range[0],
date_before=album.date_range[1]
)
candidates.extend(in_range)
# Filter: only photos NOT already in ANY album
candidates = [c for c in candidates if c.id not in all_album_asset_ids]
For each candidate, compute a relevance score:
| Signal | Weight | Description |
|---|---|---|
| GPS proximity | 0.4 | Distance from album's geographic center |
| Visual similarity | 0.3 | CLIP score against album's representative photos |
| Temporal fit | 0.2 | How well the date fits the album's range |
| Source match | 0.1 | Same camera/source as existing album photos |
Only suggest candidates with score > 0.6.
ALBUM CURATION SUGGESTIONS
═══════════════════════════════════════
📁 Barcelona (42 photos, last updated: 2024-08-15)
3 new photos found:
- IMG_4521.jpg (2024-12-20, GPS: 41.38°N 2.17°E, score: 0.92)
- IMG_4523.jpg (2024-12-20, GPS: 41.39°N 2.18°E, score: 0.89)
- DSC_0012.jpg (2025-01-05, GPS: 41.40°N 2.16°E, score: 0.78)
📁 Family Dinners (28 photos, ongoing collection)
5 new photos found:
- IMG_5102.jpg (2025-02-14, CLIP: "dinner table", score: 0.81)
- IMG_5103.jpg (2025-02-14, CLIP: "family gathering", score: 0.77)
...
📁 Lanzarote 2024 (156 photos, event: Oct 2024)
0 new photos — album appears complete
SUMMARY: 8 photos suggested for 2 albums
Add all? [Yes / Review one by one / Skip]
Use add_assets_to_album MCP tool to add approved photos.
The curator handles different album types differently:
| Type | Detection | Candidate Strategy |
|---|---|---|
| Location | All photos within 50km radius | GPS proximity search |
| Event | Photos span 1-7 days | Strict date range matching |
| Trip | Photos span 1-4 weeks, multiple locations | GPS along the route |
| Theme | No GPS pattern, mixed dates | CLIP visual similarity only |
| People | Album named after a person | Face recognition (if available) |
This skill can be configured to run periodically via the schedule skill:
"Run album curation every Sunday at 9am"
→ Scans for new photos added in the past week
→ Generates suggestions
→ Saves report for user review