Skip to main content

Overview

CelerFlow manages permissions at the service level, not the individual tool level. A service is a logical group of related tools — for example, all gmail_* tools belong to the “Gmail” service. Each service has two independent permission toggles:
PermissionOptionsDescription
ReadAllowed · BlockedControls read-only operations (gmail_read, gmail_search…)
WriteAllowed · Blocked · Human approvalControls write operations (gmail_send, gmail_delete…)

How it looks in the dashboard

Service Permissions — Agent: product-manager
┌─────────────────────────────────────────────────────┐
│                                                     │
│  📧 Gmail                    [Read ✅] [Write ⚠️]   │
│  Write requires human approval                      │
│                                                     │
│  📝 Notion                   [Read ✅] [Write ✅]   │
│                                                     │
│  📄 Google Docs              [Read ✅] [Write ❌]   │
│                                                     │
│  🖥️ System Tools             [Read ✅] [Write ⚠️]   │
│                                                     │
│  [+ Add Service]                                    │
└─────────────────────────────────────────────────────┘
  • ✅ Allowed
  • ❌ Blocked
  • ⚠️ Human approval required

Service mapping

CelerFlow detects services from MCP tool names using pattern matching:
ServicePatterns
Gmailgmail_*
Notionnotion_*
Slackslack_*
GitHubgh_*, github_*
Google Docsgdocs_*, google_docs_*
Webweb_*
System Toolsread, write, edit, exec, browser, memory_*

Auto-discovery

When CelerFlow sees a tool call for a service it hasn’t seen before, it automatically creates a policy entry with default permissions (read: allowed, write: allowed) and marks it as auto_discovered. You can then adjust permissions from the dashboard.

Policy evaluation

When a tool call arrives:
Start with permissive defaults and tighten as you learn what each agent actually needs. The tracing dashboard shows you exactly which services are being used.

Scope

Permissions are set per agent. Each agent has its own set of service permission rules.

Realtime sync

Permission changes are pushed to agents via Supabase Realtime. The OpenClaw plugin caches policies locally and updates them within seconds of a dashboard change. No restart needed.