# Overview

What Sufleur is and how the pieces fit together.

Sufleur is a registry and codegen toolchain for LLM prompts. You write prompt templates once in the web app, version and publish them like packages, then pull them into your code as type-safe functions you can call. The point is to stop pasting prompt strings into application code, and to give your team the same versioning discipline for prompts that you already have for libraries.

There are three surfaces, and you'll touch all of them eventually:

| Name | Description |
| --- | --- |
| `Web app (sufleur.com)` | Where prompts are authored, versioned, published, and shared. This is also where you create API keys and manage workspaces. |
| CLI (`sufleur`) | A Go binary that resolves your project's prompt dependencies, fetches them from the registry, and writes typed code to disk. |
| `Generated SDK` | The code the CLI emits — TypeScript or Python — that you import into your app. One typed function per prompt, with input validation and structured-output parsing. |

## How a prompt flows through Sufleur

1. **Author** a prompt in the web app. Templates use [Mustache](https://mustache.github.io/mustache.5.html) plus a few extensions for typing variables and declaring an output schema.
2. **Publish** a version (semver, e.g. `1.2.0`). Published versions are immutable.
3. **Add** the prompt to your project: `sufleur add @workspace/prompt`.
4. **Install** to resolve and cache: `sufleur install`.
5. **Generate** typed code: `sufleur generate`.
6. **Call** the prompt from your code with full IDE autocomplete and validation.

## Where to go next

- [Quickstart](/docs/quickstart) — five minutes from sign-up to a working call.
- [Prompts, versions & files](/docs/concepts) — the data model and the publish lifecycle.
- [Mustache extensions](/docs/mustache) — the `@type`, `@doc`, `@optional`, and `@outputSchema` additions.
- [CLI reference](/docs/cli) — every command, plus `sufleur.yaml` and the lockfile.
- SDKs: [Node](/docs/sdk/node) · [Python](/docs/sdk/python).

> [!TIP] Browse public prompts
>
> Want to see prompts other teams have shared before you build your own? The [Explore](/explore)
> page lists every public prompt on Sufleur — no account required.
