Skip to content
  • Program Claude Code, Codex, Pi and other agent harnesses with AI SDK

    AI SDK 7 introduces HarnessAgent, a single API for running established agent harnesses, including Claude Code, Codex, and Pi. AI SDK has always let you switch models without rewriting your agent. Now you can switch the harness the same way.

    Write the agent once. Use the best harness available.
    Today. In 3 months. A year from now.

    Harnesses manage the components above a model call, including skills, sandboxes, sessions, permission flows, compaction, runtime configuration, and sub-agents. The AI SDK normalizes access to those capabilities through a unified harness abstraction.

    Initial harness adapters for this experimental release include Claude Code, Codex, and Pi, with more coming soon.

    agent.ts
    import { HarnessAgent } from '@ai-sdk/harness/agent';
    import { claudeCode } from '@ai-sdk/harness-claude-code';
    import { createVercelSandbox } from '@ai-sdk/sandbox-vercel';
    const agent = new HarnessAgent({
    harness: claudeCode,
    sandbox: createVercelSandbox({
    runtime: 'node24',
    ports: [4000],
    }),
    tools: { /* pass custom tools */ },
    skills: [ /* pass custom skills */ ],
    });
    const session = await agent.createSession();
    try {
    const result = await agent.stream({
    session,
    prompt: 'Check the test failures and fix the production code.',
    });
    for await (const part of result.fullStream) {
    if (part.type === 'text-delta') {
    process.stdout.write(part.text);
    }
    }
    } finally {
    await session.destroy();
    }

    Create a harness-backed agent using Claude Code

    Swap claudeCode for codex or pi and keep the same HarnessAgent flow. Every harness runs the agent in a sandboxed workspace, keeping the host environment safe.

    Both HarnessAgent.generate() and HarnessAgent.stream() return AI SDK-compatible results. If your app already uses useChat or related AI SDK tooling, you can swap in HarnessAgent without changing your user interface code.

    HarnessAgent is available on the AI SDK canary release. Read the AI SDK harness documentation to get started.

    Harness packages are experimental. Expect breaking changes between releases as this early API gets further refined.

  • Vercel plugin is now available in Grok Build

    The Vercel plugin is now available in Grok Build.

    Grok can now draw on Vercel knowledge as you work. Real-time activity, including file edits and terminal commands, dynamically injects the relevant knowledge into context, so answers stay aligned with current platform APIs and recommended patterns.

    Install it in either of two ways:

    • Add vercel to your prompt and Grok will recommend installing it in chat

    • Open the Grok Build marketplace with /marketplace, then search for and install Vercel

    Grok recommends the Vercel plugin when a prompt mentions Vercel, then uses it to answer.

    Learn more about the Vercel plugin in the documentation.

  • DeepSeek models now available via Azure on AI Gateway

    Azure is now a provider for DeepSeek V4 Pro and V4 Flash on AI Gateway.

    Requests to either model can route through Azure alongside the existing providers for another failover path. No code changes are required: default routing considers Azure automatically, and if a provider fails the gateway falls back through the remaining list.

    If you want requests to try Azure first, use order in the gateway provider options to prefer Azure while keeping the other providers as fallback for deepseek/deepseek-v4-pro or deepseek/deepseek-v4-flash in the AI SDK:

    import { streamText } from 'ai';
    const result = streamText({
    model: 'deepseek/deepseek-v4-pro',
    prompt: 'Refactor this function to use async/await.',
    providerOptions: {
    gateway: {
    order: ['azure'],
    },
    },
    });

    If you have existing Azure credentials, you can bring your own key and AI Gateway will use it for requests routed to Azure. See API key authentication and BYOK for setup.

    AI Gateway provides a unified API for calling models, tracking usage and cost, and configuring retries, failover, and performance optimizations for higher-than-provider uptime. It includes built-in custom reporting, Zero Data Retention support, budgets for API keys, and more. AI Gateway reflects provider pricing with no markup and does not charge a platform fee on inference, including on Bring Your Own Key (BYOK) requests.

    Learn more about AI Gateway, view the AI Gateway model leaderboard or try it in our model playground.

  • Threshold billing is now enabled for Pro teams

    Threshold billing now sends Pro teams a partial invoice mid-cycle once on-demand usage reaches a threshold, instead of holding all charges until the end of the billing period. Partial invoices and the end-of-cycle invoice add up to your total usage, so the same usage is never billed twice.

    Learn more about partial invoices.

    Bryan Mishkin

  • Claude Fable 5 now available on AI Gateway

    Claude Fable 5 from Anthropic is now available on AI Gateway. A Mythos-class model, Fable 5 is a notable step up over prior Claude models on long-running, ambiguous, multi-step tasks, executing end-to-end on work that previously required frequent human check-ins.

    The model sustains productive output across multi-day runs and dependably dispatches parallel sub-agents, and lower effort settings often match what prior Claude models produced at their highest effort. Code review, bug-finding, and repository investigation are stronger, and first-shot correctness on complex problems is noticeably higher.

    Fable 5 ships with blocking classifiers in place that refuse offensive cybersecurity, biology, and summarized-thinking extraction, because the model's capabilities in those areas introduce real misuse risk. Anthropic also does not support Zero Data Retention because some misuse patterns only become visible across cumulative requests. Prompts and completions are retained for 30 days and are not used to train Claude.

    To use Fable 5, set model to anthropic/claude-fable-5 in the AI SDK.

    import { streamText } from 'ai';
    const result = streamText({
    model: 'anthropic/claude-fable-5',
    prompt: 'Investigate why p99 latency regressed and propose a fix.',
    providerOptions: {
    anthropic: {
    thinking: { type: 'adaptive' },
    effort: 'high',
    },
    },
    });

    AI Gateway provides a unified API for calling models, tracking usage and cost, and configuring retries, failover, and performance optimizations for higher-than-provider uptime. It includes built-in custom reporting, Zero Data Retention support, dynamic provider sorting by latency and cost, and more. AI Gateway reflects provider pricing with no markup and does not charge a platform fee on inference, including on Bring Your Own Key (BYOK) requests.

    Learn more about AI Gateway, view the AI Gateway model leaderboard or try it in our model playground.

  • Budgets for API keys on AI Gateway

    AI costs are getting harder to forecast. As teams lean more on coding agents and other token-heavy workflows, a key can burn cost faster than anyone notices:

    • Autonomous workflows that can loop or fan out without supervision

    • Demos and prototypes that could catch unexpected traffic if shared or shipped

    • Developers exploring or experimenting without a sense of per-model cost

    Set a spend cap on any key, and AI Gateway rejects further requests on that key once the limit is exceeded, until the budget resets or you raise it. The cap applies to all AI Gateway providers and models running through the key, making it easier to consolidate and govern AI costs.

    Link to headingAPI key budgets in the Vercel Dashboard

    On the AI Gateway API Keys page, click Create Key, enable the Spend Quota option, enter a limit in dollars, and choose a refresh period.

    You can also edit existing keys and add, change, or remove budgets by clicking the right hand side ... menu and Edit Key.

    Link to headingAPI key budgets in the Vercel CLI

    Create a budgeted API key programmatically via the Vercel CLI. The format is:

    vercel ai-gateway api-keys create --name <NAME> --budget <DOLLARS> --refresh-period <PERIOD>

    Pair a key with an optional refresh period (daily, weekly, monthly, or none) to scope the limit to a window. Each period resets at the start of its window in UTC.

    Keys created programmatically will also appear in your team AI Gateway API Keys view, so you can see all keys in one place.

    Read the API keys documentation for more information about setting and using budgets for API keys.

  • Domain Search is now available through the Vercel CLI

    You can now use the Vercel CLI to search domains. Using the vercel domains search command, you can supply a domain name and retrieve availability and price results for all TLDs that Vercel supports.

    ~ vercel domains search acmesite --limit 5
    > Domain Availability Purchase Renewal
    acmesite.com Unavailable - -
    acmesite.dev Available $13 / 1 year $13 / 1 year
    acmesite.app Available $14.99 / 1 year $15 / 1 year
    acmesite.io Available $37.99 / 1 year $46 / 1 year
    acmesite.ai Available $160 / 2 years $160 / 2 years
    > To continue, run `vercel domains search acmesite --next eyJxdWVyeSI6ImFjbWVza...

    You can also filter by TLD, apply sorting, and filter out unavailable domains.

    vercel domains search acmesite --tld com --tld ai
    vercel domains search acmesite --available
    vercel domains search acmesite --order alphabetical
    vercel domains search acmesite --format json
    vercel domains search --help

    Upgrade your Vercel CLI to version 54.10.1 to get started.

  • Drives for Vercel Sandbox in Private Beta

    Vercel Sandbox now supports drives in private beta. Drives are persistent, attachable storage with a lifecycle independent from any sandbox.

    Create a drive once, then mount it at a configurable path when starting a sandbox. When the sandbox stops, the drive remains available to attach to a later sandbox.

    Install the beta SDK (@vercel/sandbox@beta) or beta CLI (sandbox@beta), then create and mount a drive:

    import { Drive, Sandbox } from "@vercel/sandbox";
    const drive = await Drive.getOrCreate({
    name: "agent-workspace",
    });
    const sandbox = await Sandbox.create({
    mounts: {
    "/workspace": {
    drive: drive.name,
    mode: "read-write",
    },
    },
    });

    Sandbox Drives are useful for:

    • Keeping agent workspaces across disposable sandboxes

    • Retaining cloned repositories, dependencies, and build outputs

    • Managing data independently from the sandbox lifecycle

    During the private beta, a drive can be mounted read-write by one sandbox at a time. Sandbox drives should not be used for production data while in private beta.

    Sign up here to join the waitlist, and learn more in the docs.