# Tea Language > Tea is a statically typed scripting language that compiles to native code. Read the quick reference before writing Tea. Look up unfamiliar APIs before using them. Use `tea docs language` and `tea docs ` for offline documentation bundled with the installed compiler. The website may describe a newer release. Format changes with `tea fmt`, then run the relevant programs and `tea test`. Documentation and example pages preserve their MDX source, including component tags and props. The quick reference and function reference use plain Markdown. ## Start here - [Quick reference](https://tea-lang.dev/docs/quick-reference.md): Essential syntax, types, imports, errors, testing, and CLI workflow. ## Documentation - [Documentation](https://tea-lang.dev/docs/index.md): Language and workflow guides based on the current compiler, examples, and CLI implementation. - [Installation](https://tea-lang.dev/docs/install.md): Install a prebuilt Tea release and verify the CLI. - [Getting Started](https://tea-lang.dev/docs/getting-started.md): Run your first script and compile a binary. - [CLI](https://tea-lang.dev/docs/cli.md): Run, build, format, and test Tea programs. - [Syntax](https://tea-lang.dev/docs/syntax.md): Bindings, blocks, strings, and core syntax. - [Types](https://tea-lang.dev/docs/types.md): Primitive values, lists, dicts, optionals, and inference. - [Functions](https://tea-lang.dev/docs/functions.md): Named functions, lambdas, locals, and return values. - [Structs](https://tea-lang.dev/docs/structs.md): Custom data types with named fields. - [Generics](https://tea-lang.dev/docs/generics.md): Type parameters for functions and structs. - [Pattern Matching](https://tea-lang.dev/docs/pattern-matching.md): Use `case` to branch on variants and values. - [Error Handling](https://tea-lang.dev/docs/error-handling.md): Typed errors, `throw`, and `catch` blocks. - [Modules](https://tea-lang.dev/docs/modules.md): Split code across files and import stdlib modules. - [Testing](https://tea-lang.dev/docs/testing.md): Write `test` blocks and use `std.assert`. - [Code Style](https://tea-lang.dev/docs/code-style.md): Formatting and style conventions for Tea and Rust. - [Contributing](https://tea-lang.dev/docs/contributing.md): Build, test, and contribute to the compiler and docs. ## Examples - [Examples](https://tea-lang.dev/examples/index.md): Runnable Tea programs that are checked into this repository right now. - [echo](https://tea-lang.dev/examples/echo.md): A small CLI that mirrors Unix `echo`. - [grep](https://tea-lang.dev/examples/grep.md): Regex search with stdlib args, fs, and regex. - [todo](https://tea-lang.dev/examples/todo.md): A persistent task list CLI built in Tea. - [team_scoreboard](https://tea-lang.dev/examples/team-scoreboard.md): Structs, errors, lambdas, and loops in one file. ## Function reference - [Reference](https://tea-lang.dev/reference/index.md): Built-ins and stdlib modules generated from the compiler and checked-in Tea stdlib sources. - [Built-ins](https://tea-lang.dev/reference/builtins.md): Tea exposes a small set of global `@` intrinsics for output, script control, introspection, and math. - [std.args](https://tea-lang.dev/reference/args.md): Command-line argument parsing utilities. - [std.assert](https://tea-lang.dev/reference/assert.md): Assertion helpers for tests and runtime checks. - [std.audio](https://tea-lang.dev/reference/audio.md): Blocking native synth helpers for generated audio. - [std.encoding](https://tea-lang.dev/reference/encoding.md): Binary-to-text encodings: base64, URL-safe base64, and hex. - [std.env](https://tea-lang.dev/reference/env.md): Environment variable access and working directory management. - [std.fs](https://tea-lang.dev/reference/fs.md): Filesystem operations for reading, writing, and managing files and directories. - [std.hash](https://tea-lang.dev/reference/hash.md): Digests and checksums: SHA-256/512, HMAC-SHA256, CRC32, and FNV-1a. - [std.http](https://tea-lang.dev/reference/http.md): Blocking HTTP client helpers for tool-style scripts. - [std.net](https://tea-lang.dev/reference/net.md): Blocking TCP and UDP socket primitives. - [std.json](https://tea-lang.dev/reference/json.md): JSON values with checked parsing and schema validation. - [std.math](https://tea-lang.dev/reference/math.md): Extended math: powers, logarithms, trigonometry, and float utilities. - [std.parse](https://tea-lang.dev/reference/parse.md): Parsing helpers for turning text into typed Tea values. - [std.path](https://tea-lang.dev/reference/path.md): Path manipulation utilities for working with file paths. - [std.process](https://tea-lang.dev/reference/process.md): Process execution for running subprocesses and capturing their output. - [std.random](https://tea-lang.dev/reference/random.md): Pseudo-random values from a global xoshiro256++ generator. - [std.raylib](https://tea-lang.dev/reference/raylib.md): Native Raylib bindings. Requires an installed Raylib library. C symbol names are preserved. See docs/guide/native-bindings.md for ABI rules. Struct calls currently require arm64 macOS. Checked against Raylib 6.0. - [std.regex](https://tea-lang.dev/reference/regex.md): Regular expression pattern matching and text manipulation. - [std.string](https://tea-lang.dev/reference/string.md): String manipulation utilities for common text operations. - [std.time](https://tea-lang.dev/reference/time.md): Time helpers for tool-style scripts. - [std.url](https://tea-lang.dev/reference/url.md): URL encoding and composition helpers for building HTTP requests.