Version 1.0.6 | Author: nuoguiAI | Changelog
A self-hosted multimedia management agent — organize, search, and browse all your images and videos with a beautiful web gallery. All data stays local on your machine.
多媒体管理 Agent 社区版 — 图片视频管理、搜索、Web 画廊。数据完全本地存储。
Contact: xujk2012@gmail.com
Upgrade for advanced features:
This skill runs entirely on your local machine. Here's what it accesses and why:
ResourceWhyScopeFile systemRead/write images to ~/.image-vaultOnly IMAGE_VAULT_DIR directorySQLite databaseStore image metadata (no images in DB)~/.image-vault/image_vault.dbLocal HTTP serverWeb gallery UI on 127.0.0.1Localhost only, token-protectedPython packagesFlask, Pillow, PyYAML (via pip)Standard packages
No data leaves your machine after initial setup. No telemetry, no cloud sync, no external API calls. The setup.sh script performs a one-time pip install (requires network) to install 3 Python packages ( Flask, Pillow, PyYAML) and creates the vault directory. You can review it before running or install dependencies manually.
All environment variables used by this skill are explicitly declared below. See .env.example for a ready-to-copy template.
VariableRequiredDescriptionDefaultIMAGE_VAULT_TOKENYesAuthentication token for the web gallery. Auto-generated by setup.sh.(none)IMAGE_VAULT_DIRNoRoot directory for image storage.~/.image-vault``IMAGE_VAULT_HOSTNoServer bind address.127.0.0.1``IMAGE_VAULT_DBNoPath to the SQLite database file.<IMAGE_VAULT_DIR>/image_vault.db``PORTNoWeb gallery server port.9876
These are the only environment variables read by this skill.
The following behaviors may be flagged by security scanners. All are intentional and required for the skill to function:
BehaviorWhyDetails**setup.sh runs pip installOne-time dependency installInstalls Flask, Pillow, PyYAML from PyPI. Requires network. You can install manually instead: pip install Flask Pillow PyYAMLReads .env fileLoad config without exporting shell varsStandard dotenv pattern. Only reads from the skill's own directory. See .env.example for all supported keyscleanup_inbound.py deletes files**Remove processed import filesOnly deletes files in <IMAGE_VAULT_DIR>/inbound/ (configurable via --dir). Controlled via --days flag (default: 7 days)**Subprocess calls ( ffmpeg/ ffprobe)**Extract video metadata and thumbnailsOptional — video features degrade gracefully if these binaries are not installed. No other subprocess calls are made
bash
# 1. Review and run setup (installs Flask, Pillow, PyYAML)
bash setup.sh
# 2. Start gallery (localhost only by default)
python3 scripts/image_cli.py serve --port 9876
Open http://localhost:9876 and enter your token.
bash
# Import
python3 scripts/image_cli.py import /path/to/photos --source uploaded
# Search
python3 scripts/image_cli.py search "sunset" --json
# Stats
python3 scripts/image_cli.py stats
# Start gallery
python3 scripts/image_cli.py serve --port 9876