Tools & plugins

Using Gmail with OpenClaw

3 min read

Browse more in Tools & plugins.

All tools & plugins guides →

This guide walks you through installing and configuring an OpenClaw plugin so your agent can talk to external services like Gmail using the plugin system. You will see how to install a plugin, wire it into the `plugins` config block, and control it from both the CLI and chat commands.

By the end, you will have a plugin-enabled OpenClaw gateway that you can extend with a Gmail integration plugin when one is available.

Prerequisites

  • An existing OpenClaw installation with the `openclaw` CLI available in your shell.
  • Access to your OpenClaw config file so you can edit the `plugins` section.
  • Permission to restart the OpenClaw Gateway process after config changes.

Steps

  1. 1

    Inspect which plugins OpenClaw already loads

    Before you add a Gmail plugin, you need to see what plugins OpenClaw already discovers and whether plugins are enabled at all. Use the plugin inventory command to confirm the gateway can see bundled and external plugins.

    bash
    openclaw plugins list
  2. 2

    Install a plugin that will back your Gmail integration

    OpenClaw installs plugins from npm, ClawHub, or a local path using the same resolver as the CLI. In practice, your Gmail integration will be an installable plugin package, so get comfortable with the install flow using the official examples.

    bash
    # From npm
    openclaw plugins install @openclaw/voice-call
    
    # From a local directory or archive
    openclaw plugins install ./my-plugin
    openclaw plugins install ./my-plugin.tgz
  3. 3

    Enable chat-native plugin control for faster Gmail plugin management

    Once you have a plugin installed, you can manage it from inside a chat if you enable plugin commands. This is useful when you want to toggle or inspect a Gmail plugin without dropping to a shell.

    bash
    /plugin install clawhub:@openclaw/voice-call
    /plugin show voice-call
    /plugin enable voice-call
  4. 4

    Configure the plugin entry in your OpenClaw config

    Every plugin, including a future Gmail plugin, is controlled under the `plugins` block in your config file. config` to decide which plugins can run and how they behave.

    json
    {
      plugins: {
        enabled: true,
        allow: ["voice-call"],
        deny: ["untrusted-plugin"],
        load: { paths: ["~/Projects/oss/voice-call-extension"] },
        entries: {
          "voice-call": { enabled: true, config: { provider: "twilio" } },
        },
      },
    }
  5. 5

    Restart the OpenClaw Gateway to apply Gmail plugin changes

    OpenClaw only picks up plugin installs and config changes after a gateway restart. The default `openclaw gateway` path usually restarts in-process when it detects config changes, but you should still know the explicit restart command.

    bash
    openclaw gateway restart
  6. 6

    Verify plugin enablement and slots after configuration

    After you wire in a Gmail plugin, you want to confirm it is enabled and not blocked by allow/deny rules or slot selection. Use the CLI to inspect plugin state and, if needed, adjust exclusive slots like `memory` or `contextEngine`.

    bash
    openclaw plugins list --enabled
    openclaw plugins inspect <id>              # deep detail
    openclaw plugins inspect <id> --json       # machine-readable
    openclaw plugins enable <id>
    openclaw plugins disable <id>

Configuration

OptionDescriptionExample
plugins.enabledMaster toggle that turns all plugins on or off for your OpenClaw deployment.
plugins.allowAllowlist of plugin IDs that OpenClaw is permitted to load, useful when you want to restrict which plugins (like a Gmail plugin) can run.
plugins.denyDenylist of plugin IDs that OpenClaw must never load; this list always wins over the allowlist.
plugins.load.pathsExtra file or directory paths where OpenClaw looks for plugin code, including local Gmail plugin development directories.
plugins.entries."voice-call".enabledPer-plugin toggle that enables or disables the plugin with ID `voice-call`.
plugins.entries."voice-call".config.providerProvider-specific configuration for the `voice-call` plugin; a Gmail plugin would expose its own keys under `config`.twilio
plugins.slots.memorySelects which memory plugin occupies the exclusive `memory` slot, or `none` to disable memory.memory-core
plugins.slots.contextEngineSelects which context engine plugin is active for the `contextEngine` slot.legacy

Troubleshooting

Your Gmail plugin does not appear in `openclaw plugins list` after you add it to the config.

OpenClaw treats plugins that are referenced in config but not discovered as "missing". paths` includes any custom path you are using.

bash
openclaw plugins list --verbose

Config changes for your Gmail plugin do not take effect in the running gateway.

Plugin config changes require a gateway restart before they apply. Even though the default `openclaw gateway` path watches config and restarts in-process, explicitly restarting the gateway clears stale plugin state.

bash
openclaw gateway restart

The Gmail plugin shows as invalid in the plugin inventory.

An invalid plugin means the plugin exists but its config does not match the declared schema. config` and rerun the doctor command if the install flow pointed you there.

bash
openclaw plugins doctor

Your Gmail plugin is installed but does not run in conversations.

Enablement rules can disable a plugin even when it is installed. enabled` is not set to false.

bash
openclaw plugins enable <id>

Frequently asked questions

Powered by Mem0

Add persistent memory to OpenClaw

Official Mem0 plugin for OpenClaw keeps context across chats and tools. Smaller prompts, lower cost, better continuity for your agents.

More in Tools & plugins