Skip to main content

Vibe SDK

High-level Python interface for running Vibe agents.

The SDK gives you:

  • Agent and stateful async/sync sessions
  • Pydantic-based tool authoring
  • Built-in filesystem tools
  • Client-handled tools for UI- or host-dependent actions, such as asking the user a question
  • Skills: reusable instruction sets advertised in the prompt and loaded on demand

For architecture and design references, see ARCHITECTURE.md and documentation/INDEX.md.

Advanced raw task-protocol examples live in examples/advanced_task_protocol_examples. They are not the primary public SDK API, but they are useful end-to-end probes for local, HTTP, and workflow execution.

Tool annotations

Use ToolResult to return metadata to non-model consumers while keeping the model-visible result compact:

from pydantic import BaseModel

from mistralai.vibe.sdk.capabilities import ToolResult, tool


class EditFileArgs(BaseModel):
    path: str
    previous_content: str


class EditFileResult(BaseModel):
    lines_changed: int


@tool(name="edit_file", description="Edit a file", input_schema=EditFileArgs)
def edit_file(args: EditFileArgs) -> ToolResult[EditFileResult]:
    return ToolResult(
        value=EditFileResult(lines_changed=2),
        annotations={"example.file_before": args.previous_content},
    )

Annotations are stored on the corresponding task-result history entry and are not included in the tool result sent to the model.

Quick Start

from mistralai.vibe.sdk import Agent, AgentConfig
from mistralai.vibe.sdk.execution_record.patching.json_patch import apply_patches
from mistralai.vibe.sdk.execution_record.state import TaskState
from mistralai.vibe.sdk.providers.completion import MistralCompletionConfig
from mistralai.vibe.sdk.transports.events import TaskResultEvent, TaskStateUpdateEvent

agent = Agent(
    config=AgentConfig(
        completion=MistralCompletionConfig(model="mistral-large-latest"),
        system_prompt="You are a concise assistant.",
    )
)

async with agent.session() as session:
    state = TaskState(input="Hello")
    async for event in session.run("Hello"):
        if isinstance(event, TaskStateUpdateEvent):
            state = apply_patches(state, event.payload.patches)
        elif isinstance(event, TaskResultEvent):
            state = event.payload.result

    print(state.output)

Skills

Skills let an agent discover short task-specific summaries up front and load the full instructions only when needed through the builtin skill tool.

from mistralai.vibe.sdk import Agent, AgentConfig, SkillDefinition
from mistralai.vibe.sdk.providers.completion import MistralCompletionConfig

agent = Agent(
    config=AgentConfig(
        completion=MistralCompletionConfig(model="mistral-large-latest"),
        skills=[
            SkillDefinition(
                name="interview",
                description="Use when running a structured user interview.",
                content="Ask one question at a time and summarize decisions at the end.",
            )
        ],
    )
)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mistralai_vibe_sdk-0.9.0.tar.gz (147.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mistralai_vibe_sdk-0.9.0-py3-none-any.whl (210.1 kB view details)

Uploaded Python 3

File details

Details for the file mistralai_vibe_sdk-0.9.0.tar.gz.

File metadata

  • Download URL: mistralai_vibe_sdk-0.9.0.tar.gz
  • Upload date:
  • Size: 147.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mistralai_vibe_sdk-0.9.0.tar.gz
Algorithm Hash digest
SHA256 3d224adcdfb1207e9fba867c0a4d6688c84049226b0b19cc64d65690a0b4107c
MD5 4e3ab2a82eb3acdea882d484a0fa6e0d
BLAKE2b-256 8df0d6ab5a31ad8ca5e9975a307a57922949b63a22cd165d929a41c92c986fbe

See more details on using hashes here.

Provenance

The following attestation bundles were made for mistralai_vibe_sdk-0.9.0.tar.gz:

Publisher: release.yml on mistralai/vibe-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mistralai_vibe_sdk-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mistralai_vibe_sdk-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e4d41ab0b37a6e67ad34ffc9cf8ee16de1940092ec766fcc8d49d8c91ffea1e8
MD5 8ac9bbf4bd983c185b33df376e77b04a
BLAKE2b-256 2bfd2ef52cecafd569c95553e1266d0f2c7ce7afa9ad537f2899dc155fa70910

See more details on using hashes here.

Provenance

The following attestation bundles were made for mistralai_vibe_sdk-0.9.0-py3-none-any.whl:

Publisher: release.yml on mistralai/vibe-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.13.2

2 files

0.12.1

2 files

0.11.0

2 files

0.10.1

2 files

0.10.0

2 files

This release

0.9.0 This release

2 files

0.8.0

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page