Skip to content
API Blog

Capabilities

This page explains how Lobu capabilities run on top of the OpenClaw runtime and Lobu’s API runtime.

See also: Comparison, Skills, and Providers.

Lobu capability execution has two cooperating runtime layers that split agent logic from platform infrastructure.

Each worker runs an OpenClaw session — the open-source agent runtime that handles the core execution loop. OpenClaw manages:

  • Session loop — receives a prompt, plans tool calls, executes them, and streams results back.
  • Tool execution — the 7 core tools (read, write, edit, bash, grep, find, ls) run directly inside the OpenClaw runtime. The agent decides which tools to call based on the user’s request.
  • Plugin hooks — OpenClaw’s plugin system (pluginsConfig) lets you swap in memory backends, custom tool sets, and lifecycle hooks without changing Lobu’s code.
  • Workspace isolation — each session operates inside a sandboxed workspace directory. Files persist across turns within the same thread.

Workers never see real credentials. They receive opaque placeholder environment variables; the gateway proxy resolves actual secrets at request time.

The gateway sits between users and workers, handling everything outside of agent execution:

  • Platform adapters — receives messages from Telegram, WhatsApp, Slack, or the REST API and normalizes them into a common job format.
  • Provider proxying — routes LLM API calls through the gateway proxy, injecting the user’s provider credentials per-request. Workers only know placeholder URLs.
  • Auth resolution — manages provider credentials and MCP server authentication. Third-party API auth (GitHub, Google, etc.) is handled by Owletto.
  • SchedulingScheduleReminder and CancelReminder calls are handled by the gateway’s job scheduler, which triggers worker sessions at the scheduled time.
  • Policy enforcement — network allowlists, tool permissions, and package approvals are enforced at the gateway layer before reaching the worker.
  • Custom tools — the Lobu-specific tools (UploadUserFile, AskUserQuestion, etc.) are API calls from the worker back to the gateway.

This split means agents evolve via config and user approvals — no new integration codepath needed for each provider or skill.

The demos below use the same settings panels and chat UI components used on the homepage.

Platform Connections

Platforms are connected via the admin page — paste a bot token and the agent is live. No env vars or config files.

Settings panel behavior

L
Connections
🔗Connections
telegramSupport
Alice Chen8291045832
Infra Team-100204817
discordInternal Marketing
#campaigns109284710

Chat behavior (same component as homepage)

L
Lobu
online
Hey, I just added you on Telegram!12:01
I'm live! Your admin connected me in the admin page — no config files needed. How can I help?12:01
What platforms do you support?12:01
Telegram, Slack, Discord, WhatsApp, and Teams. Your admin can add more anytime from the admin page.12:01

Example prompts: Hey, I just added you on Telegram! | What platforms do you support?

Model Setup and Provider Selection

Agent asks for setup, user picks provider/model in settings, then the same conversation continues immediately.

Settings panel behavior

L
Models
🤖Models

Groq

Connected

llama-3.3-70b-versatile

Gemini

Connected

gemini-2.0-flash

Together AI

Connected

meta-llama/Llama-3.3-70B-Instruct-Turbo

NVIDIA NIM (free)

Connected

nvidia/moonshotai/kimi-k2.5

z.ai

Connected

Auto model

ElevenLabs

Connected

Auto model

Fireworks AI

Connected

accounts/fireworks/models/llama-v3p3-70b-instruct

Mistral

Connected

mistral-large-latest

DeepSeek

Connected

deepseek-chat

OpenRouter

Connected

anthropic/claude-sonnet-4

Cerebras

Connected

llama-3.3-70b

OpenCode Zen

Connected

anthropic/claude-sonnet-4

xAI

Connected

grok-3

Perplexity

Connected

sonar-pro

Cohere

Connected

command-r-plus

OpenAI

Connected

gpt-4o

Chat behavior (same component as homepage)

M
Internal Marketing
online
Help me write a blog post12:01
I need an AI model first. Set me up below.12:01
Done, let's go12:01
Here's an outline: 1. Hook with a question 2. Key insight + examples 3. Clear takeaway Expand any section?12:01

Example prompts: Help me write a blog post | Use groq/llama-3.3-70b for this task

Network and Security Permissions

Blocked domains trigger an approval flow. After approval, the agent retries with updated network policy.

Settings panel behavior

L
Security
🛡️Domain allowlist
github.comAlways
registry.npmjs.orgAlways
🔌MCP proxy
gmail-mcpSecrets proxied
github-mcpSecrets proxied
🔧Allowed tools
BashSandboxed
file_uploadAllowed

Chat behavior (same component as homepage)

I
Support
online
Clone my repo and install dependencies12:01
Can't reach github.com — not in allowed domains. Grant access?12:01
Allow it permanently12:01
github.com added to always-allow list. Cloned the repo and ran npm install. Ready to go.12:01

Example prompts: Clone my repo and install dependencies | Allow github.com and rerun the command

Skills and Integrations

Agent proposes skill installation with required integrations, user approves once, then the capability is active.

Settings panel behavior

L
Skills
⚠️

Pending changes from your agent

Review and approve the requested configuration changes.

Skills
skillOps Triage

system/ops-triage

Triage inbox, PRs, and issues

oauthGoogle
oauthGitHub
networkgmail.googleapis.com, api.github.com

Chat behavior (same component as homepage)

O
Coding
online
Install my triage skill and summarize inbox + PRs12:01
Found `ops-triage`. Needs: • Gmail MCP (OAuth) • GitHub MCP (OAuth) • Linear integration (API key) Install and connect now?12:01
Yes, connect everything12:01
Done. OAuth connected for Gmail/GitHub, Linear API key saved. Summary: • Inbox: 3 urgent emails • PRs: 2 need review • Linear: 5 high-priority issues12:01

Example prompts: Install ops-triage and summarize inbox + PRs | Connect Gmail and GitHub now

Persistent Memory Runtime

Memory plugins persist context between sessions and auto-recall relevant facts on new turns.

Settings panel behavior

L
Memory
🧠Memory Plugins
owletto-memorydefault
Enabled
pgvectorBM25 searchentity systemauto-recallauto-capture
native-memoryoptional
Disabled

Chat behavior (same component as homepage)

R
AnalystBot
online
Remember that my weekly report should focus on customer churn12:01
Saved to persistent memory via Owletto (default memory plugin). I will use this preference in future reports.12:01
Can I use a different memory backend later?12:01
Yes. You can switch to another OpenClaw memory plugin, such as native memory, by changing `pluginsConfig`.12:01

Example prompts: Remember that weekly reports should focus on churn | What preferences do you remember about my reports?

Reminders and Recurring Jobs

Natural language schedule requests become managed jobs with approval, status, and cancellation support.

Settings panel behavior

L
Schedules
Reminders

Check open PRs and summarize review queue

pendingrecurringEvery Mon 9:00 AM

Review Q1 deck

pendingTomorrow 2:00 PM

Chat behavior (same component as homepage)

T
Personal Assistant Bot
online
Every Monday 9am, check my PRs12:01
⏰ Mon 9 AM — check open PRs Approve?12:01
Yes. Also remind me tomorrow 2pm to review Q1 deck12:01
Two schedules active: 1. PR summary — Mon 9 AM (recurring) 2. Q1 deck — Tomorrow 2 PM (one-off) I'll ping you when they trigger.12:01

Example prompts: Every Monday at 9am check my open PRs | Remind me tomorrow at 2pm to review the deck

On-demand System Packages

Agent requests package installation, user approves, and tools become available in a reproducible environment.

Settings panel behavior

L
Packages
📦Packages
ffmpeg
gifsicle
imagemagick

Chat behavior (same component as homepage)

N
Internal Marketing Bot
online
Convert this video to a gif under 5MB12:01
I need ffmpeg and gifsicle. Install them?12:01
Go for it12:01
Installed via Nix. These persist across sessions. Converting now...
Done! 4.2 MB (from 28 MB). Adjust frame rate?12:01

Example prompts: Convert this video to a gif under 5MB | Install ffmpeg and gifsicle first

From packages/worker/src/openclaw/tools.ts. These tools run directly inside the OpenClaw runtime.

ToolWhat it doesTypical use
readReads file contents from the workspace.Inspect source/config/log files before editing.
writeWrites full file contents.Create new files or replace file content entirely.
editApplies targeted text replacements in a file.Small, surgical code changes.
bashRuns shell commands in the workspace (policy-controlled).Build, test, lint, run scripts, inspect runtime state.
grepSearches file contents with pattern matching.Find symbols, config values, or error strings quickly.
findFinds files/directories by path patterns.Locate files across large repositories.
lsLists files/directories.Quick workspace structure discovery.

From packages/worker/src/openclaw/custom-tools.ts. These tools call back to the Lobu API runtime.

ToolWhat it doesTypical use
UploadUserFileUploads a generated file back to the user thread.Share reports, charts, documents, exports, media.
ScheduleReminderSchedules one-time or recurring follow-up tasks.Deferred tasks and recurring automations.
CancelReminderCancels a scheduled reminder by ID.Stop previously scheduled jobs.
ListRemindersLists pending reminders and schedule IDs.Audit or pick reminder to cancel/update.
SearchSkillsSearches for skills and MCP servers, or lists installed capabilities (empty query).Discover capabilities and check installed state.
InstallSkillInstalls or upgrades skills from the registry with bundled dependencies.Add capabilities (skills, providers, MCPs) via settings approval.
InstallPackageRequests system package installation (nix) with user approval.Install ffmpeg, imagemagick, or other system tools.
RequestNetworkAccessRequests domain access grants with user approval.Unblock API endpoints for curl/fetch calls.
GenerateImageCreates images from text prompts and uploads them in-thread.Illustrations, posters, product mockups, and visual concepts.
GenerateAudioConverts text to speech and returns audio.Voice responses or spoken summaries.
GetChannelHistoryFetches prior messages in the conversation thread.Recover context from earlier discussion.
AskUserQuestionSends structured button-based questions to the user.Branching choices and approvals without free-text ambiguity.

Each section below shows the tool description and an example conversation demonstrating how the agent uses it.

These run inside the OpenClaw session. The agent calls them directly without leaving the worker sandbox.

read

Reads file content from the current workspace path. It is used before edits to inspect source and config safely.

A
Agent
online
Open `src/server.ts` and summarize what it does.12:01
Here's src/server.ts — an Express app on port 3000 with 3 routes: /health, /api/users, /api/auth. The auth middleware checks JWT tokens from the Authorization header.12:01

write

Writes full file content. Best for creating new files or replacing an entire file when structure changes a lot.

A
Agent
online
Create `scripts/release.ts` with a release helper.12:01
Created scripts/release.ts with version bump, changelog generation, and git tag helpers. Run it with `bun run scripts/release.ts`.12:01

edit

Applies targeted replacements to existing files. It is optimized for small surgical changes with minimal diff.

A
Agent
online
Rename `oldFlag` to `featureFlag` in `src/config.ts` only.12:01
Done. Renamed oldFlag → featureFlag in src/config.ts (3 replacements applied).12:01

bash

Runs shell commands in the agent sandbox under your policy rules. Used for build, test, lint, and automation tasks.

A
Agent
online
Run tests for `packages/gateway` and report failing cases.12:01
42 passed, 1 failing: auth.test.ts — token expiry assertion off by 1s. Want me to fix the flaky test?12:01

grep

Searches text patterns in code and logs. It helps the agent quickly locate symbols, errors, and references.

A
Agent
online
Find all usages of `sendToWorker` in this repo.12:01
Found 7 matches in 4 files: • routes/jobs.ts:42,87 • orchestration/queue.ts:15 • services/worker.ts:33,58,91 • tests/worker.test.ts:1212:01

find

Searches for files and directories by path pattern. Useful in large monorepos before reading files.

A
Agent
online
Find all `docker-compose` files in this project.12:01
3 compose files found: • docker/docker-compose.yml • docker/docker-compose.dev.yml • docker/docker-compose.test.yml12:01

ls

Lists directory contents to inspect structure, generated artifacts, and available scripts.

A
Agent
online
List files under `packages/worker/src/openclaw`.12:01
packages/worker/src/openclaw/ • processor.ts • tools.ts • custom-tools.ts • worker.ts • plugins/12:01

These are API calls from the worker to the gateway. Auth, secrets, and platform delivery are handled by the gateway.

UploadUserFile

Sends generated files back to the user chat thread.

A
Agent
online
Create a CSV report and upload it.12:01
Report generated (24 rows, 3 columns). Uploading churn-report.csv to your thread… File uploaded.12:01

ScheduleReminder

Creates one-time or recurring reminder jobs from natural-language instructions.

A
Agent
online
Remind me every Monday at 9am to review PRs.12:01
Scheduled: Mon 9 AM — review open PRs Recurrence: weekly ID: sched_a1b212:01

CancelReminder

Cancels an existing reminder by schedule ID.

A
Agent
online
Cancel reminder `sched_123`.12:01
Cancelled reminder sched_123. It was: "Check deployment status" — daily at 6 PM.12:01

ListReminders

Lists active reminders so users can audit or cancel them.

A
Agent
online
Show my pending reminders.12:01
2 active reminders: 1. sched_a1b2 — Mon 9 AM: review PRs (weekly) 2. sched_c3d4 — Tomorrow 2 PM: review Q1 deck (one-off)12:01

SearchSkills

Searches discoverable skills/MCPs and lists currently installed capabilities.

A
Agent
online
Find a skill for on-call incident triage.12:01
Found 3 matching skills: 1. ops-triage — incident triage with PagerDuty + Slack 2. on-call-helper — on-call runbook automation 3. alert-summarizer — alert digest and dedup12:01

InstallSkill

Installs or upgrades skills from the registry, bundling their provider/MCP dependencies into a settings approval flow.

A
Agent
online
Install the ops-triage skill.12:01
Installing ops-triage… Needs: Gmail (OAuth), GitHub (OAuth), Linear (API key) Open settings to connect?12:01

InstallPackage

Requests system package installation (nix) with inline user approval buttons.

A
Agent
online
I need ffmpeg to process this video.12:01
Package install request sent. Click below to approve.12:01

RequestNetworkAccess

Requests access to blocked domains with inline user approval buttons.

A
Agent
online
I need to call the GitHub API.12:01
Domain access request sent for api.github.com.12:01

GenerateImage

Generates an image from a prompt and sends it back in the chat thread.

A
Agent
online
Create a minimalist onboarding illustration with teal accents.12:01
Image generated and uploaded to the thread.12:01

GenerateAudio

Converts text responses into audio output.

A
Agent
online
Read this summary aloud and send audio.12:01
Audio generated (1:42). Sending voice message…12:01

GetChannelHistory

Loads earlier thread messages to recover context.

A
Agent
online
Review earlier thread context before answering.12:01
Loaded 12 earlier messages. Context recovered — you previously asked about deployment timelines and CI config.12:01

AskUserQuestion

Sends structured button-based prompts for explicit human-in-the-loop decisions.

A
Agent
online
Ask user whether to run full migration or dry run.12:01
Before proceeding: Run full migration or dry run first?12:01

Beyond built-ins, agents can also receive tools from:

  • OpenClaw plugins (pluginsConfig) loaded at runtime
  • Configured MCP servers (proxied through the gateway)

Lobu uses OpenClaw’s plugin system for memory. The default plugin is Owletto (@lobu/owletto-openclaw, slot memory).

You can switch to another OpenClaw memory plugin, such as @openclaw/native-memory, via pluginsConfig.