kbagent for AI agents
Give an AI coding agent safe control of Keboola with kbagent: the plugin and /keboola subagent, per-client setup for Claude Code, Claude Desktop, Cursor, VS Code and the ChatGPT app, read-only sandboxing, the conversation ID, and the kbagent context reference.
kbagent is built to be driven by AI coding agents (Claude Code, Claude Desktop, Cursor, VS Code, the ChatGPT app) as well as humans. It gives an agent a stable command surface, a machine-readable reference, and safety rails so it can operate Keboola without you handing over unrestricted access.
The kbagent plugin
Section titled “The kbagent plugin”The plugin teaches an AI client the CLI. It adds a /keboola slash command that spawns a keboola-expert subagent with fresh context and hard rules (fetch the current reference, dry-run first, prefer the CLI over raw REST/MCP, gate on version), plus a structured verification payload. It also ships a skill, so where the plugin is installed you can just ask for what you want in plain language (“set up kbagent for my Keboola project”, “log me out of Keboola”) instead of copying commands.
The plugin lives in the CLI repo at plugins/kbagent and ships from Keboola’s AI Kit marketplace, which is named keboola-claude-kit.
Five clients can install it: Claude Code, Claude Desktop, Cursor, VS Code and the ChatGPT app. Each has its own route, and all five are below. The plugin does not connect your project. That is a separate step, so you need both.
In every client’s plugin list, keboola-cli sits next to kbagent. It is a separate project-review toolkit built on the older kbc sync CLI. For the agent interface described here, pick kbagent.
The /kbagent:setup shortcut
Section titled “The /kbagent:setup shortcut”Claude Code is the only client that can run /kbagent:setup. Pass it a stack URL. It installs the CLI if it is missing, starts the browser sign-in, registers every project you can reach on that stack, and verifies the result. You finish the sign-in in your terminal. Anything already done is skipped, so re-running it is safe.
The other four clients cannot run it. Install the CLI and connect your project in a terminal first, then add the plugin from your client’s UI.
Set up your client
Section titled “Set up your client”First, in a terminal
Section titled “First, in a terminal”Every client except Claude Code starts here.
- Install the CLI for your operating system.
- Connect your project. Sign in with
kbagent auth login, or register it with a Storage API token. - Check what you have
kbagent doctor
Use a real terminal for all three. auth login opens a browser you have to finish at, and a tokenless project add prompts with hidden input, which needs a TTY an agent’s tool-run shell does not have.
kbagent doctor sits here, with the steps it checks. It looks for a plugin under ~/.claude/plugins/cache, so it cannot see a Cursor, VS Code or ChatGPT app install, and it cannot confirm the plugin half of your setup.
Then follow your client below.
Claude Code
Section titled “Claude Code”Claude Code is already a terminal, so it can do the whole setup itself.
- Start it
claude - Add the marketplace
/plugin marketplace add keboola/ai-kit - Install the plugin
/plugin install kbagent@keboola-claude-kit - Run the setup
/kbagent:setup https://connection.keboola.com - Ask it
kbagent list my projects
Claude Desktop
Section titled “Claude Desktop”Claude Desktop has no slash commands in its chat. /plugin answers “/plugin isn’t available in this environment”, and both /kbagent:setup and /kbagent answer “Unknown command”. The plugin goes in through the UI instead.
- Do the terminal steps above.
- Open Customise → Plugins → Add → Add from marketplace and paste
keboola/ai-kit. The short form works here. - Find the card titled kbagent and click its plus.
- Ask in the chat:
kbagent list my projects
Type that last one without a leading slash. /kbagent … fails here.
Cursor
Section titled “Cursor”- Do the terminal steps above.
- Open Customise → Browse Marketplace → Add Marketplace → Import from GitHub.
- Paste the full URL as the repository:
https://github.com/keboola/ai-kit - Find the
kbagentrow under Keboola Ai Kit and press Add. - Ask in the chat:
kbagent list my projects
VS Code
Section titled “VS Code”VS Code’s Copilot reads the Claude plugin format (.claude-plugin/plugin.json and .claude-plugin/marketplace.json), so AI Kit works there unchanged.
- Do the terminal steps above.
- Open the Command Palette (
⇧⌘P, orCtrl+Shift+Pon Windows) and run Chat: Install Plugin from Source. Several palette entries start with “Install”, so match the whole name. - Paste
https://github.com/keboola/ai-kitas the source, then confirm the Trust prompt. VS Code asks because a plugin can run code. - Pick
kbagentfrom the picker. - Open the Chat panel (
⌃⌘I, orCtrl+Alt+Ion Windows) and ask:kbagent list my projects
ChatGPT app
Section titled “ChatGPT app”The ChatGPT app, formerly Codex, accepts .claude-plugin/marketplace.json and git-subdir sources, which is how AI Kit publishes the plugin. Nothing Codex-specific is needed.
- Do the terminal steps above.
- In Settings, turn on Developer mode. Without it the app has nowhere to add a marketplace from. Its warning mentions unverified connectors and permanent data loss. Here that means the plugin runs the CLI under your own login, so it can do whatever your token can.
- In the plugins view, open Add → Add a marketplace and paste
https://github.com/keboola/ai-kitas the source. Leave Git ref and Sparse paths empty. The grey text in them is placeholder, andplugins/codexin particular reads like a value you should keep. - Switch to the Personal tab, where an added marketplace is listed, and install
kbagent. - Ask in the chat:
kbagent list my projects
The same two steps work from a shell:
codex plugin marketplace add https://github.com/keboola/ai-kitcodex plugin add kbagent@keboola-claude-kitPlain terminal
Section titled “Plain terminal”No AI client involved: install the CLI, connect your project, verify with kbagent doctor, and list what you can reach with kbagent project list.
The context reference
Section titled “The context reference”Any agent — plugin or not — should start by loading the full command reference:
kbagent contextIt prints usage instructions and the complete, version-matched command list as Markdown, so the agent works from what your installed version actually supports rather than guessing.
Sandbox the agent
Section titled “Sandbox the agent”Don’t give an agent write access it doesn’t need. kbagent’s permission firewall lets you scope a session or a workspace:
# Read-only local workspace for an agentkbagent init --from-global --read-only
# Or block writes for a single sessionkbagent --deny-writes config listCombined with per-project scoped tokens (kbagent token …), you can let an agent explore and propose changes while you keep approval of anything destructive.
Set a conversation ID
Section titled “Set a conversation ID”Set a conversation ID before the agent runs commands, so platform observability can correlate the whole session (every request carries an X-Conversation-ID header):
export KBAGENT_CONVERSATION_ID="<unique-id>"How it fits with the other AI tools
Section titled “How it fits with the other AI tools”- kbagent — the agent’s hands on your projects from the terminal, with sandboxing.
- MCP server — direct tool calls over MCP; kbagent can also call MCP tools via
kbagent tool. - AI Kit — coding-assistant plugins for building Keboola components and apps.
- Kai — the in-product assistant;
kbagent kai ask -m "why did last night's load fail?"puts the same assistant in your shell (beta).
Next: Command reference →