Kimchi tmux control
Use the bundled controller script to start, inspect, drive, stop, and resume a real Kimchi session. It needs Node.js 22+, tmux, and an existing provider login. Invoke the script by its absolute path, resolved relative to this skill's location; skills may be loaded from a temporary copy.
The controller uses kimchi on PATH. To test a development checkout, build it with pnpm run build:binary and set KIMCHI_BINARY=/absolute/checkout/dist/bin/kimchi before start. The run saves that executable path for resume. No feature resource is required unless testing that feature.
node /absolute/skill/scripts/harness-live.mjs start <model> [provider]
node /absolute/skill/scripts/harness-live.mjs status <run-dir>
node /absolute/skill/scripts/harness-live.mjs type <run-dir> '/model'
node /absolute/skill/scripts/harness-live.mjs key <run-dir> Enter
node /absolute/skill/scripts/harness-live.mjs send <run-dir> '<prompt or /command>'
node /absolute/skill/scripts/harness-live.mjs send <run-dir> - < prompt.txt
node /absolute/skill/scripts/harness-live.mjs stop <run-dir>
node /absolute/skill/scripts/harness-live.mjs resume <run-dir>
Use the model the user requested; the provider defaults to kimchi-dev. Record the printed run directory. Each run gets a temporary Git workdir and starts in Plan mode, using existing settings/auth. Live model calls consume inference credits.
Inspect status until the editor is ready before injecting input, then between actions. start returning is not a readiness guarantee. Serialize controller calls for each run. status captures the original harness pane even if another pane/window becomes active, and prints the latest root session path. Its header describes the initial model; read the pane for the current model. Verify visible output and actual saved state rather than relying on an agent's claim.
type inserts one line without Enter and also fills menu search fields. send uses bracketed paste and Enter; use stdin (-) for multiline or large prompts. /model opens the model menu; C-p cycles models. Navigate with Up/Down, select with Enter, dismiss with Escape. Run --help for the supported keys, including Tab, Shift+Tab (BTab), Space, Backspace (BSpace), and PageUp/PageDown (PPage/NPage). C-c interrupts streaming but only denies the current request inside a permission dialog.
stop kills only the named tmux session and retains artifacts. resume chooses the latest root session, ignores evaluator children, and lets Kimchi restore its saved model. It requires a persisted session: an untouched editor may have nothing to resume. It does not restore an in-flight stream or open menu.
An agent driving the controller needs Default/Auto mode because Plan mode rejects launch; the child can remain in Plan mode. Approve scoped controller calls without disabling permission checks. A temporary workdir is not a security sandbox: keep prompts scoped there and forbid project/settings changes during read-only checks. For isolated checks, use a dedicated HOME and tmux server, keeping the same TMUX_TMPDIR for every call. Stop only sessions you created and remove temporary credentials after checking artifacts.