Skip to main content
Build CLIs the way you wish every CLI was built: clean command routes, strong typing, an interactive shell out of the box, and quality-of-life features that make your tool feel like a real product.
Run your tool with no args to drop into Runegraft’s interactive shell. You still get the normal “one-shot CLI” behavior when you pass a command.

Quickstart

Install, create your first CLI, and ship a polished entrypoint.

Command Routes

Flask-like routes for CLIs: install <url:url>, types, and defaults.

Interactive Shell

Completion, history, aliases, source scripts, and more.

Options & Flags

Typed options with nice help text, short/long forms, and defaults.

Type Converters

Built-ins like int, bool, url, json, uuid, and custom converters.

Recipes

Real-world patterns: installers, git-like subcommands, and task runners.

Install in one command

pip install runegraft
Prefer editable installs while developing your CLI? Clone the repo and run pip install -e ..

Sneak peek

$ runegraft install https://example.com/pkg.zip --optional-flag 3
Installing from https://example.com/pkg.zip (optional_flag=3)

Where to start

1

Quickstart

Install Runegraft and ship your first command in minutes in the Quickstart.
2

Command routes

See how Flask-like routes power typed arguments in Command Routes.
3

Live shell

Explore completion, history, and scripts in Interactive Shell.
4

Polish the UX

Add flags, converters, and real-world patterns in Options & Flags and Type Converters.
5

Copy-paste patterns

Grab ready-to-use snippets in Recipes.