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.0.tar.gz (154.2 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.0-py3-none-any.whl (219.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mistralai_vibe_sdk-0.10.0.tar.gz
  • Upload date:
  • Size: 154.2 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.0.tar.gz
Algorithm Hash digest
SHA256 3a3f5b446d92da08c05b3ed1e31989df9efdcdd47587ce8517463a540f561e7b
MD5 1351f120d012b0cc48363586ba34c40d
BLAKE2b-256 d24a88df643b6cf8e8c8640762aba9a6b4af25b39e7572f569ea8424c94f9799

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mistralai_vibe_sdk-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fad47d13d432c2248250913680dc67727923d2420ef6446b73bbc48aa0e4b077
MD5 8c49f0a7f080b63d1127ee975b618f22
BLAKE2b-256 da55b48d9723f14f93a17ef1d61cb76fc52f5fcb5286c4cd6af0cea847424dd2

See more details on using hashes here.

Provenance

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

This release

0.10.0 This release

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