Introduction
func is a decorator-based CLI framework for TypeScript. Define
commands and options as classes, register them in one container, and let
func resolve the command line input for you.
The project is designed around small production output, direct syntax, and a
quiet development workflow. funcgo handles local execution,
project setup checks, and bundling, so your code can stay focused on command
behavior.
You can create a project in seconds with the Quick-start Guide.
Features
- Tiny production bundles by default, making your CLI easy to install, quick to ship, and lightweight to distribute. See a reference output here
- Class decorators for commands, global options, and command options
- Typed providers for parsed inputs, option values, and registered metadata
- Very few runtime dependencies, keeping installation and startup lightweight
- Project template support with built-in development and build commands
Where It Fits
func is a good fit when you want a small TypeScript command line
tool with clear command boundaries, automatic option parsing, and simple
packaging. It is intentionally compact rather than a full terminal UI, prompt,
or task-runner framework.
Start with Concepts if you want to understand how command resolution works, or jump straight into Commands to write handlers.