Introduction
func is a small decorator-based CLI framework for TypeScript. It is
made for developers who want to ship focused command-line tools without giving up
the structure, type safety, and maintainability they expect from a real
application.
Use it when your CLI is more than a one-off script but does not need the weight of
a large platform. func keeps command definitions readable, option parsing
predictable, validation close to the fields it protects, and error handling easy to
reason about.
The result is a toolchain that feels light at the start and dependable as the project grows: fast local TypeScript execution, tiny production bundles, reusable services, and clear boundaries between commands. You can create a project in seconds with the Quick-start Guide.
Features
- Tiny production bundles by default. See a reference output here
- Write CLIs like real TypeScript applications, with decorators, classes, and dependency-friendly modules instead of scattered command wiring
-
Move faster from idea to shipped command:
funcgohandles project setup, local TypeScript execution, and production bundling -
Keep command code focused on the work itself while
functakes care of names, paths, flags, values, validation, and missing-command behavior - Grow from a small helper into a multi-command tool without rewriting your structure, thanks to modules, reusable services, and typed context injection
- Give users clearer failures by keeping validation and error handling close to the command logic that owns them