skillfed

targ

Build a Python CLI for your app, just using type hints and docstrings.

targ v0.7.0 690.2K downloads/30d#5,330 on PyPI22
Permissive license MIT Active released

What it is and what it does

targ is a CLI framework that builds command-line interfaces directly from Python function signatures and docstrings. You register type-annotated functions with a CLI object, and targ automatically generates argument parsing, help text, and command dispatch—no special syntax or configuration files needed. The package extracts parameter documentation from docstrings and uses type hints to determine argument types and validation.

It's designed for developers who want to expose Python functions as CLI tools without learning argparse or click's decorator syntax. The framework depends on colorama for terminal output formatting and docstring-parser to extract parameter descriptions from docstrings. It supports Python 3.10 through 3.14 and has been actively maintained since its 2020 release.

Use it for:

  • Quickly expose internal Python functions as command-line tools for scripting or automation without writing CLI boilerplate.
  • Build simple admin or utility CLIs where function signatures naturally map to command arguments.
  • Generate self-documenting CLI tools where help text is automatically derived from existing docstrings.
  • Prototype CLI applications during development when you want minimal overhead before committing to a larger framework.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Generates a command-line interface from type-annotated Python functions and their docstrings, with no additional configuration required.

Yes. targ is a lightweight, actively maintained tool that solves a real problem—turning functions into CLIs with zero special syntax. Low install friction, permissive license, no known vulnerabilities, and recent activity make it a safe choice for projects that need simple CLI generation. Best suited for straightforward use cases; verify whether it handles your specific type complexity before adopting for complex argument scenarios.

Install

targ on PyPI

pip

pip install targ

uv

uv add targ

poetry

poetry add targ

Installing targ

Before you install

Low friction: pure Python wheel with only two lightweight dependencies (colorama for terminal colors and docstring-parser for documentation extraction). Actively maintained with a recent release 26 days ago.

License in practice

MIT license is permissive; you can use, modify, and distribute this package freely with minimal restrictions.

Quickstart

pip install targ

from targ import CLI

def add(a: int, b: int):
    """Add two numbers."""
    print(a + b)

if __name__ == "__main__":
    cli = CLI()
    cli.register(add)
    cli.run()

Requires Python 3.10 or later.

Verify before relying

  • Whether the package handles complex type hints (unions, generics, optional types) beyond basic int/str/bool.
  • Support for subcommands, command groups, or nested CLI hierarchies.
  • Whether environment variables or configuration files can be integrated with the CLI.
  • Performance characteristics when registering many functions or handling large argument sets.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.10.0)
Install friction low — pure-Python wheel
Runtime dependencies 2 — colorama, docstring-parser
Maintenance actively maintained — 26 days since the last release
Last repo commit
First released
Downloads 690,227/month — #5,330 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: targ-0.7.0-py3-none-any.whl

License :: OSI Approved :: MIT LicenseProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPython

Tags

cli from type hintsautomatic command line interfacedocstring to clipython function to clitype annotation cli buildercli generator pythonargparse alternative
cli-generationtype-hintsdocstring-driven

More Build Tools packages