WxO Builder is the essential toolkit for developers building on IBM Watsonx Orchestrate. It integrates directly into Visual Studio Code, allowing you to create, test, deploy, and manage your AI tools, agents, and connections without leaving your IDE.
🚀 Key Features
Build robust tools from scratch or templates.
- Visual & Code Editors: Toggle between a user-friendly Form view and a powerful JSON editor for your OpenAPI specs.

- Start Fast: Use built-in templates (Weather, Finance, Time, etc.) or import existing OpenAPI files.

- Import from URL: Quickly onboard public APIs.

- Auto-create Connection: Paste a full URL with an API key (e.g.
...?key=xxx&q=London) and automatically create both the connection and the tool with proper binding. The Form view fills in servers, path, and API key param name from the URL.
🧪 Advanced Testing (Local & Remote)
Verify your tools before deployment.
- Test and Generate Tool: Test endpoints and generate OpenAPI specs from responses. After generating, the view switches to Form View so you can review and edit.
- Run Local: Test the API endpoint directly from VS Code to ensure the backend is working.
- Run Remote: Execute the tool through Watson Orchestrate's engine. This verifies authentication, parameter mapping, and agent response generation.

- Copy as cURL: Debug easily by copying the exact request as a cURL command.

🤖 Agent Management
Create and orchestrate AI agents.
- Drag & Drop: Easily assign tools to agents.

- Export as MCP Server: Right-click an agent → Export as MCP Server to generate a self-contained MCP server project for Cursor, Claude Desktop, or other MCP clients. Includes
chat, run_tool, list_tools, and get_agent tools.
- Full Agent Config: Edit name, description, instructions, model, Agent style (
default, react, planner, react_intrinsic), Welcome message, Quick prompts (starter prompts), Tags, Hidden (hide from list), Hide reasoning.
- JSON Editor Tab: Edit the full agent JSON (including welcome_message, quick_prompts, tags, hidden, hide_reasoning) and save. Subset of API fields; note lists additional supported fields.
- Chat Interface: Interact with your agents and tools directly within VS Code to test the end-user experience.

📦 Installation
- From Repository:
- Clone the repository.
- Run
npm install and npm run compile.
- Press F5 to launch the Extension Development Host.
- From VSIX: Build with
npm run package and install via "Install from VSIX..." in VS Code.
⚡ Getting Started Workflow
Open the Status & Diagnostics view.
- Click Configure.
- Enter your IBM Cloud API Key and Watson Orchestrate Instance URL.
- Select your scope:
draft (for development) or live (for production).
(Tip: Use draft to avoid affecting production users.)
- Go to the Tools view.
- Click the + (Create Tool) icon.
- Choose OpenAPI Tool or Python Tool (for Python code upload).
- OpenAPI: Pick a template (e.g., "World Time"), import from URL/file, or use Auto-create connection from URL — paste a full URL with API key to auto-fill servers, path, and API key param, then create connection and tool in one step.
- Edit the specification in Form view or JSON editor.

- Click Create Tool to register with Watson Orchestrate.
- Right-click your new tool and select Test Tool (or use the Test and Generate Tool tab when creating).
- Generate: Paste a URL and params, run "Run Local", then click Generate from Response to infer an OpenAPI spec. The view switches to Form View for editing.
- Local Test: Click "Run Local" to hit the API directly.
- Remote Test: Click "Run Remote" to have Watson Orchestrate invoke it. (Requires an Agent ID configured in settings).
- Go to the Agents view.
- Click + (Create Agent).
- Drag your tool from the Tools view and drop it onto the Agent.
- Start a chat to test the agent's ability to use the tool.
🌐 Embedding Web Chat in Your App
You can embed your Watson Orchestrate agent into a web application using the official embed chat. See the IBM watsonx Orchestrate Web Chat documentation for full details.
Requirements
- HTML: Add
<!DOCTYPE html> and a mount point: <div id="root"></div>.
- Configuration: Set
window.wxOConfiguration with your orchestrationID, hostURL, crn, deploymentPlatform, and chatOptions.agentId before loading the script.
- JWT token: Security is enabled by default. You must fetch a JWT from a backend and set
window.wxOConfiguration.token before calling wxoLoader.init(). Without a valid token, the chat will not initialize.
- Server-side JWT creation: A backend is required to store your RSA private key, sign JWTs with RS256, and optionally encrypt
user_payload with IBM’s public key.
Minimal embed script example
<!DOCTYPE html>
<html>
<head>
<script>
window.wxOConfiguration = {
orchestrationID: "your-orgID_orchestrationID",
hostURL: "https://us-south.watson-orchestrate.cloud.ibm.com",
rootElementID: "root",
deploymentPlatform: "ibmcloud",
crn: "your-org-crn",
chatOptions: { agentId: "your-agent-id" },
};
async function getIdentityToken() {
const response = await fetch('https://your-server.com/createJWT', {
method: 'GET',
credentials: 'include',
});
const token = await response.text();
window.wxOConfiguration.token = token;
}
getIdentityToken().then(() => {
const script = document.createElement('script');
script.src = `${window.wxOConfiguration.hostURL}/wxochat/wxoLoader.js?embed=true`;
script.addEventListener('load', () => wxoLoader.init());
document.head.appendChild(script);
});
</script>
</head>
<body>
<div id="root"></div>
</body>
</html>
Backend setup
Your server must expose an endpoint (e.g. /createJWT) that:
- Loads your RSA private key and IBM’s public key.
- Signs a JWT with RS256 containing claims such as
sub, user_payload, and context.
- Returns the signed JWT as plain text.
IBM provides a full Node.js/Express example with key generation, JWT signing, and encryption in Getting Started.
Optional configuration
agentEnvironmentId: Add to chatOptions for environment-specific agents.
layout: Control display with form (float | fullscreen-overlay | custom), width, height, and showOrchestrateHeader.
🔧 Configuration Reference
| Setting |
Description |
wxo-builder.apiKey |
Your IBM Cloud API Key for Watson Orchestrate authentication. |
wxo-builder.instanceUrl |
The base URL of your Watson Orchestrate instance. |
wxo-builder.scope |
draft or live. Controls where resources are created. |
wxo-builder.agentId |
(Optional) The ID of an agent to use for "Run Remote" tests. |
wxo-builder.debug |
Enable verbose logging to the "WxO Builder" output channel. |
❓ Troubleshooting
| Issue |
Solution |
| Tools list is empty |
Check your API Key and Instance URL in Settings. Click the Refresh icon. |
| 403 Forbidden |
Ensure your API Key has the correct permissions for the selected environment (draft/live). |
| 500 Error on Create |
Validate your OpenAPI spec. Use the "Validate" button in the editor. |
📚 Documentation
📝 License
Apache-2.0 — See LICENSE for details.
👨💻 Author
Markus van Kempen — markus.van.kempen@gmail.com
19-Feb-2026
| |