Skip to content

Xil Gui

src.xil_pipeline.xil_gui

Gradio web dashboard for xil-pipeline.

A browser-based GUI that supplements the CLI for visual oversight, audio preview, and sharing episode review with collaborators.

Usage:

xil-gui                    # opens http://localhost:7860
xil-gui --port 8080        # custom port
xil-gui --share            # generate public URL for partner access (72h tunnel)

Install the optional [gui] extra first: pip install 'xil-pipeline[gui]'

RUNNABLE_STAGES module-attribute

RUNNABLE_STAGES = ['1) scan', '2) parse', '3) produce', '4) assemble', '5) daw', '6) master']

DRY_RUN_STAGES module-attribute

DRY_RUN_STAGES = {'produce', 'daw', 'master'}

get_parser

get_parser() -> argparse.ArgumentParser
Source code in src/xil_pipeline/xil_gui.py
def get_parser() -> argparse.ArgumentParser:
    parser = argparse.ArgumentParser(
        prog="xil-gui",
        description="Launch the xil-pipeline web dashboard (Gradio).",
        formatter_class=argparse.RawDescriptionHelpFormatter,
        epilog=(
            "Requires the [gui] extra:\n"
            "  pip install 'xil-pipeline[gui]'\n\n"
            "Partner sharing (temporary 72h public URL):\n"
            "  xil-gui --share\n"
        ),
    )
    parser.add_argument(
        "--port", type=int, default=7860,
        help="Port to listen on (default: 7860)",
    )
    parser.add_argument(
        "--host", default="127.0.0.1",
        help="Host address to bind (default: 127.0.0.1)",
    )
    parser.add_argument(
        "--share", action="store_true",
        help="Generate a public ngrok URL for partner access (open, no auth)",
    )
    return parser

main

main() -> None
Source code in src/xil_pipeline/xil_gui.py
def main() -> None:
    args = get_parser().parse_args()
    demo = _build_app()
    demo.launch(
        server_name=args.host,
        server_port=args.port,
        share=args.share,
        allowed_paths=[str(get_workspace_root())],
    )