> ## Documentation Index
> Fetch the complete documentation index at: https://runegraft.codesft.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Install Runegraft and build your first command in minutes.

## Install Runegraft

Runegraft ships as a normal Python package. Pick the install path that fits your workflow.

<CodeGroup>
  ```bash pip theme={null}
  pip install runegraft
  ```

  ```bash from-source theme={null}
  git clone https://github.com/YOUR_ORG/runegraft
  cd runegraft
  pip install -e .
  ```
</CodeGroup>

<Tip>Run <code>python -m runegraft</code> with no args to drop into the interactive shell immediately.</Tip>

## Build a CLI in 60 seconds

Drop this into `cli.py` (or any module you prefer) to see the basics:

```python theme={null}
from runegraft import CLI, opt

cli = CLI("runegraft")

@cli.root
def _root():
    # Running with no args opens the shell.
    return cli.shell()

@cli.command("install <url:url>")
def install(
    url: str,
    optional_flag: int = opt("--optional-flag", "-f", default=0, help="Example integer option"),
):
    print(f"Installing from {url} (optional_flag={optional_flag})")

@cli.command("echo <text:str>")
def echo(text: str, upper: bool = opt("--upper", "-u", default=False, help="Uppercase the text")):
    print(text.upper() if upper else text)

def main():
    raise SystemExit(cli.run())

if __name__ == "__main__":
    main()
```

Run it however you like:

<CodeGroup>
  ```bash interactive-shell theme={null}
  python -m runegraft
  ```

  ```bash one-shot theme={null}
  python -m runegraft install https://example.com/pkg.zip -f 3
  python -m runegraft echo "hi there" --upper
  ```
</CodeGroup>

## What you just got

* Flask-like command routes: `install <url:url>` and typed args.
* A polished shell: completion, history, aliases, `source` scripts, and system command passthrough.
* Friendly errors and help text generated from your function signatures.

## Next steps

* Learn how route patterns and types work in [Command Routes](/concepts/command-routes).
* Explore completions, history, and scripts in [Interactive Shell](/concepts/shell).
* Add polished flags and defaults in [Options & Flags](/concepts/options).
* See the built-in converters and how to add your own in [Type Converters](/concepts/types).
