Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build, install, and hot-reload Nimbalyst extensions using MCP tools. Use when developing, testing, or iterating on Nimbalyst extensions.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 196% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 175% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 71% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 11% | 0% |
Nimbalyst provides MCP tools for building, installing, and hot-reloading extensions directly from within the running app. This enables rapid iteration on extension development without manually running build commands.
The recommended in-app scaffold flow uses File > New Extension Project, Developer > New Extension Project, or the Extension Developer Kit's /new-extension command. Enable Extension Dev Tools in Settings > Advanced before using the build/install workflow.
mcp__nimbalyst-extension-dev__extension_buildRuns npm run build (vite build) on an extension project.
Parameters:
path: Absolute path to the extension project root (directory containing package.json and manifest.json)Returns: Build output including any errors or warnings.
mcp__nimbalyst-extension-dev__extension_installInstalls a built extension into the running Nimbalyst instance. The extension must be built first.
Parameters:
path: Absolute path to the extension project rootReturns: Installation status and any validation warnings.
mcp__nimbalyst-extension-dev__extension_reloadRebuilds and reinstalls an extension in one step. This is the most common tool for iterating on extension development.
Parameters:
extensionId: The extension ID from manifest.json (e.g., "com.nimbalyst.my-extension")path: Absolute path to the extension project rootReturns: Build and reload status.
mcp__nimbalyst-extension-dev__extension_uninstallRemoves an installed extension from the running Nimbalyst instance.
Parameters:
extensionId: The extension ID to uninstallmcp__nimbalyst-extension-dev__extension_get_statusGets the current status of an installed extension, including whether it loaded successfully and what it contributes.
Parameters:
extensionId: The extension ID to querymcp__nimbalyst-extension-dev__restart_nimbalystRestarts the entire Nimbalyst application. Only use when explicitly requested by the user.
mcp__nimbalyst-extension-dev__extension_test_runExecute Playwright scripts against the running Nimbalyst instance via CDP. Supports inline scripts or .spec.ts file paths.
Parameters:
script: Inline Playwright code (runs inside an async test with page connected to Nimbalyst)testFile: Absolute path to a .spec.ts filetimeout: Max execution time in ms (default: 30000)Provide either script or testFile, not both.
mcp__nimbalyst-extension-dev__extension_test_open_fileOpens a file in Nimbalyst and waits for the editor to mount. Use before running tests that need a specific file open.
Parameters:
filePath: Absolute path to the file to openwaitForExtension: Extension ID to wait for (waits until the extension's editor container renders)timeout: Max wait time in ms (default: 5000)mcp__nimbalyst-extension-dev__extension_test_ai_toolExecute an extension's AI tool handler directly and return the result. Bypasses full MCP routing.
Parameters:
extensionId: The extension IDtoolName: Tool name without extension prefix (e.g., "get_elements")args: Arguments object to pass to the handlerfilePath: For editor-scoped tools: file path for context/new-extension <path> <name> [file-patterns]extension_buildextension_installextension_reload to rebuild and reinstallextension_get_status to verify it loadedextension_test_open_file to open a sample fileextension_test_run with Playwright scripts to verify behaviorcapture_editor_screenshot for visual verificationget_renderer_debug_logs for runtime errorsInline test example:
extension_test_run({
script: `
const editor = page.locator('[data-extension-id="com.nimbalyst.my-ext"]');
await expect(editor).toBeVisible();
await editor.locator('.save-btn').click();
await expect(editor.locator('.status')).toHaveText('Saved');
`
})Test file example:
extension_test_run({ testFile: "/path/to/extension/tests/basics.spec.ts" })extension_get_statusmcp__nimbalyst-extension-dev__get_main_process_logs (filter by component: "EXTENSION")mcp__nimbalyst-extension-dev__get_renderer_debug_logsextension_install requires a pre-built extensionextension_reload for iteration - It combines build + reinstall in one steprestart_nimbalyst when the user explicitly asksdist/index.jsnpm install was run in the extension directoryextension_get_status to check if it's loadedOther measured skills in the registry, with their headline benchmark lift.