FUNC - Tiny typed CLI framework

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: funcgo handles project setup, local TypeScript execution, and production bundling
  • Keep command code focused on the work itself while func takes 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