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.10.1.tar.gz (154.8 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.10.1-py3-none-any.whl (219.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mistralai_vibe_sdk-0.10.1.tar.gz
  • Upload date:
  • Size: 154.8 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.10.1.tar.gz
Algorithm Hash digest
SHA256 64953da59d4f98e8644708ee0a8997bf7575debda2fe8f40f9d38e47215bf69a
MD5 942c0a5d95d7dcb5c6b0dc505a4bec63
BLAKE2b-256 e5ffae86f355c3b094c2ce3253e5d1dc3e0b521085aa815d0e33d6f00b37ae1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mistralai_vibe_sdk-0.10.1.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.10.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mistralai_vibe_sdk-0.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 751c09b2774fd276cd0b79c2d83852b96526600a4a37349a05c99cefdf44dd7d
MD5 14f29cc5576476748d1df21f98b5d200
BLAKE2b-256 bcc14762e93ee46f9daf855def9fb8fd5d45602e8cef5b94dda4e5393265f2b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for mistralai_vibe_sdk-0.10.1-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

This release

0.10.1 This release

2 files

0.10.0

2 files

0.9.0

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