pp-google-photos
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGoogle Photos — Printing Press CLI
Google Photos — Printing Press CLI工具
Prerequisites: Install the CLI
前提条件:安装CLI
This skill drives the binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
google-photos-pp-cli- Install via the Printing Press installer:
bash
npx -y @mvanhorn/printing-press install google-photos --cli-only - Verify:
google-photos-pp-cli --version - Ensure (or
$GOPATH/bin) is on$HOME/go/bin.$PATH
If the install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.23+):
npxbash
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/google-photos/cmd/google-photos-pp-cli@latestIf reports "command not found" after install, the install step did not put the binary on . Do not proceed with skill commands until verification succeeds.
--version$PATH本技能基于二进制文件运行。在调用本技能的任何命令前,必须确认CLI已安装。如果未安装,请先执行以下步骤:
google-photos-pp-cli- 通过Printing Press安装器安装:
bash
npx -y @mvanhorn/printing-press install google-photos --cli-only - 验证安装:
google-photos-pp-cli --version - 确保(或
$GOPATH/bin)已添加到$HOME/go/bin环境变量中。$PATH
如果安装失败(无Node环境、离线等情况),可改用Go直接安装(要求Go 1.23及以上版本):
npxbash
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/google-photos/cmd/google-photos-pp-cli@latest如果安装后执行提示“command not found”,说明安装程序未将二进制文件添加到中。请在验证成功后再执行技能命令。
--version$PATHCommand Reference
命令参考
albums — Manage app-created Google Photos albums.
- — Add text, location, or map enrichment to an app-created album.
google-photos-pp-cli albums add-enrichment - — Add app-created media items to an app-created album.
google-photos-pp-cli albums batch-add-media-items - — Remove app-created media items from an app-created album.
google-photos-pp-cli albums batch-remove-media-items - — Create an album in the user's Google Photos library.
google-photos-pp-cli albums create - — Get an app-created album by ID.
google-photos-pp-cli albums get - — List albums created by this app.
google-photos-pp-cli albums list - — Update title or cover photo on an app-created album.
google-photos-pp-cli albums patch
media-items — Manage app-created Google Photos media items.
- — Create media items from upload tokens.
google-photos-pp-cli media-items batch-create - — Get multiple app-created media items by ID.
google-photos-pp-cli media-items batch-get - — Get an app-created media item by ID.
google-photos-pp-cli media-items get - — List media items created by this app.
google-photos-pp-cli media-items list - — Update the description on an app-created media item.
google-photos-pp-cli media-items patch - — Search app-created media items by album or filters.
google-photos-pp-cli media-items search
picker — Create, poll, clean up, and read Google Photos Picker sessions.
- — Create a Picker session and return the picker URI.
google-photos-pp-cli picker create-session - — Delete a Picker session after selected media bytes have been retrieved.
google-photos-pp-cli picker delete-session - — Get Picker session status.
google-photos-pp-cli picker get-session - — List media items picked by the user during a Picker session.
google-photos-pp-cli picker list-media-items
Hand-written commands
- — Upload raw photo or video bytes and print the upload token for media-items batch-create.
google-photos-pp-cli upload file <path> - — Poll a Picker session until selected media items are ready.
google-photos-pp-cli picker wait <session-id> - — Emit machine-readable command, flag, auth, and safety-policy metadata.
google-photos-pp-cli schema --pretty - — List stored OAuth accounts.
google-photos-pp-cli auth list - — Set the default OAuth account.
google-photos-pp-cli auth use <account-email> - — Remove a stored OAuth account.
google-photos-pp-cli auth remove <account-email>
albums — 管理应用创建的Google Photos相册。
- — 为应用创建的相册添加文本、位置或地图附加信息。
google-photos-pp-cli albums add-enrichment - — 批量将应用创建的媒体项添加到应用创建的相册中。
google-photos-pp-cli albums batch-add-media-items - — 从应用创建的相册中批量移除应用创建的媒体项。
google-photos-pp-cli albums batch-remove-media-items - — 在用户的Google Photos图库中创建相册。
google-photos-pp-cli albums create - — 通过ID获取应用创建的相册。
google-photos-pp-cli albums get - — 列出本应用创建的所有相册。
google-photos-pp-cli albums list - — 更新应用创建的相册的标题或封面照片。
google-photos-pp-cli albums patch
media-items — 管理应用创建的Google Photos媒体项。
- — 通过上传令牌创建媒体项。
google-photos-pp-cli media-items batch-create - — 通过ID批量获取多个应用创建的媒体项。
google-photos-pp-cli media-items batch-get - — 通过ID获取应用创建的媒体项。
google-photos-pp-cli media-items get - — 列出本应用创建的所有媒体项。
google-photos-pp-cli media-items list - — 更新应用创建的媒体项的描述信息。
google-photos-pp-cli media-items patch - — 按相册或筛选条件搜索应用创建的媒体项。
google-photos-pp-cli media-items search
picker — 创建、轮询、清理和读取Google Photos Picker会话。
- — 创建Picker会话并返回选择器URI。
google-photos-pp-cli picker create-session - — 在获取到所选媒体字节后删除Picker会话。
google-photos-pp-cli picker delete-session - — 获取Picker会话状态。
google-photos-pp-cli picker get-session - — 列出用户在Picker会话中选择的媒体项。
google-photos-pp-cli picker list-media-items
手动编写的命令
- — 上传原始照片或视频字节,并打印用于media-items batch-create的上传令牌。
google-photos-pp-cli upload file <path> - — 轮询Picker会话,直到所选媒体项准备就绪。
google-photos-pp-cli picker wait <session-id> - — 输出机器可读的命令、标志、认证和安全策略元数据。
google-photos-pp-cli schema --pretty - — 列出已存储的OAuth账户。
google-photos-pp-cli auth list - — 设置默认OAuth账户。
google-photos-pp-cli auth use <account-email> - — 删除已存储的OAuth账户。
google-photos-pp-cli auth remove <account-email>
Google Photos Scope Limits
Google Photos范围限制
Google Photos Library API read and edit scopes are limited to app-created albums and media. Use Library API commands here for app-created content, uploads, and album/media management. Use Picker commands when a user needs to select media from their broader Google Photos library.
Google Photos Library API的读取和编辑权限仅限于应用创建的相册和媒体。使用此处的Library API命令管理应用创建的内容、上传以及相册/媒体。当用户需要从其更广泛的Google Photos图库中选择媒体时,请使用Picker命令。
Finding the right command
查找合适的命令
When you know what you want to do but not which command does it, ask the CLI directly:
bash
google-photos-pp-cli which "<capability in your own words>"which02--help当你知道要执行的操作但不确定使用哪个命令时,可直接询问CLI:
bash
google-photos-pp-cli which "<用你自己的话描述的功能>"which02--helpAuth Setup
认证设置
Authenticate via the browser:
bash
google-photos-pp-cli auth login --client-id "$GOOGLE_PHOTOS_CLIENT_ID"Tokens are stored locally and refreshed automatically.
For multiple Google accounts, store tokens under account emails and select the account explicitly:
bash
google-photos-pp-cli auth login you@example.com --client-id "$GOOGLE_PHOTOS_CLIENT_ID"
google-photos-pp-cli auth list --json
google-photos-pp-cli auth use you@example.com
google-photos-pp-cli --account you@example.com albums list --agentAccount selection order: , , default, then legacy single-token config.
--accountGOOGLE_PHOTOS_ACCOUNTauth useRun to verify setup.
google-photos-pp-cli doctor通过浏览器进行认证:
bash
google-photos-pp-cli auth login --client-id "$GOOGLE_PHOTOS_CLIENT_ID"令牌会存储在本地并自动刷新。
对于多个Google账户,可按账户邮箱存储令牌并明确选择账户:
bash
google-photos-pp-cli auth login you@example.com --client-id "$GOOGLE_PHOTOS_CLIENT_ID"
google-photos-pp-cli auth list --json
google-photos-pp-cli auth use you@example.com
google-photos-pp-cli --account you@example.com albums list --agent账户选择优先级:参数 > 环境变量 > 设置的默认账户 > 旧版单令牌配置。
--accountGOOGLE_PHOTOS_ACCOUNTauth use执行验证设置是否正确。
google-photos-pp-cli doctorAgent Mode
Agent模式
Add to any command. Expands to: .
--agent--json --compact --no-input --no-color --yes-
Pipeable — JSON on stdout, errors on stderr
-
Filterable —keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:
--selectbashgoogle-photos-pp-cli albums list --agent --select id,name,status -
Previewable —shows the request without sending
--dry-run -
Offline-friendly — sync/search commands can use the local SQLite store when available
-
Non-interactive — never prompts, every input is a flag
-
Guarded — use/
--enable-commandswith dotted command paths:--disable-commandsbashgoogle-photos-pp-cli --enable-commands albums.list albums list --agent google-photos-pp-cli --disable-commands picker.delete-session picker delete-session SESSION_ID --agent -
Introspectable — useor
schema --prettyfor the full JSON command contract.agent-context --pretty
在任何命令后添加参数。等效于:。
--agent--json --compact --no-input --no-color --yes-
可管道传输 — 标准输出为JSON,错误信息输出到标准错误
-
可筛选 —参数保留指定字段子集。点路径可深入嵌套结构;数组会遍历每个元素。这对于在冗长API中精简上下文至关重要:
--selectbashgoogle-photos-pp-cli albums list --agent --select id,name,status -
可预览 —参数显示请求内容但不发送
--dry-run -
离线友好 — 同步/搜索命令在本地SQLite存储可用时可使用该存储
-
非交互式 — 从不提示输入,所有输入均通过标志参数提供
-
可管控 — 使用/
--enable-commands搭配点式命令路径:--disable-commandsbashgoogle-photos-pp-cli --enable-commands albums.list albums list --agent google-photos-pp-cli --disable-commands picker.delete-session picker delete-session SESSION_ID --agent -
可自省 — 使用或
schema --pretty获取完整的JSON命令契约。agent-context --pretty
Baked Safety Profiles
内置安全配置文件
Build stronger local guardrails when exposing this CLI or MCP server to autonomous agents:
bash
make build-readonly
make build-agent-safe
make build-mcp-readonly
make build-mcp-agent-safesafety_readonlysafety_agent_safe当将此CLI或MCP服务器暴露给自主Agent时,可构建更强的本地防护:
bash
make build-readonly
make build-agent-safe
make build-mcp-readonly
make build-mcp-agent-safesafety_readonlysafety_agent_safeResponse envelope
响应信封
Commands that read from the local store or the API wrap output in a provenance envelope:
json
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}Parse for data and to know whether it's live or local. A human-readable summary is printed to stderr only when stdout is a terminal — piped/agent consumers get pure JSON on stdout.
.results.meta.sourceN results (live)从本地存储或API读取数据的命令会将输出包装在来源信封中:
json
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}解析获取数据,通过判断数据是实时还是本地的。仅当标准输出为终端时,才会将人类可读的摘要打印到标准错误;管道/Agent消费者会在标准输出获取纯JSON。
.results.meta.sourceN results (live)Agent Feedback
Agent反馈
When you (or the agent) notice something off about this CLI, record it:
google-photos-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
google-photos-pp-cli feedback --stdin < notes.txt
google-photos-pp-cli feedback list --json --limit 10Entries are stored locally at . They are never POSTed unless is set AND either is passed or . Default behavior is local-only.
~/.google-photos-pp-cli/feedback.jsonlGOOGLE_PHOTOS_FEEDBACK_ENDPOINT--sendGOOGLE_PHOTOS_FEEDBACK_AUTO_SEND=trueWrite what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.
当你(或Agent)发现此CLI存在问题时,可记录反馈:
google-photos-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
google-photos-pp-cli feedback --stdin < notes.txt
google-photos-pp-cli feedback list --json --limit 10反馈条目存储在本地文件中。除非设置了且传递了参数或设置,否则反馈不会被POST发送。默认行为仅存储在本地。
~/.google-photos-pp-cli/feedback.jsonlGOOGLE_PHOTOS_FEEDBACK_ENDPOINT--sendGOOGLE_PHOTOS_FEEDBACK_AUTO_SEND=true请记录让你感到意外的内容,而非正式的错误报告。简短、具体、单行描述:这样的反馈更有价值。
Output Delivery
输出交付
Every command accepts . The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
--deliver <sink>| Sink | Effect |
|---|---|
| Default; write to stdout only |
| Atomically write output to |
| POST the output body to the URL ( |
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
每个命令都支持参数。输出会发送到指定的接收端,同时保留(或替代)标准输出,以便Agent无需手动管道即可路由命令结果。支持三种接收端:
--deliver <sink>| 接收端 | 效果 |
|---|---|
| 默认;仅写入标准输出 |
| 原子性地将输出写入 |
| 将输出主体POST到指定URL(当使用 |
不支持的协议会返回结构化错误并列出支持的类型。Webhook失败时返回非零退出码,并在标准错误中记录URL和HTTP状态码。
Named Profiles
命名配置文件
A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.
google-photos-pp-cli profile save briefing --json
google-photos-pp-cli --profile briefing albums list
google-photos-pp-cli profile list --json
google-photos-pp-cli profile show briefing
google-photos-pp-cli profile delete briefing --yesExplicit flags always win over profile values; profile values win over defaults. lists all available profiles under so introspecting agents discover them at runtime.
agent-contextavailable_profiles配置文件是一组保存的标志值,可在多次调用中复用。适用于定时Agent每次运行都使用相同配置调用同一命令的场景——即HeyGen的“Beacon”模式。
google-photos-pp-cli profile save briefing --json
google-photos-pp-cli --profile briefing albums list
google-photos-pp-cli profile list --json
google-photos-pp-cli profile show briefing
google-photos-pp-cli profile delete briefing --yes显式标志始终优先于配置文件值;配置文件值优先于默认值。会在下列出所有可用配置文件,以便自省Agent在运行时发现它们。
agent-contextavailable_profilesExit Codes
退出码
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 4 | Authentication required |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 使用错误(参数错误) |
| 3 | 资源未找到 |
| 4 | 需要认证 |
| 5 | API错误(上游问题) |
| 7 | 速率限制(请等待并重试) |
| 10 | 配置错误 |
Argument Parsing
参数解析
Parse :
$ARGUMENTS- Empty, , or
help→ show--helpoutputgoogle-photos-pp-cli --help - Starts with → ends with
install→ MCP installation; otherwise → see Prerequisites abovemcp - Anything else → Direct Use (execute as CLI command with )
--agent
解析的规则:
$ARGUMENTS- 为空、或
help→ 显示--help输出google-photos-pp-cli --help - 以开头 → 若结尾为
install→ 安装MCP;否则 → 参见上方的前提条件部分mcp - 其他情况 → 直接使用(以标志执行CLI命令)
--agent
MCP Server Installation
MCP服务器安装
- Install the MCP server:
bash
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/google-photos/cmd/google-photos-pp-mcp@latest - Register with Claude Code:
bash
claude mcp add google-photos-pp-mcp -- google-photos-pp-mcp - Verify:
claude mcp list
- 安装MCP服务器:
bash
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/google-photos/cmd/google-photos-pp-mcp@latest - 注册到Claude Code:
bash
claude mcp add google-photos-pp-mcp -- google-photos-pp-mcp - 验证:
claude mcp list
Direct Use
直接使用
- Check if installed: If not found, offer to install (see Prerequisites at the top of this skill).
which google-photos-pp-cli - Match the user query to the best command from the Unique Capabilities and Command Reference above.
- Execute with the flag:
--agentbashgoogle-photos-pp-cli <command> [subcommand] [args] --agent - If ambiguous, drill into subcommand help: .
google-photos-pp-cli <command> --help
- 检查是否已安装:若未找到,提供安装选项(参见本技能顶部的前提条件部分)。
which google-photos-pp-cli - 将用户查询与上方“独特功能”和“命令参考”中最匹配的命令对应。
- 带标志执行命令:
--agentbashgoogle-photos-pp-cli <command> [subcommand] [args] --agent - 若存在歧义,查看子命令帮助:。
google-photos-pp-cli <command> --help