# Rstack CLI > Rstack CLI brings the Rstack toolchain together with one CLI, one configuration, and one consistent workflow. ## Guide - [Quick start](/guide/quick-start.md): Install Rstack CLI, add project scripts, and configure the Rstack JavaScript toolchain. - [Configuration](/guide/configuration.md): Rstack centralizes the configuration for your project's tools in a single file. Define only the configurations your project needs with the define.*() APIs. - [AI](/guide/ai.md): Use Rstack CLI with coding agents through Agent Skills, llms.txt, Markdown docs, and AGENTS.md. - [API reference](/guide/api-reference.md): Rstack provides a unified configuration API and re-exports the public APIs of Rsbuild, Rslib, Rstest, and Rslint through dedicated subpaths. Prefer these subpaths to direct imports from each tool's core package so that dependency entry points and tool versions remain aligned with Rstack. - [Migrate to Rstack CLI](/guide/migration.md): Migrate an existing project to Rstack CLI with the recommended migration Skill. - [Testing](/guide/testing.md): Rstack uses Rstest to run tests. For command-line options and subcommands, see rs test. - [Formatting](/guide/formatting.md): Rstack CLI includes a formatter built on Prettier. Compared with running Prettier directly, rs fmt offers better performance in two ways: Parallel formatting: Files are formatted concurrently in a worker pool.Yuku parser: The high-performance Yuku parser is used by default for JavaScript, JSX, and TypeScript files.Persistent cache: Content-based results let later runs skip formatting unchanged files. rs fmt supports Prettier options and plugins and adds built-in capabilities such as sorting package.json fields. - [Monorepo](/guide/monorepo.md): This guide explains how to use Rstack CLI in a monorepo, including how it works with task orchestrators such as Turborepo and Nx. It covers managing Rstack dependencies, configuring lint, formatting, and staged-file tasks at the root, and defining separate configurations for web applications and libraries. - [dev](/guide/cli/dev.md): The rs dev command starts the Rsbuild development server for an application. It compiles the source code in development mode, watches for changes, and applies hot module replacement (HMR) or reloads the page as needed. - [build](/guide/cli/build.md): The rs build command uses Rsbuild to build an application for production. - [preview](/guide/cli/preview.md): The rs preview command uses Rsbuild to preview an application's production build locally. - [lib](/guide/cli/lib.md): The rs lib command uses Rslib to build library outputs. - [doc](/guide/cli/doc.md): The rs doc command uses Rspress to develop, build, and preview a documentation site. Install @rspress/core before using the command: - [test](/guide/cli/test.md): The rs test command uses Rstest to run tests. For more guidance on testing, see Testing. - [lint](/guide/cli/lint.md): The rs lint command uses Rslint to lint source code. - [fmt](/guide/cli/fmt.md): The rs fmt command formats files or checks whether they are formatted. For detailed usage, see Formatting. - [setup](/guide/cli/setup.md): The rs setup command installs repository-level Git hooks and runs them in the project that invokes the command. - [staged](/guide/cli/staged.md): The rs staged command uses lint-staged to run tasks against files staged in Git. rs staged can run linters, formatters, or other checks on staged files before committing code. A common pattern is to pair rs staged with rs setup and run staged-file tasks from a pre-commit hook.