Kob AI
An AI coding assistant for VS Code — just enter the URL and API key of a server you already have and start working.
A sidebar chat shows what the AI is doing (reading files / searching / editing files / running commands), in the style of Claude Code,
and you pick the model from a Copilot-style dropdown below the input box.
Getting started
- Click the Kob AI icon in the Activity Bar (far-left strip).
- Click the settings button (the sliders icon, top right) and enter your URL and API key (optional — most local servers don't need one).
- Click Connect & save — the extension detects the server type automatically and fetches the list of available models. The server is kept in the list.
- Choose a model from the dropdown below the input box (type to search, ↑↓ + Enter to select), then type your prompt. Picking a model from another server switches the chat to that server in the same step.
Example URLs: http://localhost:11434 · 192.168.1.20:11434 · https://openrouter.ai/api/v1 · http://localhost:1234/v1
A bare hostname works too (http:///https:// and /v1 are added when needed), and you can also paste a full endpoint URL (e.g. …/v1/chat/completions).
Works with servers that expose an Ollama API or an OpenAI-compatible API (e.g. OpenRouter, LM Studio, vLLM, LiteLLM, llama.cpp server, Ollama /v1, and more).
Your API key is stored in VS Code SecretStorage — one key per server, never written to settings.json and never sent back to the webview.
Upgrading: your current URL, key and model list are carried over to the first entry of the server list automatically (0.1.x setups with a single URL are migrated the same way).
Modes
| Mode |
What it can do |
| Agent (default) |
Read/search files in your workspace, edit files, create files, run terminal commands, and use any MCP tools you configured (e.g. a browser) — file edits, commands and MCP actions run without asking by default (the three Agent checkboxes in the settings panel are on). Untick any of them to be asked (Allow) before each action; "Allow for this chat" then stops the questions for the rest of that chat. |
| Chat |
Plain conversation; never touches your files. |
Agent mode needs a model that supports tool calling. The model picker shows a no tools badge for models that don't, and switches to Chat automatically.
The Agent can use any MCP server — for example chrome-devtools-mcp, which lets it open pages, read them,
click, fill in forms and read the console/network log, so it can test what it wrote or click through a console to deploy.
Servers are configured in your user settings (kobAi.mcp.servers); they start the first time the Agent runs and stop when VS Code closes.
Needs Node.js (npx) on your PATH.
"kobAi.mcp.servers": {
"chrome": {
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9222"],
"allowTools": ["list_pages", "select_page", "new_page", "navigate_page", "take_snapshot",
"click", "fill", "wait_for", "list_console_messages", "list_network_requests"],
"readOnlyTools": ["take_snapshot"]
}
}
readOnlyTools lists tools that only look and never change anything, so they don't ask for approval. Servers don't always mark such tools themselves
(chrome-devtools-mcp does not for take_snapshot), and without this every look at the page would need a click on Allow.
- Use your own logged-in Chrome: start Chrome with a dedicated profile folder and a debugging port, sign in to the sites you need once, and leave it open:
chrome.exe --remote-debugging-port=9222 --user-data-dir="%LOCALAPPDATA%\kob-chrome-profile" (recent Chrome versions refuse the debugging port on the default profile).
Leave out --browser-url and the server opens its own empty Chrome instead (nothing is logged in there).
Newer Chrome versions can also be attached with --autoConnect instead of --browser-url (you allow remote debugging in chrome://inspect) — see the chrome-devtools-mcp README for the versions it needs.
- Approvals: read-only tools (e.g. taking a page snapshot) always run freely. Anything else (click, fill, navigate…) also runs freely by default (
kobAi.agent.autoApproveMcp); untick it to see the exact arguments and wait for Allow each time (or "Allow for this chat", per server).
- Web pages are untrusted input. A page can contain text that tries to steer the model. Kob AI tells the model to ignore instructions found in tool output, but that is not a guarantee:
if you don't trust the pages you visit, turn off
autoApproveMcp and review each action before you click Allow, and don't combine it with autoApproveCommands.
- Give it a big enough context. A page snapshot is long; raise
kobAi.numCtx (e.g. 32768) and use a model with a large window. Output over maxOutputChars (default 20000) is cut off.
- Keep the tool list short (
allowTools): every tool description is sent with each request, and small models get worse with many tools.
- Screenshots are not sent to the model (most local models can't see images); it works from the text snapshot instead.
- Per-server options:
command, args, env, allowTools, readOnlyTools, maxOutputChars, disabled. The setting is machine-scoped on purpose, so a repository's .vscode/settings.json can't make the extension run programs.
- Problems starting a server are shown in the chat once and written to
Kob AI: Show Log (the server's own stderr is included).
More features
- Keep several servers at once (local Ollama, a remote OpenRouter key…): the settings list shows one row per server with its own URL, key, model list and status. Use switches the chat to it, Edit changes its URL/key, Models expands what it offers (and lets you pick a model of that server), Delete removes it together with its saved key. The model dropdown groups every server's models under its own heading, so you can switch server and model in one click
- Attach images for models that can see them: click the 🖼 button, paste a screenshot, or drop image files into the input box. Models marked image in the model menu accept them (read from Ollama's capabilities and OpenRouter's model info); large images are scaled down to 2048 px before sending
- A bar under the input box shows how full the model's context window is. When a chat gets long, click Summarize: the model writes a summary and the work continues in a new chat that starts from it (the old chat stays in History)
- Automatically attaches the active file / highlighted selection as context (a chip above the input box — click ✕ to leave it out)
- An elapsed-time counter, token counts and a Stop button (or press
Esc). Reasoning tokens of thinking models are not shown in the transcript — they only keep the working line at “Thinking…”
- Servers & API keys… (the ⚙ item in the model dropdown and at the top of settings) is where the list lives
- Markdown, code blocks with a Copy button, and tables
- Press ↑ in an empty input box to recall your previous message
- New chat opens the chat as an editor tab (
Kob AI: Open Chat in Editor Tab does the same); the chat you came from keeps running and stays in History, and old chats are never removed automatically
Commands (Ctrl+Shift+P)
Kob AI: Open Chat · Open Chat in Editor Tab · New Chat · Open Settings (Server URL / API Key) · Refresh Model List · Show Log
The URL and API key are set only from the ⚙ button (kept in the extension's secret storage, not in settings.json). If something goes wrong, check the log with Kob AI: Show Log.
Settings (kobAi.*)
| Setting |
Default |
Description |
kobAi.numCtx |
8192 |
Context window in tokens. Sent to Ollama as num_ctx (Ollama's own default is too small for the Agent). For other servers it is the size the context bar measures against, and it wins whenever the server reports a smaller window or none at all |
kobAi.agent.autoApproveEdits |
true |
Edit files without asking |
kobAi.agent.autoApproveCommands |
true |
Run commands without asking (risky) |
kobAi.agent.autoApproveMcp |
true |
Let MCP tools that act on the outside world (click, type…) run without asking (risky) |
kobAi.agent.maxSteps |
100 |
Maximum number of model round-trips the Agent may make per prompt |
kobAi.mcp.servers |
{} |
MCP servers the Agent can use, e.g. a browser — see Browser and other MCP tools. User settings only |
kobAi.systemPrompt |
"" |
Extra instructions appended to the system prompt |
Known limitations
- Chat history is kept in memory only — it is lost on Reload Window or when VS Code closes.
- History is not yet trimmed when it exceeds the model's context window (some models answer poorly or error out in very long chats — click Summarize to continue in a fresh chat, or use New Chat).
- The Agent's file tools (read/search/edit) only operate in the first workspace folder and never write to
.git.
run_command is not sandboxed — it runs real commands on your machine (with the workspace as the working directory). Review each command carefully before clicking Allow, and turn off autoApproveCommands if you use a model you don't trust.
For developers
npm install
npm run compile # build with esbuild -> dist/extension.js
npm run typecheck
npm test # unit + e2e against a mock server (no VS Code/Ollama needed)
npm run test:vscode # run inside real VS Code (separate Extension Host profile) — Windows
npm run package # build the .vsix file
node scripts/harness.js # open the UI in a browser with a simulated VS Code theme: http://localhost:5599/
Press F5 in VS Code (.vscode/launch.json is included) to launch an Extension Development Host.
Install from a .vsix file: code --install-extension kob-ai-0.6.11.vsix