BlobCode documentation
Everything you need to use BlobCode: the VS Code extension and the Anthropic-compatible API gateway behind it.
Getting started
- Create an account (free, no card needed).
- Download the extension file directly: blobcode.vsix.
- Install it in VS Code by opening the Extensions view (Ctrl+Shift+X), clicking the three dots (...) in the top-right corner, and selecting "Install from VSIX...".
- Click Connect account in the extension panel. Your browser will open /connect, you sign in, and VS Code receives a secure token automatically. No keys to copy.
- Pick a model, type, and start shipping.
Download extension
The BlobCode VS Code extension gives you a native agent panel, inline diff review, and is one keybinding away from your editor. Download the VSIX file below and install it manually:
Installation Tutorial
- Click the button above to download the
blobcode.vsixpackage. - Open Visual Studio Code.
- Go to the Extensions view (click the square extensions icon in the left sidebar or press Ctrl+Shift+X / Cmd+Shift+X).
- Click on the ... (Views and More Actions) menu button located at the top-right of the Extensions side panel.
- Choose "Install from VSIX..." from the dropdown menu.
- Select the downloaded
blobcode.vsixfile from your computer and click Install. - Once installed, click on the BlobCode logo in the Activity Bar on the left sidebar to open the extension chat, click the gear icon (⚙️) to open Settings, and enter your API Key from the Dashboard.
Skills
Skills extend what BlobCode can do in your workspace. Each skill is a folder in .blobcode/skills/ containing a manifest.md that defines its name, description, and behavior.
Installing skills
Installing skills is as simple as talking to the AI. Just ask the agent to install a skill in the chat panel:
install this skill https://github.com/owner/repoThe agent will resolve the skill repository, clone it into your local workspace, and configure it instantly.
Skill manifest format
Each skill lives in its own folder under .blobcode/skills/ and must contain a manifest.md file:
---
name: my-skill
description: What this skill does and when to use it
---
# My Skill
Instructions for the agent on how and when to apply this skill...Once installed, the agent will dynamically recognize the skill and apply its instructions to relevant tasks in your codebase.
API keys
Create and revoke keys in Dashboard / API Keys. Keys look like blob-... and are sent either as an x-api-key header or as a Bearer token:
curl https://api.blobcode.dev/v1/check?license=blob-YOUR_KEY
# or
curl -H "x-api-key: blob-YOUR_KEY" https://api.blobcode.dev/v1/models
# or
curl -H "Authorization: Bearer blob-YOUR_KEY" https://api.blobcode.dev/v1/modelsEndpoints
Base URL: https://api.blobcode.dev
POST /v1/messages
Anthropic Messages API format, including streaming, tools and extended thinking. This is the endpoint the extension uses.
curl https://api.blobcode.dev/v1/messages \
-H "x-api-key: blob-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Write a binary search in TypeScript" }]
}'Works with the official Anthropic SDKs by overriding the base URL:
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "blob-YOUR_KEY",
baseURL: "https://api.blobcode.dev",
});
const msg = await client.messages.create({
model: "claude-sonnet-4",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello!" }],
});POST /v1/chat/completions
OpenAI-compatible endpoint for tools that only speak the OpenAI format (streaming supported):
from openai import OpenAI
client = OpenAI(api_key="blob-YOUR_KEY", base_url="https://api.blobcode.dev/v1")
resp = client.chat.completions.create(
model="claude-sonnet-4",
messages=[{"role": "user", "content": "Explain this regex: ^blob-[a-f0-9]{64}$"}],
)
print(resp.choices[0].message.content)GET /v1/models
Lists available models with their request weight and the minimum plan required.
GET /v1/check
Validates a key and returns your plan, credits, daily and weekly usage, plus per-model access for your plan:
{
"valid": true,
"plan": "basic",
"credits": 110,
"session": { "used": 12, "limit": 250, "remaining": 238, "reset_at": "..." },
"week": { "used": 90, "limit": 1000, "remaining": 910, "reset_at": "..." },
"models": [
{ "id": "claude-haiku-4", "multiplier": 0.8, "min_plan": "free", "allowed": true },
{ "id": "claude-sonnet-4", "multiplier": 1, "min_plan": "free", "allowed": true },
{ "id": "claude-opus-4", "multiplier": 3, "min_plan": "basic", "allowed": true },
{ "id": "fable", "multiplier": 8, "min_plan": "pro", "allowed": false }
]
}GET /v1/health
Simple liveness probe, no auth.
Models & request weights
Every request is weighted by the model it uses. The weight is what counts against your weekly and session allowances.
| Model id | Name | Weight | Available from |
|---|---|---|---|
| claude-haiku-4 | Claude Haiku 4.5 | ×0.8 | Free |
| claude-sonnet-4 | Claude Sonnet 4.6 | ×1 | Free |
| claude-opus-4 | Claude Opus 4.8 | ×3 | Basic |
| fable | Claude Fable 5 | ×8 | Pro |
Limits & credits
Limits are weekly (rolling 7 days) with a 24-hour daily window for burst protection. There is no monthly limit. Unused weekly requests don't roll over and are forfeited when a plan ends. Details in the Fair Use Policy.
| Plan | Price | Requests / week | Daily (24h) | Max tokens |
|---|---|---|---|---|
| Free | $0 | 50 | 20 | 4,096 |
| Basic | $10/mo | 1,000 | 250 | 8,192 |
| Pro | $25/mo | 3,000 | 750 | 16,384 |
| VibeCoder | $50/mo | 8,000 | 2,000 | 32,768 |
Credits earned through the referral program never expire and are spent automatically once your weekly allowance runs out.
Errors
| Status | Meaning |
|---|---|
| 401 | Missing, malformed or inactive API key. |
| 403 | Model not available on your plan (e.g. Fable on Basic). The message names the required plan. |
| 429 | Daily or weekly limit reached and no credits left. The message includes when the window resets. |
| 502 | Upstream model provider unreachable; retry. |
Errors follow the Anthropic format: { "error": { "type": "invalid_request_error", "message": "..." } }
Questions? Email support@blobcode.dev.