Skip to content

REFERENCE · 05

The dispatcher and its verbs.

tebako-shim is one binary with two roles. Invoked under a payload's own name, it dispatches: argv0 selects the payload, the version, and the runtime for the invocation. Invoked as itself, it manages: list, enable, disable, which, doctor, and the shell integration verbs.

Dispatch: argv0.

A shim is a link to the dispatcher binary named after a payload’s command. Each invocation resolves three things: which payload (argv0), which version (the version chain: a per-tool environment pin, then the nearest project file walking up from the working directory, then config defaults, then the registry default), and which runtime (the entrypoint’s requirement — newest compatible cached, else download, verify, and cache). The walkthrough is the Shims & versions guide.

Manage: list, enable, disable, which.

tebako-shim list
tebako-shim enable <name>[@<version>]
tebako-shim disable <name>[@<version>]
tebako-shim which <tool>

list shows the registered shims; enable and disable turn a payload’s dispatch on and off without removing it; which resolves a tool name the way a dispatch would and prints the plan — the entrypoint, the payload, and the runtime it would use.

Diagnose: doctor.

tebako-shim doctor

The verb checks the dispatch machinery — the store, the registries, the shims — and prints each problem with its remedy. The guide pairs it with the debug surface: Debug & logging.

Shell integration: install-shell, uninstall-shell.

tebako-shim install-shell
tebako-shim uninstall-shell

The verbs add or remove the shim directory from the shell’s PATH — the step tebako install performs when it registers a payload’s commands.