Install
openclaw skills install agentgateAPI gateway for personal data with human-in-the-loop write approval. Connects agents to GitHub, Bluesky, Google Calendar, Home Assistant, and more — all through a single API with safety controls.
openclaw skills install agentgateAPI gateway for AI agents to access personal data with human-in-the-loop write approval.
GitHub: https://github.com/monteslu/agentgate Docs: https://agentgate.org
agentgate server runs on a separate machine from OpenClaw. This is by design — your agent should not have direct access to the server holding your credentials. Install and run agentgate on a different computer (or VPS/container on a different host). See https://agentgate.org for setup instructions.
Once agentgate is running, configure these environment variables for your OpenClaw agent:
AGENT_GATE_URL — agentgate base URL (e.g., http://your-agentgate-host:3050)AGENT_GATE_TOKEN — your agent's API key (create in the agentgate Admin UI → API Keys)All requests require the API key in the Authorization header:
Authorization: Bearer $AGENT_GATE_TOKEN
After connecting, discover what's available on your instance:
GET $AGENT_GATE_URL/api/agent_start_here
Authorization: Bearer $AGENT_GATE_TOKEN
Returns your agent's config, available services, accounts, and full API documentation.
agentgate generates additional skills tailored to your instance with your specific accounts and endpoints. See the agentgate skills documentation for details on how to install and update them.
agentgate supports many services out of the box. Common ones include:
New services are added regularly. Check GET /api/agent_start_here for what's configured on your instance.
GET $AGENT_GATE_URL/api/{service}/{accountName}/{path}
Authorization: Bearer $AGENT_GATE_TOKEN
Example: GET $AGENT_GATE_URL/api/github/myaccount/repos/owner/repo
Writes go through the approval queue:
POST $AGENT_GATE_URL/api/queue/{service}/{accountName}/submit
Authorization: Bearer $AGENT_GATE_TOKEN
Content-Type: application/json
{
"requests": [
{
"method": "POST",
"path": "/the/api/path",
"body": { "your": "payload" }
}
],
"comment": "Explain what you are doing and why"
}
Always include a clear comment explaining your intent. Include links to relevant resources.
GET $AGENT_GATE_URL/api/queue/{service}/{accountName}/status/{id}
Authorization: Bearer $AGENT_GATE_TOKEN
Statuses: pending → approved → executing → completed (or rejected/failed/withdrawn)
DELETE $AGENT_GATE_URL/api/queue/{service}/{accountName}/status/{id}
Authorization: Bearer $AGENT_GATE_TOKEN
Content-Type: application/json
{ "reason": "No longer needed" }
For binary data (images, files), set binaryBase64: true in the request body:
{
"method": "POST",
"path": "com.atproto.repo.uploadBlob",
"binaryBase64": true,
"headers": { "Content-Type": "image/jpeg" },
"body": "<base64 encoded data>"
}
Agents can message each other through agentgate for multi-agent coordination.
POST $AGENT_GATE_URL/api/agents/message
Authorization: Bearer $AGENT_GATE_TOKEN
Content-Type: application/json
{ "to_agent": "agent_name", "message": "Hello!" }
GET $AGENT_GATE_URL/api/agents/messages?unread=true
Authorization: Bearer $AGENT_GATE_TOKEN
POST $AGENT_GATE_URL/api/agents/messages/{id}/read
Authorization: Bearer $AGENT_GATE_TOKEN
POST $AGENT_GATE_URL/api/agents/broadcast
Authorization: Bearer $AGENT_GATE_TOKEN
Content-Type: application/json
{ "message": "Team announcement" }
GET $AGENT_GATE_URL/api/agents/messageable
Authorization: Bearer $AGENT_GATE_TOKEN
Messaging modes (configured by admin): off, supervised (requires approval), open (immediate delivery).
Store and retrieve notes across sessions using keyword tags.
POST $AGENT_GATE_URL/api/agents/memento
Authorization: Bearer $AGENT_GATE_TOKEN
Content-Type: application/json
{ "content": "Important info to remember", "keywords": ["project", "notes"] }
GET $AGENT_GATE_URL/api/agents/memento/search?keywords=project&limit=10
Authorization: Bearer $AGENT_GATE_TOKEN
GET $AGENT_GATE_URL/api/agents/memento/42,38
Authorization: Bearer $AGENT_GATE_TOKEN
GET $AGENT_GATE_URL/api/agents/memento/keywords
Authorization: Bearer $AGENT_GATE_TOKEN
GET /api/agent_start_here to discover available services