# Esker Docs

> Protocol, Python SDK, CLI, and hub reference for publishing and consuming normalized public datasets.

Esker is the default publish target for normalized public data. GitHub for code; HuggingFace for models; Esker for data.

These docs cover the protocol that defines what a dataset is, the Python SDK that authors and reads them, the CLI that drives the day-to-day, and the hub that hosts everything.

## Start here

- [Overview](https://esker.so/docs/overview.md) — what Esker is and the model it asks you to hold in your head.
- [Getting started](https://esker.so/docs/getting-started.md) — install, write a pipeline, publish, consume. End to end in five minutes.

## Read by role

**You're authoring a dataset.** Read [Pipelines](https://esker.so/docs/sdk/pipelines.md), then [Records](https://esker.so/docs/sdk/records.md), then [Publishing](https://esker.so/docs/sdk/publishing.md).

**You're consuming someone else's dataset.** Read [Bindings](https://esker.so/docs/sdk/bindings.md), then [Reading](https://esker.so/docs/sdk/reading.md).

**You want to understand the protocol.** Read [Naming](https://esker.so/docs/protocol/naming.md), [Manifests](https://esker.so/docs/protocol/manifests.md), [Compatibility](https://esker.so/docs/protocol/compatibility.md).

**You're at the CLI a lot.** [CLI overview](https://esker.so/docs/cli/overview.md) lists every command.

## Voice

Esker's CLI output, error messages, and these docs all share one voice. Two-space indent. Middle-dot separators. Comma-grouped numbers. Red for errors, dim for secondary info — no other color, no icons, no exclamation. The personality of the product is its correctness.
