← Back to docs

Plugin Configuration

Customize filler phrases, idle detection, and connection settings for the CrabCallr plugin.

Overview

The CrabCallr plugin supports optional configuration for filler phrases during request processing, idle detection to handle silent callers, and connection tuning. All settings go in your ~/.openclaw/openclaw.json file under the CrabCallr channel config.

Everything is optional — the plugin works out of the box with just an API key. These settings let you fine-tune the voice experience.

Required Configuration

The only required field is your API key. Add it to your ~/.openclaw/openclaw.json under channels.crabcallr.accounts.default.apiKey. See the Getting Started guide for the full setup, including the recommended dmScope setting.

Filler Phrases

When your OpenClaw agent takes time to process a request, the caller hears silence. Filler phrases break the silence with natural responses like "Working on that..." so callers know their request is being processed.

Fillers are enabled by default. The plugin cycles through phrases round-robin, starting after an initial delay and repeating at a configured interval.

Options

Option Default Description
enabled true Enable or disable filler phrases
phrases ["Working on that...", "Still thinking...", "Bear with me..."] Array of phrases to cycle through
initialDelaySec 3 Seconds to wait before the first filler
intervalSec 6 Seconds between subsequent fillers
maxPerRequest 3 Maximum fillers per request (0 to disable)

Example

"fillers": {
  "enabled": true,
  "phrases": [
    "Let me look into that...",
    "One moment please...",
    "Checking on that for you..."
  ],
  "initialDelaySec": 5,
  "intervalSec": 8,
  "maxPerRequest": 2
}

Idle Detection

If a caller goes silent, the plugin can ask if they're still there. After a configurable number of unanswered prompts, it says goodbye and ends the call. This prevents calls from hanging open indefinitely.

Idle detection is enabled by default. The idle timer pauses while a request is being processed (waiting for your OpenClaw agent to respond), so it only triggers during genuine silence.

Options

Option Default Description
enabled true Enable or disable idle detection
timeoutSec 60 Seconds of silence before prompting
prompt "Are you still there?" Message spoken when idle timeout is reached
maxPrompts 2 Number of prompts before ending the call
endMessage "It seems like you've stepped away. Goodbye!" Goodbye message when ending the call

Example

"idle": {
  "enabled": true,
  "timeoutSec": 90,
  "prompt": "Hello? Are you still on the line?",
  "maxPrompts": 3,
  "endMessage": "No response detected. Ending the call. Goodbye!"
}

Connection Settings

These settings control how the plugin connects to the CrabCallr service. You typically don't need to change these.

Option Default Description
serviceUrl wss://ws.crabcallr.com/plugin WebSocket URL of the CrabCallr service
autoConnect true Connect automatically when OpenClaw starts
reconnectInterval 5000 Base reconnect interval in milliseconds
maxReconnectAttempts 10 Max reconnect attempts (0 for unlimited)

Security Defaults

  • Prefer wss:// service URLs for remote deployments. Only use ws:// for local development on loopback.
  • Treat plugins as trusted code. Use explicit plugin allowlists in OpenClaw so only approved plugins can load. Add "crabcallr" to your plugins.allow list in openclaw.json.
  • If you add custom tools to this plugin, make side-effectful tools opt-in and restrict them with allowlists.

See: OpenClaw Security · Plugin safety notes · Plugin agent tools

Full Configuration Example

Here's a complete example showing all available options:

{
  "session": {
    "dmScope": "per-channel-peer"
  },
  "channels": {
    "crabcallr": {
      "accounts": {
        "default": {
          "apiKey": "cc_your_api_key_here",
          "fillers": {
            "enabled": true,
            "phrases": [
              "Working on that...",
              "Still thinking...",
              "Bear with me..."
            ],
            "initialDelaySec": 3,
            "intervalSec": 6,
            "maxPerRequest": 3
          },
          "idle": {
            "enabled": true,
            "timeoutSec": 60,
            "prompt": "Are you still there?",
            "maxPrompts": 2,
            "endMessage": "It seems like you've stepped away. Goodbye!"
          }
        }
      }
    }
  }
}

Need help?

See Troubleshooting for common issues, or check the Getting Started guide if you haven't set up CrabCallr yet.