openclaw - ✅(Solved) Fix [Bug]: Plugin installed via npm not discoverable by `channels add` command [1 pull requests, 1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#78240Fetched 2026-05-07 03:39:16
View on GitHub
Comments
1
Participants
2
Timeline
11
Reactions
2
Author
Timeline (top)
mentioned ×3subscribed ×3closed ×1commented ×1

Plugins installed via openclaw plugins install (from npm) are not discoverable by the channels add command. The command shows "Unknown channel:" error for the installed plugin's channels.

This issue affects the user experience where users must manually copy plugin files to ~/.openclaw/extensions/ directory instead of using the standard npm installation flow.

Error Message

Plugins installed via openclaw plugins install (from npm) are not discoverable by the channels add command. The command shows "Unknown channel:" error for the installed plugin's channels. 4. Observe the error:

Root Cause

Plugins installed via openclaw plugins install (from npm) are not discoverable by the channels add command. The command shows "Unknown channel:" error for the installed plugin's channels.

This issue affects the user experience where users must manually copy plugin files to ~/.openclaw/extensions/ directory instead of using the standard npm installation flow.

Fix Action

Fixed

PR fix notes

PR #78246: fix(channels): discover npm-installed plugins in channels add command

Description (problem / solution / changelog)

Summary

Fix npm-installed plugins not being discovered by channels add command.

Previously, listChannelCatalogEntries did not pass installRecords to discoverOpenClawPlugins, causing npm-installed plugins (installed via openclaw plugins install <package>) to be skipped during channel discovery.

Problem

  1. Install a channel plugin from npm: openclaw plugins install @lansenger/openclaw-channel-lansenger
  2. Plugin appears in plugins/installs.json with installPath: ~/.openclaw/npm/node_modules/@lansenger/openclaw-channel-lansenger
  3. Try to add channel: openclaw channels add --channel Lansenger --token "..."
  4. Error: Unknown channel: Lansenger

Root Cause

listChannelCatalogEntries() called discoverOpenClawPlugins() without installRecords parameter, so:

  • collectInstalledPluginRecordPaths() never ran
  • npm installPath was never added to discovery scan
  • npm-installed plugins were silently skipped

Solution

Load installRecords from plugins/installs.json and pass to discoverOpenClawPlugins:

const installRecords = loadInstalledPluginIndexInstallRecordsSync({ env: params.env });
return discoverOpenClawPlugins({
  workspaceDir: params.workspaceDir,
  env: params.env,
  installRecords, // <-- added
});

Changes

  • Add import: loadInstalledPluginIndexInstallRecordsSync
  • Load and pass installRecords in listChannelCatalogEntries

Test

Existing tests pass (vitest run).

Fixes #78240

Changed files

  • src/commands/channel-setup/trusted-catalog.ts (modified, +4/-0)
  • src/commands/channels/add.ts (modified, +10/-3)
  • src/plugins/channel-catalog-registry.ts (modified, +3/-0)

Code Example

openclaw plugins install @lansenger/openclaw-channel-lansenger

---

{
     "openclaw-channel-lansenger": {
       "source": "npm",
       "spec": "@lansenger/openclaw-channel-lansenger",
       "installPath": "/Users/user/.openclaw/npm/node_modules/@lansenger/openclaw-channel-lansenger",
       ...
     }
   }

---

openclaw channels add --channel Lansenger --token "appId:appSecret:apiGatewayUrl"

---

Unknown channel: Lansenger

---

Added Lansenger account "default".

---

Unknown channel: Lansenger

---
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Plugins installed via openclaw plugins install (from npm) are not discoverable by the channels add command. The command shows "Unknown channel:" error for the installed plugin's channels.

This issue affects the user experience where users must manually copy plugin files to ~/.openclaw/extensions/ directory instead of using the standard npm installation flow.

Steps to reproduce

  1. Install a plugin from npm:

    openclaw plugins install @lansenger/openclaw-channel-lansenger
  2. Verify installation in plugins/installs.json:

    {
      "openclaw-channel-lansenger": {
        "source": "npm",
        "spec": "@lansenger/openclaw-channel-lansenger",
        "installPath": "/Users/user/.openclaw/npm/node_modules/@lansenger/openclaw-channel-lansenger",
        ...
      }
    }
  3. Try to add a channel for the installed plugin:

    openclaw channels add --channel Lansenger --token "appId:appSecret:apiGatewayUrl"
  4. Observe the error:

    Unknown channel: Lansenger

Expected behavior

The channels add command should successfully add the channel for plugins installed via npm, displaying:

Added Lansenger account "default".

Actual behavior

The command fails with:

Unknown channel: Lansenger

OpenClaw version

2026.5.4

Operating system

macOS 15.4

Install method

npm

Model

minimax

Provider / routing chain

openclaw -> minimax

Additional provider/model setup details

Affected Files

  • openclaw/src/commands/channels/add.ts - resolveCatalogChannelEntry() function
  • openclaw/src/channels/plugins/catalog.ts - listChannelPluginCatalogEntries() function
  • openclaw/src/plugins/channel-catalog-registry.ts - listChannelCatalogEntries() function
  • openclaw/src/plugins/discovery.ts - discoverOpenClawPlugins() function

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

  • This issue affects all channel plugins installed via npm, not just the Lansenger plugin
  • The plugin is correctly installed and shows up in the plugin registry
  • The plugin can be loaded from extensions/ directory without issues
  • The issue is specifically in the channels add command's channel discovery mechanism

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

The channels add command should successfully add the channel for plugins installed via npm, displaying:

Added Lansenger account "default".

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix [Bug]: Plugin installed via npm not discoverable by `channels add` command [1 pull requests, 1 comments, 2 participants]