Docs

Configuration

You never need a config file to start — the setup wizard writes one for you. Everything below lives in keepitmovin.config.json in your project directory and is optional.

Your tools and fallback order

The config lists your enabled tools and the order keepitmovin falls back through them. Edit both interactively with kim providers rather than by hand.

Usage probes

Keyword detection reacts after a tool prints a limit banner. When a tool records its own remaining usage on disk, keepitmovin can read it and switch before the wall — a usage probe. Today only Codex exposes this; probes are read-only and fail safe. Configure under harness.usageProbe:

FieldDefaultMeaning
enabledtrueMaster switch for all usage probes.
thresholdPercent95Switch when a tool's highest usage window reaches this percent.
pollIntervalMs30000How often to re-check while a tool runs.

Warning-only watchdog

Loop, abnormal Codex burn, and streaming-stall signals produce local warnings only. They never stop or switch a tool. Configure under harness.watchdog:

FieldDefaultMeaning
enabledtrueEnable conservative loop, burn, and stall warnings.
action"warn"Warning-only; automatic switching is intentionally unavailable.

A single tool can override the threshold with its own usageProbe.thresholdPercent. Run kim doctor to see current usage for probed tools.

Handoff refresh

keepitmovin keeps the mechanical sections of the handoff file fresh on a timer and nudges the active tool if the narrative goes stale. Configure under harness.handoffRefresh:

FieldDefaultMeaning
enabledtrueMaster switch for the refresh/nudge system.
intervalMs60000How often the mechanical sections are refreshed.
nudge.enabledtrueWhether to type the stale-handoff reminder into the tool.
nudge.staleAfterMs300000How long the narrative can go unchanged before it's stale.
nudge.idleForMs10000The tool must be idle this long before a nudge is sent.
nudge.minTranscriptGrowthChars2000Output required before a nudge is warranted.

Task routing

Opt-in during setup. When enabled, keepitmovin classifies your task locally and picks a model and reasoning effort within your fallback order. It never changes your order and makes no network calls for routing.

kim "Investigate the intermittent auth failure"
kim --tier deep "Implement the approved plan"
kim --model gpt-5.6-sol --effort high "Review the payment migration"
kim --no-route "Use the tool defaults for this task"

Tiers are light, standard, deep, and max, mapped to appropriate models per tool. Automatic routing never selects ultra effort — pass --effort ultra explicitly when the model supports it.

Tool updates

On start, keepitmovin checks your selected tools and asks before running a tool's own verified updater. It never guesses an installer. Configure under updates:

FieldDefaultMeaning
checkOnStarttrueCheck your tools for updates each time keepitmovin starts.
mode"prompt""always" runs updates without asking; "off" skips the check.
includeDisabledProvidersfalseAlso check tools outside your fallback order.