feat: Extension Catalog — GUI-driven extension management for sandboxes#6
Open
mafueee wants to merge 10 commits intofeat/gui-full-controlfrom
Open
feat: Extension Catalog — GUI-driven extension management for sandboxes#6mafueee wants to merge 10 commits intofeat/gui-full-controlfrom
mafueee wants to merge 10 commits intofeat/gui-full-controlfrom
Conversation
…registry JSON with 9 integrations (Discord, Telegram, Slack, Docker, HuggingFace, Jira, npm, PyPI, Outlook)\n- Unit tests validating registry structure, preset references, categories, and credentials
…iltering, and credential modal
…stry policies\n\n- Replace gRPC updateConfig with CLI openshell policy set (fixes\n 'filesystem policy cannot be removed on a live sandbox' error)\n- Auto-apply PyPI/npm registry policies before pip/npm install commands\n- Make install commands advisory (non-fatal) — extension is installed\n when policy+credential steps succeed\n- Update install commands to use python3 -m pip with pip3 fallback
Pre-install discord.py, python-telegram-bot, slack-sdk, huggingface-hub into the sandbox Docker image so they're available immediately without needing pip to reach PyPI through the sandbox proxy.
Discord, Telegram, and Slack extensions now include a channelName field used by the install route to run 'openclaw channels add' inside the sandbox.
Extension install now runs 'openclaw channels add --channel <name> --token <token>' inside the sandbox for messaging extensions (Discord, Telegram, Slack). This registers the channel with OpenClaw's gateway for native agent messaging.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🧩 Extensions Catalog
This PR adds a GUI-driven extension management system for NemoClaw sandboxes, enabling users to browse, install, and uninstall integrations (Discord, Telegram, Slack, Docker Hub, Hugging Face, Jira, npm, PyPI, Outlook) directly from the dashboard.
What's New
Registry (
nemoclaw-blueprint/extensions/registry.json)Backend API (
gui/server/routes/extensions.js)GET /api/extensions— List all extensions with install status per sandboxGET /api/extensions/:id— Get extension detailPOST /api/extensions/install— Apply policy + credentials + in-sandbox packages viaExecSandboxgRPCPOST /api/extensions/uninstall— Remove policy and clean upFrontend (
gui/src/components/extensions/ExtensionCatalog.tsx)Integration (
gui/src/App.tsx)🧩 Extensionsentry in the Configuration section of the sidebar/extensionsrenderingExtensionCatalogTests (
test/extensions.test.js)Documentation (
README.md)Remaining local-only changes
The following small changes need to be applied manually when merging:
gui/server/index.js— Add import and mount:gui/src/index.css— Add extension catalog CSS styles (approx. 500 lines of.ext-*classes at the bottom of the file)Verification
npx vitest run test/extensions.test.js)GET /api/extensionsreturns 9 extensions with correct metadatanpm run build)