Agentgate
API gateway for personal data with human-in-the-loop write approval.
- Rating
- 4.1 (359 reviews)
- Downloads
- 2,613 downloads
- Version
- 1.0.0
Overview
API gateway for personal data with human-in-the-loop write approval.
Complete Documentation
View Source →
agentgate
API gateway for AI agents to access personal data with human-in-the-loop write approval.
- Reads (GET) execute immediately
- Writes (POST/PUT/PATCH/DELETE) go through an approval queue
- Bypass mode available for trusted agents (writes execute immediately)
Setup
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
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)
Authentication
All requests require the API key in the Authorization header:
Authorization: Bearer $AGENT_GATE_TOKEN
First Steps — Service Discovery
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.
Instance-Specific Skills
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.
Supported Services
agentgate supports many services out of the box. Common ones include:
- Code: GitHub, Jira
- Social: Bluesky, Mastodon, LinkedIn
- Search: Brave Search, Google Search
- Personal: Google Calendar, YouTube, Fitbit
- IoT: Home Assistant
- Messaging: Twilio, Plivo
GET /api/agent_start_here for what's configured on your instance.Reading Data
GET $AGENT_GATE_URL/api/{service}/{accountName}/{path}
Authorization: Bearer $AGENT_GATE_TOKEN
Example: GET $AGENT_GATE_URL/api/github/myaccount/repos/owner/repo
Writing Data
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.
Check write status
GET $AGENT_GATE_URL/api/queue/{service}/{accountName}/status/{id}
Authorization: Bearer $AGENT_GATE_TOKEN
Statuses: pending → approved → executing → completed (or rejected/failed/withdrawn)
Withdraw a pending request
DELETE $AGENT_GATE_URL/api/queue/{service}/{accountName}/status/{id}
Authorization: Bearer $AGENT_GATE_TOKEN
Content-Type: application/json
{ "reason": "No longer needed" }
Binary uploads
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>"
}
Inter-Agent Messaging
Agents can message each other through agentgate for multi-agent coordination.
Send a message
POST $AGENT_GATE_URL/api/agents/message
Authorization: Bearer $AGENT_GATE_TOKEN
Content-Type: application/json
{ "to_agent": "agent_name", "message": "Hello!" }
Read messages
GET $AGENT_GATE_URL/api/agents/messages?unread=true
Authorization: Bearer $AGENT_GATE_TOKEN
Mark as read
POST $AGENT_GATE_URL/api/agents/messages/{id}/read
Authorization: Bearer $AGENT_GATE_TOKEN
Broadcast to all agents
POST $AGENT_GATE_URL/api/agents/broadcast
Authorization: Bearer $AGENT_GATE_TOKEN
Content-Type: application/json
{ "message": "Team announcement" }
Discover agents
GET $AGENT_GATE_URL/api/agents/messageable
Authorization: Bearer $AGENT_GATE_TOKEN
Messaging modes (configured by admin): off, supervised (requires approval), open (immediate delivery).
Mementos (Persistent Memory)
Store and retrieve notes across sessions using keyword tags.
Store a memento
POST $AGENT_GATE_URL/api/agents/memento
Authorization: Bearer $AGENT_GATE_TOKEN
Content-Type: application/json
{ "content": "Important info to remember", "keywords": ["project", "notes"] }
Search by keyword
GET $AGENT_GATE_URL/api/agents/memento/search?keywords=project&limit=10
Authorization: Bearer $AGENT_GATE_TOKEN
Fetch full content by IDs
GET $AGENT_GATE_URL/api/agents/memento/42,38
Authorization: Bearer $AGENT_GATE_TOKEN
List your keywords
GET $AGENT_GATE_URL/api/agents/memento/keywords
Authorization: Bearer $AGENT_GATE_TOKEN
Important Notes
- Always include clear comments on write requests
- Be patient with writes — approval requires human action
- Use
GET /api/agent_start_hereto discover available services - See agentgate docs for instance-specific skill setup
Installation
openclaw install agentgate
💻Code Examples
Authorization: Bearer $AGENT_GATE_TOKEN
## First Steps — Service Discovery
After connecting, discover what's available on your instance:Authorization: Bearer $AGENT_GATE_TOKEN
Returns your agent's config, available services, accounts, and full API documentation.
## Instance-Specific Skills
agentgate generates additional skills tailored to your instance with your specific accounts and endpoints. See the [agentgate skills documentation](https://agentgate.org/docs/skills) for details on how to install and update them.
## Supported Services
agentgate supports many services out of the box. Common ones include:
- **Code:** GitHub, Jira
- **Social:** Bluesky, Mastodon, LinkedIn
- **Search:** Brave Search, Google Search
- **Personal:** Google Calendar, YouTube, Fitbit
- **IoT:** Home Assistant
- **Messaging:** Twilio, Plivo
New services are added regularly. Check `GET /api/agent_start_here` for what's configured on your instance.
## Reading DataAuthorization: Bearer $AGENT_GATE_TOKEN
Example: `GET $AGENT_GATE_URL/api/github/myaccount/repos/owner/repo`
## Writing Data
Writes go through the approval queue:}
**Always include a clear comment** explaining your intent. Include links to relevant resources.
### Check write statusAuthorization: Bearer $AGENT_GATE_TOKEN
Statuses: `pending` → `approved` → `executing` → `completed` (or `rejected`/`failed`/`withdrawn`)
### Withdraw a pending request{ "reason": "No longer needed" }
### Binary uploads
For binary data (images, files), set `binaryBase64: true` in the request body:}
## Inter-Agent Messaging
Agents can message each other through agentgate for multi-agent coordination.
### Send a messageAuthorization: Bearer $AGENT_GATE_TOKEN
Messaging modes (configured by admin): `off`, `supervised` (requires approval), `open` (immediate delivery).
## Mementos (Persistent Memory)
Store and retrieve notes across sessions using keyword tags.
### Store a mementoPOST $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"
}DELETE $AGENT_GATE_URL/api/queue/{service}/{accountName}/status/{id}
Authorization: Bearer $AGENT_GATE_TOKEN
Content-Type: application/json
{ "reason": "No longer needed" }Tags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.