Tools & plugins

Using Obsidian with OpenClaw

4 min read

Browse more in Tools & plugins.

All tools & plugins guides →

This guide shows you how to wire OpenClaw’s plugin system into your Obsidian workflow by treating your Obsidian integration as an OpenClaw plugin. You’ll install and enable a plugin, configure it in the OpenClaw config, and understand how OpenClaw discovers and prioritizes plugins.

By the end, you’ll have OpenClaw loading your Obsidian-focused plugin reliably with the right enablement rules.

Setup flow

Prerequisites

  • An existing OpenClaw installation with access to the `openclaw` CLI in your shell.
  • A running OpenClaw Gateway you can restart with `openclaw gateway restart`.
  • A workspace directory where you keep your Obsidian-related OpenClaw extensions, such as `<workspace>/.openclaw`.

Steps

  1. 1

    Inspect which plugins OpenClaw already loads

    Before you add an Obsidian-focused plugin, check what OpenClaw already discovers so you don’t fight with name collisions or disabled states. This gives you a baseline inventory and helps you confirm that your new plugin shows up after you add it.

    bash
    openclaw plugins list
  2. 2

    Install your Obsidian plugin package into OpenClaw

    Install the plugin that will talk to your Obsidian vault using the same mechanism OpenClaw uses for all external plugins. You can install from npm, ClawHub, or a local path depending on how you package your Obsidian integration.

    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

    Configure plugin discovery paths for your Obsidian workspace

    paths` at that directory so OpenClaw can discover it. This is useful when you iterate on the plugin locally instead of publishing to npm.

    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" } },
        },
      },
    }
  4. 4

    Enable your Obsidian plugin and control allow/deny lists

    Once discovery works, explicitly enable the plugin ID you use for Obsidian and tighten `allow`/`deny` so only trusted plugins run. This avoids surprises from workspace plugins that are disabled by default or from untrusted entries that sneak into your config.

    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 so Obsidian changes take effect

    Config changes and new plugin installs don’t fully apply until the Gateway restarts. Trigger a restart so OpenClaw reloads your Obsidian plugin and applies the updated enablement rules.

    bash
    openclaw gateway restart
  6. 6

    Use chat-native commands to manage your Obsidian plugin

    If you prefer to manage plugins from within a chat channel, turn on plugin commands and use the `/plugin` commands. This is handy when you want to enable, inspect, or reinstall your Obsidian plugin without dropping to a shell.

    text
    /plugin install clawhub:@openclaw/voice-call
    /plugin show voice-call
    /plugin enable voice-call
  7. 7

    Verify plugin status and inspect details for your Obsidian integration

    After restart, confirm that OpenClaw sees your Obsidian plugin as enabled and valid. Use the plugin CLI to list, inspect, and diagnose the plugin so you can catch invalid config or discovery issues early.

    bash
    openclaw plugins list                       # compact inventory
    openclaw plugins list --enabled            # only loaded plugins
    openclaw plugins list --verbose            # per-plugin detail lines
    openclaw plugins list --json               # machine-readable inventory
    openclaw plugins inspect <id>              # deep detail
    openclaw plugins inspect <id> --json       # machine-readable
    openclaw plugins inspect --all             # fleet-wide table
    openclaw plugins info <id>                 # inspect alias
    openclaw plugins doctor                    # diagnostics

Configuration

OptionDescriptionExample
plugins.enabledMaster toggle that turns all plugins, including your Obsidian integration, on or off.true
plugins.allowAllowlist of plugin IDs that OpenClaw can enable, useful for explicitly permitting your Obsidian plugin.["voice-call"]
plugins.denyDenylist of plugin IDs that OpenClaw must never enable, even if they appear in allow or entries.["untrusted-plugin"]
plugins.load.pathsExtra file or directory paths where OpenClaw looks for plugin files, such as your Obsidian plugin source.["~/Projects/oss/voice-call-extension"]
plugins.entries.<id>.enabledPer-plugin toggle that enables or disables a specific plugin by ID.true
plugins.entries.<id>.configConfiguration object passed into a specific plugin, such as provider settings.{ provider: "twilio" }
plugins.slots.memorySelects which memory plugin is active, or `none` to disable memory.memory-core
plugins.slots.contextEngineSelects the active context engine plugin or built-in engine.legacy

Troubleshooting

Your Obsidian plugin does not appear in `openclaw plugins list`.

OpenClaw only discovers plugins from configured paths, workspace extensions, global extensions, and bundled plugins. openclaw/<plugin-root>` and that you restarted the Gateway after editing the config.

bash
openclaw plugins list --verbose

The Obsidian plugin shows as invalid or install fails due to config issues.

When plugin config does not match the declared schema, OpenClaw marks it invalid and installs fail closed. config` and then run the doctor command to apply automatic fixes where possible.

bash
openclaw doctor --fix

The Obsidian plugin is installed but disabled and never runs.

deny` always wins over allow. enabled: true`, then restart the Gateway.

bash
openclaw plugins enable <id>

After changing plugin config for Obsidian, behavior does not update.

Plugin config changes require a Gateway restart to take effect. If you run the Gateway with config watch and in-process restart, it usually restarts automatically, but you can force it with the restart command.

bash
openclaw gateway restart

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