curiosity

Setup guide / Mistral Vibe

Set up curio for Mistral Vibe.

Mistral Vibe reads skills from .agents/skills in a folder you have trusted. Install curio's skill there and Vibe works on your workspace through curio, on Mistral's models or on a local Devstral model.

Mistral Vibe · the session the steps below set up, played on this page

Set it up

Setup / 01

Four steps, once per project.

The agent gets a curio session and nothing more. Its edits wait in Sudo's sandbox, built against the workspace, until a person approves the commit.

  1. 01

    Install curio

    On the machine the agent works on. Skip this if curio is installed already.

    Install script

    The self-contained build for your system, checked against the release and put on your PATH. No .NET needed. Run it again to update.

    Terminal
    $ curl -fsSL https://curiosity.sh/install.sh | bash
    $ curio tui
    PS> irm https://curiosity.sh/install.ps1 | iex
    PS> curio tui

    Installs to ~/.curiosity/bin · read the script

    .NET tool

    With the .NET SDK installed, curio is a global tool. dotnet tool update keeps it current.

    Terminal
    $ dotnet tool install --global Curiosity.Shell
    $ curio tui

    Or take the single file for your system from the releases

  2. 02

    Sign in to your Studio

    The browser signs you in with any login the workspace supports, SSO included. It needs a system administrator account. Leave the approve checkbox on the sign in page unticked, and every commit the agent stages waits for a person.

    Terminal
    $ curio login --server https://my-workspace.curiosity.ai
    $ curio whoami
  3. 03

    Install Mistral Vibe

    Mistral's installer sets up uv if it is missing and installs Vibe. Run vibe in your project; the first run walks you through the setup, or reads MISTRAL_API_KEY.

    macOS · Linux
    $ curl -LsSf https://mistral.ai/vibe/install.sh | bash
    $ cd my-project
    $ vibe

    Or with uv: uv tool install mistral-vibe. It needs Python 3.12 or later.

    Installing Vibe, from Mistral

  4. 04

    Give it curio's skill

    curio skills install ./.agents/skills writes .agents/skills/curio/SKILL.md. Vibe reads it once you trust the folder.

    Terminal
    $ curio skills install ./.agents/skills

    Run it again to refresh the index of Sudo's skills. A copy you edited is kept unless you pass --force.

Use it / 02

Ask in your words. Approve in your browser.

Start vibe in the project, trust the folder when it asks, and ask for the change.

You ask

Add a code endpoint to the workspace that lists the open supplier notices for a part. Build it and stage the commit.

The agent reads the skill, then works through curio, one command at a time. You see each command; the last one waits for you.

What Mistral Vibe runs
$ curio skills search "code endpoint"
$ curio skills show add-code-endpoint
$ curio cat /workspace/config/schemas/nodes/Part.cs
$ curio put open-notices.cs /workspace/code/endpoints/open-notices.cs
$ curio run -- build
$ curio run -- commit -m "Open supplier notices for a part"
$ curio commit approve --no-wait   # a person reviews it
$ curio commit wait --timeout 120   # until they answer

01

Keep approval with a person

Vibe runs commands as your user account, outside a sandbox. Sign curio in without the approve right, the default, so a commit waits for someone on Sudo's review screen.

02

Offline is the model, not curio

On a local Devstral model, nothing goes to Mistral. curio still needs to reach your workspace.

03

Exit codes mean something

curio run passes the sandbox command's exit code through. 77, 78, 75 and 64 mean not signed in, not allowed, conflict and usage, so the agent can tell a failed build from a missing sign in. 79 is a commit waiting for a person, and 124 is curio giving up waiting.

04

JSON, and no waiting forever

The skill has the agent pass --json for one line of JSON, --yes where a command asks, and --timeout on every call. A long build runs with curio run --detach and is picked up with curio run wait.

05

Never the interface

The skill tells the agent to never run curio tui. It is the full screen interface for people, and it would hang the agent's terminal. Plain curio only prints the help.

06

Re-read before overwriting

Sudo or an admin may edit the same session. curio get prints the file's hash, and curio put --expected-hash <hash> refuses the write if the file changed since.

07

Approval stays with a person

Signed in without the approve right, the default, curio commit approve --no-wait opens Sudo's review screen in the browser and exits 79 at once. curio commit wait then hears the answer, whatever the agent does.