klim graph
klim graph draws every tool klim has detected on PATH as a node in
a force-directed graph. Edges connect tools that share a property —
category, tag, or package manager — so you can see clusters in your
toolchain at a glance.
klim graph [flags]By default the command prints a static terminal snapshot to stdout,
ready to paste into a README or pipe to a file. Use --tui for an
animated, fullscreen viewer.
| Flag | Description |
|---|---|
--by | Edge meaning: category (default), tag, or pm. |
--tui | Open the animated 10fps fullscreen viewer. Sizes itself from the terminal — --width/--height are rejected with this flag. |
--iters | Max layout iterations for the static snapshot (default 200, cap 5000). |
--width | Render width (0 = autodetect, cap 2000). Static snapshot only. |
--height | Render height (0 = autodetect, cap 2000). Static snapshot only. |
—by modes
Section titled “—by modes”| Mode | Edges connect tools that… |
|---|---|
category (default) | …share a marketplace category (e.g. Cloud, Editor). |
tag | …share at least one marketplace tag. |
pm | …were installed by the same package manager (winget / scoop / npm / etc.). The manual bucket (binaries klim couldn’t attribute to any PM) is intentionally skipped to avoid a giant misleading clique. |
Examples
Section titled “Examples”# Static snapshot, default --by categoryklim graph
# Animated fullscreenklim graph --tui
# Group by tag insteadklim graph --by tag
# Group by package managerklim graph --by pm
# Fixed-size snapshot for a READMEklim graph --width 80 --height 24 > toolchain.txtOutput
Section titled “Output”Each ● is a tool node, coloured by category, with the tool name
truncated to 10 characters as a label. Edges are drawn as · glyphs
using Bresenham’s line algorithm:
●azd●code●pwsh●●tokei · ● · ···· ····●python···········●dotnet●lazygit·········●When stdout isn’t a TTY (e.g. piped to a file), the renderer automatically suppresses ANSI escapes so the output is safe to paste into a Markdown code fence.
Caps and safety
Section titled “Caps and safety”--width/--height≤ 2000 per axis.width × height≤ 250 000 cells — the area cap scales both axes down proportionally if you ask for more, keeping aspect ratio intact.--iters≤ 5000 — the static layout simulation is bounded so a typo can’t pin a CPU.- Edges per shared bucket capped at 32 — a tag like
clishared by 200 tools won’t fan out into ~20 000 edges. Larger buckets use a star pattern rooted at the first member. - Labels are sanitised — control characters (ANSI escapes, newlines) are stripped before drawing so a maliciously-named catalog entry can’t inject sequences into the rendered grid.
See also
Section titled “See also”klim list— text-form view of your toolchain.klim dashboard— TUI breakdown by category / PM / tag.