kovidgoyal/kitty · error · SystemExit

You are missing the {args[0]} program needed to generate the

Error message

You are missing the {args[0]} program needed to generate the kitty logo

What it means

Raised by run() in kitty's logo asset generator when subprocess.check_call fails with OSError, meaning the external program needed to render the kitty logo (e.g. rsvg-convert, inkscape, or similar) is not installed or not found on PATH. It exits with a SystemExit telling you which program is missing. This is a build-time tool, not runtime kitty code.

Source

Thrown at logo/make.py:52

                }
            ],
            'shadow': {'kind': 'neutral', 'opacity': 0.5},
            'translucency': {'enabled': True, 'value': 0.5},
        }
    ],
    'supported-platforms': {'circles': ['watchOS'], 'squares': 'shared'},
}


def abspath(x: str) -> str:
    return os.path.abspath(os.path.join(base, x))


def run(*args: str) -> None:
    try:
        subprocess.check_call(args)
    except OSError:
        raise SystemExit(f'You are missing the {args[0]} program needed to generate the kitty logo')


def get_svg_viewbox(file_path: str) -> tuple[float, ...]:
    import xml.etree.ElementTree as ET

    tree = ET.parse(file_path)
    root = tree.getroot()
    viewbox = root.get('viewBox')
    if viewbox:
        return tuple(float(x) for x in viewbox.split())
    width = root.get('width')
    height = root.get('height')
    return (0.0, 0.0, float(width or 0), float(height or 0))


def create_icon(name: str, svg_path: str, output_path: str) -> str:
    view_box = get_svg_viewbox(svg_path)
    sz = view_box[-1]

View on GitHub (pinned to 6d5d0c4406)

Solutions

  1. Install the missing program named in the message (e.g. `sudo apt install librsvg2-bin` for rsvg-convert, or inkscape)
  2. Verify with `which <program>` that it is on PATH in the same environment used to run make.py
  3. If you don't need to regenerate assets, use the pre-generated logo files already committed to the repo instead of running the script

Example fix

# before
python logo/make.py   # SystemExit: You are missing the rsvg-convert program...

# after
sudo apt install librsvg2-bin
python logo/make.py
Defensive patterns

Strategy: validation

Validate before calling

import shutil

def can_build_logo(prog: str) -> bool:
    return shutil.which(prog) is not None

Prevention

When it happens

Trigger: Running logo/make.py (via create_assets, render, or main) on a machine lacking the required SVG-to-PNG converter; the first argument to run() names the binary that wasn't found.

Common situations: Fresh dev machines or CI containers without the SVG toolchain installed; PATH not including the tool's install location; running the asset pipeline on Windows/WSL where the tool name differs.

Related errors


AI-assisted analysis of kovidgoyal/kitty@6d5d0c4406 (2026-08-27). Data as JSON: /api/errors/8a527968cee5109e. Report an issue: GitHub.