Launching Applications

You can launch applications from your CLI program with typer.launch().

It will launch the appropriate application depending on the URL or file type you pass it:

import typer


def main():
    typer.echo("Opening Typer's docs")
    typer.launch("https://typer.tiangolo.com")


if __name__ == "__main__":
    typer.run(main)

Check it:

$ python main.py

Opening Typer docs

// Opens browser with Typer's docs

Locating a file

You can also make the operating system open the file browser indicating where a file is located with locate=True:

from pathlib import Path

import typer

APP_NAME = "my-super-cli-app"


def main():
    app_dir = typer.get_app_dir(APP_NAME)
    app_dir_path = Path(app_dir)
    app_dir_path.mkdir(parents=True, exist_ok=True)
    config_path: Path = Path(app_dir) / "config.json"
    if not config_path.is_file():
        config_path.write_text('{"version": "1.0.0"}')
    config_file_str = str(config_path)
    typer.echo("Opening config directory")
    typer.launch(config_file_str, locate=True)


if __name__ == "__main__":
    typer.run(main)

Tip

The rest of the code in this example is just making sure the app directory exists and creating the config file.

But the most important part is the typer.launch(config_file_str, locate=True) with the argument locate=True.

Check it:

$ python main.py

Opening config directory

// Opens a file browser indicating where the config file is located