# zodline > A type-safe CLI parser built with Zod — declare commands, options and args as schemas. ## Blog - [Blog](https://zodline.dev/blog): Notes on building type-safe command-line interfaces with Zod and TypeScript. - [Commander and Yargs Alternatives for TypeScript CLIs](https://zodline.dev/blog/commander-yargs-alternatives-typescript): An honest comparison of builder-based CLI parsers and the schema-first approach, and when each one is the right choice. - [Type-Safe CLI Parsing with Zod](https://zodline.dev/blog/type-safe-cli-parsing-with-zod): How to describe a command-line interface as a Zod schema so parsing, validation, help output, and TypeScript types all come from one source. - [Why Your CLI Parser Should Not Run Your Commands](https://zodline.dev/blog/separate-cli-parsing-from-execution): Parsing argv and executing a command are two jobs. Splitting them makes commands testable, middleware unnecessary, and error handling ordinary code. ## Changelog - [v0.3.2](https://zodline.dev/changelog/v0-3-2) - [v0.3.1](https://zodline.dev/changelog/v0-3-1) - [v0.2.0](https://zodline.dev/changelog/v0-2-0) - [v0.1.7](https://zodline.dev/changelog/v0-1-7) - [v0.1.6](https://zodline.dev/changelog/v0-1-6) - [v0.1.5](https://zodline.dev/changelog/v0-1-5) - [v0.1.4](https://zodline.dev/changelog/v0-1-4) - [v0.1.3](https://zodline.dev/changelog/v0-1-3) - [v0.1.2](https://zodline.dev/changelog/v0-1-2) - [v0.1.1](https://zodline.dev/changelog/v0-1-1) ## Docs - [Introduction](https://zodline.dev/docs): A type-safe CLI parser built on Zod. Declare commands, options and positional args as schemas and get a fully-typed, validated result. - [Installation](https://zodline.dev/docs/installation): Install zodline and its Zod peer dependency, and check the runtime requirements. - [Quickstart](https://zodline.dev/docs/quickstart): Build a CLI with two commands, typed options and positional arguments, then run it. ### Guides - [Commands](https://zodline.dev/docs/guides/commands): Define commands with defineCommand, register them in defineConfig, and set a default command. - [Options](https://zodline.dev/docs/guides/options): Declare flags with defineOptions — aliases, kebab-case keys, arrays, defaults, and coercion. - [Arguments](https://zodline.dev/docs/guides/arguments): Validate positional arguments with a Zod schema — tuples for fixed shapes, arrays for variadic input. - [Parsing vs. execution](https://zodline.dev/docs/guides/parsing-vs-execution): processConfig validates argv and returns a result. Running the command is a separate step you own. - [Help and version](https://zodline.dev/docs/guides/help-and-version): The generated help screens, where their text comes from, and how --help and --version behave. - [Error handling](https://zodline.dev/docs/guides/error-handling): Which failures throw ZodlineError, which throw ZodError, and how to turn them into good CLI output. ### Reference - [API](https://zodline.dev/docs/reference/api): Every export of zodline — defineOptions, defineCommand, defineConfig, processConfig, ZodlineError and the types. - [Flag syntax](https://zodline.dev/docs/reference/flag-syntax): Every form the argv parser accepts, with the exact value each one produces. ## RSS Feeds - [zodline — Blog](https://zodline.dev/blog/rss.xml) - [zodline — Changelog](https://zodline.dev/changelog/rss.xml)