360 Secure SkillHub
360 安全技能中心

Latchkey

Latchkey 是 curl 的透明包装 CLI:用 `latchkey curl` 替代普通 curl,自动为 AWS、Slack、Google Drive、GitHub 等受支持服务注入用户手动配置的凭据,并原样透传 curl 参数、返回码与输出。可列出受支持服务、查询服务信息与凭据状态;凭据由用户自行设置并加密存储。

hynek-urban
hynek-urban
热度 55.84
最近更新 2026-05-18 12:13:01
分类:自动化依赖:代码执行 / 第三方 API应用场景:API 集成 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add latchkey
Metadata
name
latchkey
description
Interact with arbitrary third-party or self-hosted services (AWS, Slack, Google Drive, Dropbox, GitHub, GitLab, Linear, Coolify...) using their HTTP APIs.
compatibility
Requires node.js, curl and latchkey (npm install -g latchkey).
metadata
{"openclaw":{"emoji":"🔑","requires":{"bins":["latchkey"]},"install":[{"id":"node","kind":"node","package":"latchkey","bins":["latchkey"],"label":"Install Latchkey (npm)"}]}}

Latchkey

Instructions

Latchkey is a CLI tool that automatically injects credentials into curl commands. Credentials (mostly API tokens) need to be manually managed by the user.

Use this skill when the user asks you to work with services that have HTTP APIs, like AWS, Coolify, GitLab, Google Drive, Discord or others.

Usage:

  1. Use latchkey curl instead of regular curl for supported services.
  2. Pass through all regular curl arguments - latchkey is a transparent wrapper.
  3. Check for latchkey services list to get a list of supported services. Use --viable to only show the currently configured ones.
  4. Use latchkey services info <service_name> to get information about a specific service (auth options, credentials status, API docs links, special requirements, etc.).
  5. If necessary, ask the user to configure credentials first. Tell the user to run latchkey auth set on the machine where latchkey is installed (using the setCredentialsExample from the services info command).
  6. Look for the newest documentation of the desired public API online.
  7. Do not initiate a new login if the credentials status is valid or unknown - the user might just not have the necessary permissions for the action you're trying to do.

Examples

Make an authenticated curl request

latchkey curl [curl arguments]

Creating a Slack channel

latchkey curl -X POST 'https://slack.com/api/conversations.create' \
  -H 'Content-Type: application/json' \
  -d '{"name":"my-channel"}'

(Notice that -H 'Authorization: Bearer is not present in the invocation.)

Getting Discord user info

latchkey curl 'https://discord.com/api/v10/users/@me'

Detect expired credentials

latchkey services info discord  # Check the "credentialStatus" field - shows "invalid"

List usable services

latchkey services list --viable

Lists services that have stored credentials.

Get service-specific info

latchkey services info slack

Returns auth options, credentials status, and developer notes about the service.

Storing credentials

It is the user's responsibility to supply credentials. The user would typically do something like this:

latchkey auth set my-gitlab-instance -H "PRIVATE-TOKEN: <token>"

When credentials cannot be expressed as static curl arguments, the user would use the set-nocurl subcommand. For example:

latchkey auth set-nocurl aws <access-key-id> <secret-access-key>

If a service doesn't appear with the --viable flag, it may still be supported; the user just hasn't provided the credentials yet. latchkey service info <service_name> can be used to see how to provide credentials for a specific service.

Notes

  • All curl arguments are passed through unchanged
  • Return code, stdout and stderr are passed back from curl
  • Credentials are always stored encrypted and are never transmitted anywhere beyond the endpoints specified by the actual curl calls.

Currently supported services

Latchkey currently offers varying levels of support for the following services: AWS, Calendly, Coolify, Discord, Dropbox, Figma, GitHub, GitLab, Gmail, Google Analytics, Google Calendar, Google Docs, Google Drive, Google Sheets, Linear, Mailchimp, Notion, Sentry, Slack, Stripe, Telegram, Umami, Yelp, Zoom, and more.

User-registered services

Note for humans: users can also add limited support for new services at runtime using the latchkey services register command.