For OpenClaw
AI workers for OpenClaw.
OpenClaw runs on your own hardware and answers in the chat app you already use. WorkerKit gives it a fleet of specialists it does not have to host: background AI workers with their own instruction, memory, schedule, budget and pre-scoped app access, running around the clock whether or not your Gateway is up, and reporting back in short, costed digests. The connect is one remote MCP server and one Authorization header, with nothing to register anywhere. Your part takes about a minute.
Start here
Let OpenClaw set itself up.
OpenClaw edits its own config, so one prompt adds WorkerKit. Your part is an update, a key and a paste.
- 01
Update OpenClaw
Run its installer again to reach 2026.5.12 or later, the release that stopped custom headers being forwarded on a cross-origin redirect. Your key travels in one.
- 02
Create a manager key
At AI access, name it OpenClaw, start with the read scopes and copy it once.
- 03
Paste the prompt into OpenClaw
It adds WorkerKit, asks for the key once, proves the connection and lists your workers. Nothing runs without your yes.
- Update on macOS, Linux or WSL2
curl -fsSL https://openclaw.ai/install.sh | bash - Paste into OpenClaw
Set up WorkerKit for me, following https://workerkit.ai/openclaw/setup.md. Add WorkerKit under mcp.servers in ~/.openclaw/openclaw.json, with "transport": "streamable-http": "workerkit" at https://mcp.workerkit.ai/workers, with "headers": { "Authorization": "Bearer <my manager key>" }. Ask me for the key once, write it only into that file and never repeat it. Then run openclaw mcp doctor workerkit --probe. Install the WorkerKit skill from https://workerkit.ai/openclaw/SKILL.md using the setup guide. Call key_info and tell me which account and scopes you have. List my workers and recent runs. If there are none, ask what job I want done and suggest a ready-made kit for it. Ask me before you run, install or change anything.
- Create a manager key At AI access, admin only. It is shown once, so keep it to hand.
On Windows or through npm, step 1 of the setup guide has the update command.
Why WorkerKit
Control your AI workforce from OpenClaw.
Ready-made, self-learning AI workers with only the access each job needs, a budget you set, and a record of every job and action.
- Put AI workers on jobs with real ROI. Install a kit for work your team already repeats, and a worker arrives with its instructions, app permissions and schedule already written and reviewed. Start with the job that costs the most time, or build your own kit.
- Turn your AI workers’ jobs and data into shared company knowledge. Each job’s instructions, apps and limits live in one kit your team keeps current, and workers that use the Records app keep what they find in shared tables and lists your team can open. Your team and every connected assistant work from the same process.
- Choose what each AI worker can access. Each worker holds its own grant for each app, read-only by default, and nothing it reads can widen it. An assistant's key carries only the scopes you choose and never an app credential.
- Track what your AI workers did and what they changed. Every run leaves a receipt with its result and its cost, and every tool call is logged with its outcome, so you can see what each worker did, when, and at what price.
- Keep AI spending within the limits you set. Each worker has a per-run and a daily spending limit, under a limit for the whole account. When one is reached, new runs stop before any money moves, and the receipt says why.
- Your AI workers learn as they work and keep getting better. A language worker can check every run against its job's quality criteria. A change that makes it better waits for your approval or, in Apply proven changes mode, applies on its own once it passes a comparison on your own examples. Its runs also propose what it should remember, and you approve what it keeps.
What OpenClaw is
The assistant that runs on your own hardware.
OpenClaw is an open-source assistant, MIT licensed, published by the OpenClaw Foundation, an independent 501(c)(3) nonprofit; the project was created by Peter Steinberger, who no longer leads it. It runs as a Gateway process on a machine you control and meets you where you already talk: Discord, iMessage, Slack, Teams, Telegram and WhatsApp among others, beside native apps for macOS, iOS, Android, Windows and Linux, a browser Control UI, a CLI and a TUI. State, memory and credentials stay on your hardware, and you bring your own model API key.
If you know this project as Clawdbot or Moltbot, it is the same one. It was renamed through Warelay, Clawd, CLAWDIS, Clawdbot and Moltbot to OpenClaw on 30 January 2026, and the older names point at the same Gateway, the same config file and the same MCP support described here.
| What a fleet adds | Why it helps |
|---|---|
| Work that survives a closed laptop | The Gateway holds its MCP connections only while it is running. A hosted worker keeps its schedule whether your machine is awake, asleep, travelling or being rebuilt. |
| Credentials that are not in your config | Each worker connects its own apps on the WorkerKit side, under its own grant. Nothing new joins the secrets already on your disk. |
| Room in the channel you actually read | A Telegram thread or a Discord channel is a poor place for a screen of machine output. Work runs sealed and comes back as a digest. |
| A model chosen per job, not per install | OpenClaw runs on the model key you gave it. A worker picks its own model for its own job, priced to the token from a prepaid wallet or your own provider key. |
Running it yourself is the point of it, and that is where it should stay. What self-hosting cannot give you is a job that keeps its schedule while the machine is asleep, holds app credentials somewhere other than your own config, and answers to a budget rather than to whoever is at the keyboard. That is the shape of a fleet, and it sits beside OpenClaw rather than inside it.
Hired specialists
What a worker adds beside OpenClaw.
An AI worker is a background agent with its own instruction, memory, triggers, budget, model, app permissions and key. WorkerKit hosts the runs, so your Gateway never has to be the thing that stays up for them.
| Aspect | OpenClaw | A WorkerKit worker |
|---|---|---|
| Where it runs | Your Gateway, on hardware you own, for as long as you keep it running | WorkerKit's hosted runtime, around the clock, with no machine of yours involved |
| Context | The session, plus the skills and memory kept on your disk | Its own, sealed per run; only the digest returns |
| Model | The provider key you configured, for everything it does | Chosen per worker from any supported provider, or your own provider key |
| Identity | Your accounts, your credentials, held locally | Its own, holding only the apps, tools and permissions its job needs |
| When it runs | While the Gateway is up and something asks it | On demand, on a schedule in its own time zone, or on a signed inbound webhook |
| What comes back | The reply, in the channel you asked from | A closing report of at most 8,000 characters, a typed digest beside it, and the settled cost |
| Taking it back | Remove the server from mcp.servers, or stop the Gateway | Disable or revoke one worker; nothing else moves |
The operator pattern
OpenClaw operates. Workers work.
| Step | Who | What happens |
|---|---|---|
| 1 | You | Ask from wherever you talk to it, a Telegram thread, the TUI, the Control UI. "What ran overnight?", "Run the invoice chase", "Pause the scanner." |
| 2 | OpenClaw | Reads its key's scopes first with key_info, picks the matching tool from the fleet mount, and follows the operating rules in its WorkerKit skill. Tool policy and the session approval posture still apply, exactly as they do to a native tool. |
| 3 | The worker | Executes on the hosted runtime, in its own context, on its schedule or on demand, with the Gateway free to be off the whole time. |
| 4 | Both | OpenClaw reads the result with runs_feed and run_get: one server covers the whole fleet, and the run's receipt carries the digest, the typed structure when the run produced one, and the settled cost. People receive it through the worker's own delivery channels. |
Nothing about the local setup changes. OpenClaw keeps its channels, its skills and its own credentials, and gains a fleet it can list, run, schedule and read reports from, in whichever chat app you happened to open.
Why OpenClaw and WorkerKit
Each one covers what the other is not for.
Use OpenClaw for the assistant you own outright and talk to all day. Use a WorkerKit worker for run unattended against my apps, on a schedule, with its own grant, and deliver to Slack whether or not anything of mine is switched on.
| OpenClaw strength | What WorkerKit adds beside it |
|---|---|
| Local-first: state, memory and credentials on your own hardware | Hosted runs for the jobs that must continue when the Gateway is not running, with their app grants held on our side rather than added to your config |
| Open source and MIT licensed, with no subscription and no hosted tier | A Free plan with no card, and runs billed at the provider list price with no markup, so neither half of the setup is a black box on your bill |
| Meets you in Discord, iMessage, Slack, Teams, Telegram and WhatsApp | Workers deliver into the same kinds of channel on their own schedule, so a briefing arrives without anyone opening a chat to ask for it |
| Static bearer headers on remote MCP servers, documented and first class | A WorkerKit connection over streamable HTTP, with one protected Authorization header |
| Skills that follow the AgentSkills spec, installable from a git reference | A skill file of our own, so the fleet arrives with its tool reference and operating rules already written |
| Tool policy, approval postures and per-server tool filters | Scopes on the manager key, so the ceiling is set on our side too. Narrow either end, and the two narrowings compose rather than fight |
What it unlocks
Background work that stays out of the chat.
Each run executes sealed inside its own context, settles its exact cost and returns a digest. The worker remembers its own state. Your conversation stays clean.
- Sealed jobs, small returns Every job runs in its own context and only the digest comes back. A long crawl becomes the few paragraphs that matter, so many workers fit in one conversation.
- The right model per job Inexpensive models scan, frontier models judge. Every run is priced to the token, with reserved-versus-settled tracking, so background work is never a black box on your bill.
- Money you can trust A run that never started costs nothing. A run that went silent mid-flight is absorbed by WorkerKit and labelled as an unbilled estimate. A failed run settles at actual usage with no minimum charge.
- Standing monitors and briefings Workers watch on a schedule and report only what is new, so you stop relying on remembering to ask.
- Two-way work A run that needs input does not guess or stall. It asks on every delivery channel and resumes as a linked follow-on run when you answer.
- Memory that compounds Rules and facts persist across runs, so the tenth run is smarter than the first. Anything a run proposes for memory waits for your approval before a future run may use it.
- Kits: install one or make your own Browse the catalog, install a ready-made worker, or author your own through the authoring guide, the validator and the publisher. Every path runs the same validators.
- Fleet operations Clone a tuned worker for the next client, set budgets, route deliveries, and start and stop workers, all from the assistant you already talk to.
- Delivery where people live Results land in email, Slack, Teams, Telegram, Discord, Notion, or SMS and WhatsApp, where their readers already are, instead of waiting in a chat nobody opens.
- Auditable trails Every run leaves a typed event stream, liveness heartbeats, owner and self scores, and the allow or redact outcome of each tool call underneath it.
MCP connections
WorkerKit for your fleet. Knowledge for your reports.
Use WorkerKit to discover kits, build workers and manage your fleet. Add Knowledge to search published worker reports. Both use the same sign-in or key.
| Mount | Address | What it carries |
|---|---|---|
| WorkerKit (default) | https://mcp.workerkit.ai/workers | Discover and install kits, build workers, and run and manage your fleet. Choose the full profile or a focused decision profile. Connect with OAuth or a bearer key. |
| Knowledge | https://mcp.workerkit.ai/knowledge | Company Knowledge: 6 tools to search and read published worker reports and track changes. Admins manage publication and reader access. Uses the same sign-in or key. |
| Area | Tools | What it covers |
|---|---|---|
| Continuous Learning | worker_quality_get, worker_quality_set, worker_quality_preview | Read criteria, three gates and availability reasons; save reviewed settings with expectedRevision; preview samples without a run. The worker dashboard offers owner-reviewed activation and a quoted AI draft when criteria are missing. Paid comparisons, diagnosis, monitoring, apply/rollback and company/shadow learning stay owner-only. Manager keys can disable any gate, but cannot enable automatic/shared learning. Kit install leaves all gates off. |
| Key | key_info | What your key is and exactly which scopes the other tools will honour. Call it first. |
| Fleet | workers_list, worker_get, worker_set_enabled | Every worker with live run state, one worker in full, and start or stop. |
| Apps and workers | worker_permissions_get, worker_permissions_set, worker_bindings_get, worker_bindings_set | What a worker may touch, in the same vocabulary a kit is written in, and its grants to call other workers: read both, replace its app set (account Admin) and fill, re-point or clear its worker grants. The writes need manageAppsAndWorkers; rules, identities and MCP tool bindings stay in the dashboard. |
| Runs | worker_run, run_bulk, worker_runs, run_get, run_events, run_transcript, run_cancel, run_score, run_clear_digest | Trigger a run with a prompt for that run, or one prompt across up to 20 workers; watch it step by step, read the receipt and the stored process log, cancel or grade it. On a decision worker it decides instead and acts on what it routes: sourceArgs and maxItems narrow and cap what is judged, and waitSeconds waits for the settled receipt, which carries the per-item decisions. |
| Fleet activity | runs_feed, fleet_pulse, fleet_health, account_usage, activity_feed, activity_summary, account_spend | Worker runs, app calls and configuration changes, activity counts, everything running now, fleet health, account headroom and spend by worker, day and model. |
| Two-way runs | run_question, run_answer | A run that needs an answer ends by asking; the answer starts a linked follow-on run. |
| Memory | memory_get, memory_add, memory_update, memory_delete | The rules and facts a worker carries into every run. |
| Schedules | schedules_list, schedule_create, schedule_update, schedule_delete, worker_timezone_set | When a worker starts on its own, and the time zone it works in: its local dates, its report times and the clock its daily schedules follow. |
| Instruction | instruction_get, instruction_set, instruction_versions, instruction_version_get, instruction_restore | The standing instruction, versioned on every change, with the history to compare against and roll back to. On a decision worker it reads the routing table and the install questions instead, and writes their answers. |
| Deliveries | delivery_list, delivery_channels, delivery_create, delivery_update, delivery_secret_rotate, delivery_delete | Where a run report goes when the worker finishes: email, Slack, Teams, Telegram, Notion, Discord, SMS or a signed webhook. |
| Deployment | models_list, deployments_list, deployment_get, worker_deploy, deployment_update, worker_undeploy | What makes an installed worker actually run: pick its model from the priced catalog, cap its spend, pause or resume it, take it off again. A worker with no deployment fires no schedule and refuses a run with not_deployed. |
| Budgets | budget_get, budget_set, fleet_budget_get, fleet_budget_set | A worker’s spend and run ceilings, and the account-wide fleet ceiling. Their own scope, because raising a dollar cap is the one management action that can cost money. |
| Creation | worker_clone_preview, worker_clone, worker_clone_bulk | Clone a worker into new ones, singly or in bulk, with a dry run first. A clone carries only permissions a person already approved on the source. |
| Deletion | worker_delete | Remove a worker for good, with its sub-workers. Permanent, where stopping one is not — which is why it is a scope of its own. |
| Kits | kit_install_preview, kit_install | Preview a directory kit against your account, then install it as a new worker — with deploy set, in the same call, which is what makes it run. |
| Kit authoring | kit_validate, kit_publish, kit_update, kit_replace, kit_unpublish, kit_relist, kit_make_private, kit_delete, kit_scan_get, my_kits_list, publisher_get_mine, publisher_set | Validate a kit in one dry run that reports every gate at once, publish it from content or from a worker you own, keep it private or list it, and keep your publisher profile. A private kit installed with kit_install is how an agent builds a worker from scratch. |
| Connected apps | apps_list, app_connect, app_disconnect, app_github_accounts, app_github_repos, app_github_branches, app_slack_workspaces, app_slack_conversations | Which apps an operator can use right now, in the kit vocabulary, and connecting the rest by credential: validated live, stored encrypted, never returned. Browser sign-ins stay on the Apps page. The GitHub and Slack lookups find repository and channel IDs for an install (discoverAppResources). |
| Model keys | model_keys_list, model_key_set, model_key_delete | Your own model-provider API keys, so runs bill your provider account instead of the wallet. |
| Onboarding and wallet | onboarding_get, wallet_get, wallet_checkout_create, wallet_checkout_get | Check model funding, hand off BYOK setup, inspect wallet balance, and request a human-confirmed Stripe checkout. A purchase is complete only when its status is credited. |
| Custom MCP servers | mcp_servers_list, mcp_server_get, mcp_server_create, mcp_server_discover, mcp_server_set_tools, mcp_server_delete | An app the platform does not offer, reached through its MCP server: register it as your own custom MCP app with its credential in the same call, enable the tools a job needs, and bind it in a kit. |
| API apps | api_apps_list, api_app_get, api_app_create, api_app_update, api_app_validate, api_app_preview, api_app_publish, api_app_version_get, api_app_version_revoke | Account-private API apps: validate and preview a definition offline, create and update drafts, publish immutable versions and revoke them. Authoring needs a live account Admin and managePrivateApiApps; connections and worker bindings are configured in the dashboard. |
| Decision authoring | decision_worker_create, worker_decision_set | Compile typed questions and a supported source recipe into a private kit and installed decision worker. Optional deploy; never starts a run. Requires createWorkers, plus manageDeployments when deploying. Retry the same requestId and body to recover the receipt. worker_decision_set attaches, replaces or removes a hybrid worker's classifier. |
| Action workers | action_worker_options, action_worker_create, worker_tools, worker_tool_call, worker_tool_invocation | Selected app tools with no model, called one at a time with exact inputs. Create with createWorkers; call and read receipts with invokeActions. A write needs an idempotencyKey; never resend an outcome_unknown call. |
| Support | support_request_create | Contact support about an error you cannot fix, a bug, an app request or a question. Returns a PE-XXXXXX reference. |
| Discovery and authoring reads | workerkit_about, directory_overview, kits_search, kit_get, kit_app_tools, kit_authoring_guide, kit_vocabulary | Public reads also available on the workers connection. Discover classification sources with kit_app_tools(purpose:"decision") and read kit_authoring_guide(section:"decision"). These reads never forward the manager bearer upstream. |
| Company Knowledge | knowledge_sources, knowledge_search, knowledge_get, knowledge_changes, knowledge_configuration_get, knowledge_configuration_set | On the separate mcp.workerkit.ai/knowledge mount, with the same key: discover, search and read published worker reports, reconcile changes, and configure sharing as an admin. Access follows publication and reader grants. |
The manager key holds no app credentials: workers reach apps under their own grants and firewall, and no prompt can widen that. With readRuns or invokeActions the key can read what those workers return, including an Action worker's tool results.
Your fleet is also available from other MCP clients and the REST API.
Classification on demand
Create a decision worker from your questions.
Categorize, score or triage connected data, then reuse and adjust the worker.
Reuse an existing worker or decision kit when its questions fit. For a custom classification task, creation compiles a supported source recipe and typed questions into a private kit and an installed decision worker. Optional deploy:true adds deployment; creation never starts a run or adds a schedule. The kit can be edited and published later through the normal kit lifecycle.
On the workers connection, call kit_app_tools(purpose:"decision") for recipes, argument schemas, permissions and examples, then kit_authoring_guide(section:"decision"). Check account connections with apps_list; public discovery does not check them. Send the request to decision_worker_create, follow nextCall, then use worker_run and run_get. Running needs runWorkers; results need readRuns. Use instruction_get / instruction_set for saved category or level answers, or answers on one run. Structural question/source changes need a revised kit and a replacement install. Check receipt status, coverage, omissions, warnings and cost before claiming completion.
Start with email-previews, calendar-events or sheets-rows. These recipes return judgments without app writes. Email previews do not include full threads; calendar events are invitation data, not transcripts; Sheets needs a Google file ID, a finite tab-qualified range and a columns map. A connected app alone does not make every tool a supported source. Source filters select evidence, not permissions: the Sheets recipe grants spreadsheet reads across the linked Drive account.
Supply 1–8 questions: choice with named options, score with ordered levels, or noul for the probability of a statement. Choice adds unclear automatically. Set an explicit confidenceFloor between 0 and 1; it routes uncertainty and does not promise accuracy. maxItems is 1–50, default 20. Creation requires createWorkers; optional deployment also needs manageDeployments.
Use a fresh requestId for each new worker. Retry with the same ID and identical body to recover the original receipt; a changed body returns 409. The response includes tokenId for MCP/CLI worker commands, stable workerId, kitSlug, readiness and nextCall. A deploymentError means the worker already exists: fix deployment on that worker. The receipt is a snapshot; check current worker readiness before running. No worker API secret is returned.
The workers connection includes discovery and authoring, so classification needs one MCP connection. Its full profile includes fleet management, app resource discovery, kit authoring and public directory reads. For a smaller list, a client that supports custom headers can send X-WorkerKit-Profile: decision on every request, including initialization, listing and calls, to select the smaller workflow tool set. A server operator can instead set MCP_WORKERS_PROFILE=decision. The endpoint and existing sign-in stay the same; a profile grants no additional permissions. Reconnect and relist after changing profiles. Use the advertised tool list: fleet administration, publishing, Action worker and event-stream tools require the full profile. Successful responses include structured content and a text fallback; creation declares an output schema.
App tools, no model
Call app tools through an Action worker.
One exact app operation per call, with the inputs you supply.
An Action worker (modelType: "none") exposes 1 to 64 selected app tools and has no model, instruction, schedule or deployment. Each call invokes one tool with the arguments the caller sends, under the worker's own app access, and readiness.canInvoke on worker_get says whether its tools can be called now. Run and deploy requests answer 400 action_worker_requires_invoke.
On the workers connection's full profile: action_worker_options lists apps with no tools selected; pass an explicit app for schemas and defaults (readWorkers). action_worker_create requires an explicit app or actionSpec and copies the selected app's default tools, or takes an actionSpec of 1 to 64, plus a slackConnectionId for Slack tools when the account has more than one Slack bot (createWorkers); worker_tools lists the saved tools (readWorkers); worker_tool_call calls one with arguments, plus an idempotencyKey on a write (invokeActions); worker_tool_invocation reads a write's receipt (invokeActions). Pass the returned tokenId. kits_search(modelType:"none") finds Action kits; install one with kit_install and no deploy.
An explicit actionSpec needs no app and can span native or reviewed MCP apps. Private API tools require a dashboard binding to a published version; they are not actionSpec refs.
A write tool (readOnly: false) needs an idempotency key. Repeating the key with the same arguments returns the stored receipt (a confirmation, not the app's response) without calling the app again; with other arguments it is a 409. A call answers with status succeeded, denied, failed, in_progress or outcome_unknown; branch on it, not on the HTTP code. On outcome_unknown the write may have happened: never resend it automatically, under any key; read the receipt and check the app. Each call counts toward the worker's daily request limit; a refusal marked retryable, such as usage_limit, is retried later under a new key. Only the owner changes the selected tools, in the dashboard.
Access and control
Scoped per worker, and scoped for OpenClaw too.
| Layer | What it holds |
|---|---|
| Per-worker grant | You connect each account yourself and choose what the worker may do there: per-app operations, read-only by default, narrowed by rules such as contact blocks, label and folder rules, customer-domain limits, time windows and IP allowlists. An account-level ceiling caps what any worker can be granted. |
| The app firewall | Every tool call is checked against the grant and the rules, field-masked, scanned for sensitive data, redacted, rate-limited and logged with its outcome. The worker's model never sees what the rules removed. |
| Prompt injection | A worker steered by content it reads still cannot exceed its grant. Proposed memory waits for a human. Publishing a kit to the directory runs a supply-chain and prompt-safety scan that fails closed. |
| The assistant's own access | A manager key carries explicit scopes, is shown once and stored hashed. No scope gives it app credentials, but invokeActions returns an Action worker's tool results, so grant it only where an agent should call those tools. An agent reads its scopes before planning, and an admin can revoke the key at any time without touching a worker. |
A worker is only as trustworthy as the access behind it, so the access is yours to give, to narrow and to take back, one worker at a time. You delegate without handing over the kingdom.
How it connects
WorkerKit, one header.
Add workerkit under mcp.servers in ~/.openclaw/openclaw.json. Set its URL, choose streamable-http and add an Authorization header with your manager key. The Gateway watches the config and applies changes automatically.
The same entry can be written with openclaw mcp add, in the Control UI under Settings then MCP, or from a chat session through the plus button and Connectors. OpenClaw also documents an OAuth mode for remote servers, and our fleet mount is a full OAuth 2.1 authorization server, so that path is open too; the two are mutually exclusive per server, because a server set to OAuth ignores static headers.
The whole procedure, written for the agent doing it, is the setup guide. The human's part is creating one key and pasting it once.
The same fleet answers from anywhere else you work: any other MCP client, the wk CLI in a terminal, and the REST API for hosts that speak plain HTTPS. The fleet outlives the choice of assistant, which matters more than usual for software you host yourself.
OpenClaw runs on your own hardware and carries terminal tools, so it can run wk directly as well as speak MCP. The commands are generated from the same tool definitions the MCP server serves, so neither surface is a subset of the other: what an agent can do over MCP, a shell can do. The wk CLI is the reference, and the setup guide carries the step.
Cost: WorkerKit has a Free plan with no card required. Runs bill model tokens at the provider list price with no markup, from a prepaid wallet or your own provider key, inside the budgets you set. Connecting OpenClaw is not a paid feature, and the plans are on the pricing page.
Focused OpenClaw skills
Three classifiers, ready to set up and reuse.
Choose a skill for email, calendar or Google Sheets. Each guides account setup, source consent, kit installation and the first bounded run.
These skills use published kits and the existing worker lifecycle. The person completes signup, source consent and any funding; OpenClaw checks access, installs the worker, fills setup answers and reads the results. A connected app and sufficient runtime capacity are required.
jev-email SKILL.md uses the Email Jev Classifier. Sender, subject and the opening body preview, not full message bodies or fetched threads. Mailbox labels stay unchanged. Do not infer customer or colleague relationships from an address alone.
jev-calendar SKILL.md uses the Calendar Jev Classifier. Event title, invitation description, location, times, status, organizer and attendees. These are invitation details, not transcripts or proof of what occurred. Events stay unchanged.
jev-sheets SKILL.md uses the Sheets Jev Classifier. Only explicitly mapped row fields. Returns categories and file/tab/row references without writing cells. Microsoft Excel files are not a source for this kit.
Save each file as skills/jev-email/SKILL.md, skills/jev-calendar/SKILL.md or skills/jev-sheets/SKILL.md inside the active OpenClaw workspace. Keep them as sibling folders beside the general fleet skill. Run openclaw skills list, then invoke /skill jev-email, /skill jev-calendar or /skill jev-sheets. Each file is self-contained; the general fleet skill remains available for broader work.
All three return judgments without changing source data. The Sheets kit’s spreadsheet read permission is broader than the selected file/range; review the live manifest before installation.
OpenClaw’s skill authoring guide explains local skill installation and discovery. Use a fresh session if a newly saved skill has not appeared.
Questions
OpenClaw and WorkerKit, answered.
- Which OpenClaw surface should I set this up on? The Gateway, whichever way you reach it. The Gateway is the process that holds MCP connections, so a server added once is available to every front end: the native apps, the Control UI, the CLI, the TUI and every chat channel. There are four documented ways to add one. The config file at ~/.openclaw/openclaw.json under mcp.servers is the canonical form, and the Gateway watches it and applies changes automatically. The CLI is openclaw mcp add. The Control UI is Settings, then MCP, at /settings/mcp. And in a chat session it is the plus button, then Connectors, then Add MCP server, with scope This session or Everywhere.
- Do I have to paste a key into OpenClaw? Once, and it stays on your own machine. The manager key becomes the value of an Authorization header on the fleet mount, written into ~/.openclaw/openclaw.json or set through the CLI. OpenClaw also documents an OAuth mode for remote MCP servers, and the WorkerKit fleet mount is itself an OAuth 2.1 authorization server, so that route is available; note that a server configured for OAuth ignores static Authorization headers, so it is one or the other per server. The header is what our setup guide walks, because both halves of it are documented end to end.
- Can OpenClaw read my email or CRM through WorkerKit? Only through workers you set up, and the two credential sets never meet. The header you add under mcp.servers carries a manager key with no app credentials, but run results (with readRuns) and an Action worker's tool results (with invokeActions) can include data from the apps that worker was granted. The accounts OpenClaw already holds on your disk stay where they are and are not read, copied or referenced by anything on our side. Choose the worker's app access and the key's scopes together; no prompt in any channel can widen either.
- Does my machine have to stay on for the workers to run? No, and that is most of the reason to connect the two. OpenClaw runs where you put it, so nothing it does happens while the Gateway is down. WorkerKit workers are hosted: they keep their schedules, fire on their triggers and deliver their reports whether your Gateway is up, asleep or halfway through an upgrade. When you next open a chat, OpenClaw reads the whole backlog with runs_feed and tells you what happened while you were away.
- Is there a minimum OpenClaw version for this? Yes: 2026.5.12 or later. Advisory GHSA-rjxq-qqhf-8hwh (CVE-2026-53840), rated CVSS 7.1, described operator-configured custom MCP headers being forwarded on a cross-origin redirect, which is precisely the shape of a bearer header on a remote server. OSV records it fixed in 2026.5.12. Run the upgrade before you set the header rather than working out which build you are on, and rotate the manager key at workerkit.ai/fleet-access if you already ran one on an older build. Separately, OpenClaw needs Node 24.16 or later, or Node 26.1 or later; Node 22, 23 and 25 are unsupported.
- What does OpenClaw need to set this up? A running Gateway and a manager key created by a WorkerKit account admin at workerkit.ai/fleet-access. Add the config, check it with openclaw mcp doctor and key_info, then install the skill and run the smoke test.
- How do a worker's results come back? Two paths, and only one of them involves your Gateway. Ask OpenClaw and it reads runs_feed and run_get across the whole fleet on one server, so a single question covers everything that ran while you were away; each receipt carries the closing report, a typed digest when the run produced one, and the settled cost. Separately, each worker's own delivery channels push results out on their own: email, Slack, Teams, Telegram, Discord, Notion, SMS and WhatsApp, or a signed webhook. Those go direct from the hosted runtime, so they land whether the Gateway is up or not.
- I connected it and the fleet is empty. What now? Nothing is wrong: a new account has no workers yet, and an empty list is itself the proof, because the header authenticated and the read scopes answered. Fill it with a kit, which is a ready-made worker. Either open one at workerkit.ai/kits and install it in the browser, which asks nothing of the key, or, with installKits on it, have OpenClaw do the whole thing in the channel you are already in: kits_search to shortlist, kit_install_preview to show you exactly what the new worker would be allowed to touch, kit_install when you say yes. Then have it run the worker once and read you the receipt.
- What does it cost? OpenClaw is MIT licensed with no subscription and no hosted tier, so its half costs whatever your own model key costs and nothing more. WorkerKit adds a Free plan with no card required: 5 workers, 500 tool calls a day and the complete safety layer. Worker runs are the only other line, and they work the way your local setup already does: model tokens at the provider list price with no markup, drawn from a prepaid wallet or from a provider key of yours, under the per-worker and fleet ceilings you set. Connecting the two is not a paid feature.
The setup guide is written for the agent doing the work, the MCP server page holds the surface behind it, and the wk CLI reaches the same fleet from a terminal.
To build a kit of your own, how to build a kit walks the procedure, and the kit-authoring skill is the file an agent keeps for it.