> ## Documentation Index
> Fetch the complete documentation index at: https://configurate.crystaworld.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# tauri-plugin-configurate: Type-Safe Config for Tauri v2

> Type-safe application configuration management for Tauri v2 with multi-format storage, OS keyring support, and full TypeScript inference.

tauri-plugin-configurate gives your Tauri v2 desktop application a robust, type-safe configuration system. Define a schema once, and the plugin handles reading and writing JSON, YAML, TOML, or encrypted binary files — with sensitive fields transparently stored in the OS keyring on Windows, macOS, and Linux.

<CardGroup cols={2}>
  <Card title="Installation" icon="download" href="/installation">
    Add the Rust crate and npm package to your Tauri project in minutes
  </Card>

  <Card title="Quick Start" icon="bolt" href="/quickstart">
    Define a schema, create your first config, and load it back in under 5 minutes
  </Card>

  <Card title="Core Concepts" icon="book" href="/concepts/schema">
    Understand schemas, providers, keyring fields, and permissions
  </Card>

  <Card title="API Reference" icon="code" href="/api/configurate-class">
    Full TypeScript and Rust API documentation
  </Card>
</CardGroup>

## What You Can Do

<CardGroup cols={3}>
  <Card title="Multi-Format Storage" icon="file">
    Store config as JSON, YAML, TOML, or encrypted binary — swap formats without changing your application logic
  </Card>

  <Card title="OS Keyring Secrets" icon="lock">
    Mark any field as `keyring()` to store secrets in the platform keychain instead of plain files
  </Card>

  <Card title="Full Type Safety" icon="shield-check">
    Schema-driven TypeScript types so your IDE catches mismatches before runtime
  </Card>

  <Card title="Batch Operations" icon="layer-group">
    Load or save multiple configs in a single IPC round-trip with `Configurate.loadAll()`
  </Card>

  <Card title="Schema Migrations" icon="arrows-rotate">
    Version your schema and define migration steps — upgrades run automatically on load
  </Card>

  <Card title="File Watching" icon="eye">
    React to config changes made by external processes with `watchExternal()`
  </Card>
</CardGroup>

## Get Started

<Steps>
  <Step title="Install the packages">
    Add `tauri-plugin-configurate` to your `Cargo.toml` and `tauri-plugin-configurate-api` to your frontend.
  </Step>

  <Step title="Register the plugin">
    Call `.plugin(tauri_plugin_configurate::init())` in your Tauri builder and grant `configurate:default` permissions.
  </Step>

  <Step title="Define your schema">
    Use `defineConfig()` to describe the shape and types of your configuration, including any keyring-protected fields.
  </Step>

  <Step title="Create and load config">
    Instantiate `Configurate`, call `.create()` to write your first config, and `.load()` to read it back with full types.
  </Step>
</Steps>

<Note>
  tauri-plugin-configurate supports **desktop platforms only** (Windows, macOS, Linux). Android and iOS are not supported.
</Note>
