Kin / Use Kin

Slash commands

Type / to run a built-in client action or invoke a user-facing skill. Built-ins stay local; skills add their shared instruction block as a turn.

Read as Markdown

Type / in the composer to run a built-in client action or invoke a user-facing skill. Built-ins stay local. A skill gesture such as /review-pr main adds that skill’s shared instruction block as a user turn.

Using the menu

Type / in the composer and a filtered menu appears above the input. Keep typing to narrow it — the menu shows every command whose name starts with what you have typed. The menu stays open only while the text is a bare /token (no space, no newline); as soon as you type a space the menu hides so you can add arguments.

Key Action
++up++ / ++down++ Move the highlight
++tab++ Fill the highlighted command into the composer (with a trailing space) so you can add arguments
++enter++ Run the highlighted command
click Run the clicked command

The composer keeps focus the whole time, so you filter by typing and the menu tracks your input. To run a command directly, type its full name and press ++enter++ — the menu does not have to be open.

Finding commands with Ctrl+P

Ctrl+P fuzzy-searches built-ins and user-invocable skills by name, arguments, or description. Choosing a Kin result stages an undoable /name in the composer. Review or add arguments, then press Enter; Ctrl+Z restores the replaced draft. Esc leaves it unchanged.

In the slash menu, Tab fills a command and Enter runs it.

Built-in commands

These ship with Kin and are always available. Their names are reserved: a skill cannot replace or rebind a built-in.

Command Argument Description
/help Keybindings and commands overlay (also ++f1++)
/clear Reset the transcript and model history (asks to confirm)
/mode <name> Set the permission mode (auto / strict); bare /mode toggles auto ↔ strict (same as ++shift+tab++)
/plan [task] Enter the read-only planning freeze and run [task]; bare /plan toggles the freeze (the human escape hatch). See Planning
/model <id> Swap to an exact model id, or open the cross-provider picker. Missing credentials prompt at the point of use; f toggles favorites. See models.
/models [jobs|connections|routes] Open the staged human model-configuration hub (Jobs by default). Save & apply validates the complete configuration, writes once, and applies one prepared snapshot; Escape discards all staged edits.
/routes Deep-link to /models routes: add/edit/duplicate/remove routes and inspect preset/model identity, credential readiness, manual/observed vision, assignments, and this-run usage. Stored secret values are never shown.
/compact [focus] Summarize history to free context
/theme [name] Switch and persist the TUI theme. Bare cycles kin (terminal ground) ↔ kin-graphite (opaque fallback); an explicit registered Textual theme name such as nord remains available. A standing KIN_THEME env or project override is named with a warning
/spinner [name] Pick the busy-spinner vibe (rain · braille · arc · toggle · line — the style table). Bare opens a picker with a live preview; /spinner <name> applies directly. Applies live and persists (spinner in ~/.kin/settings.toml; a standing KIN_SPINNER env or project override is named with a warning). HUMAN-ONLY cosmetic — not model-writable
/agents Open the unified agent panel — shells, foreground/background agents, and tasks (also ++ctrl+o++)
/resume [id] Switch to a saved conversation; bare opens a picker. If another live Kin holds that conversation’s process-lifetime lease, the switch refuses and keeps the current conversation open
/skills List the skills discoverable from the workspace
/mcp Manage MCP servers — enable/disable, add, edit, remove, reconnect live
/reload Re-read settings.toml + the mcp.json scopes and apply model routes/wire, appearance (theme + spinner), and MCP changes live (no restart). A route catalog is fully validated before the root/future dispatches switch; running children keep their frozen snapshot.
/tokens Show context usage by component, plus the journal surface breakdown
/history [n] Show what the model currently sees, what compaction shadowed, and which record replaced it (default: the most recent 40)
/export [--full] [path] Dump the current session’s saved transcript to a markdown file — bare writes kin-export-<session-id>.md into the workdir; an explicit path wins (overwrite allowed, no confirm); --full also writes the shadowed history
/fork Branch this session — copies the on-disk journal to a new session id and switches you onto the copy; the source is left untouched, resumable later with /resume <old-id>
/editor Compose the current draft in $VISUAL/$EDITOR (falls back to vi) — suspends kin, opens the editor on a temp file seeded with the composer’s text, and replaces the composer text on a clean exit. Failed editor launches or unreadable UTF-8 drafts leave the composer unchanged and report the failure. Never submits; you still review and hit enter
/rewind [n] [conversation|files|both] Roll back completed turns (default: one, conversation only). Multiple turns or file restoration require confirmation. Scopes and recovery.
/retry Re-send the last user message
/grants [revoke <n>] View or revoke session approvals and persistent trust grants
/login [status | chatgpt [status | --device-auth]] With chatgpt, sign your own Kin directly into your subscription; device authentication supports remote hosts, and status checks local sign-in. Without chatgpt: connect this Kin to managed Kinra through the browser passkey sign-in; status reads the last validated identity offline and reports the active web-retrieval route — hosted through the login, an explicit local Brave override, or off with the two ways out. See Web tools
/logout [chatgpt] With chatgpt, remove Kin’s local subscription sign-in without signing other applications out. Without it: revoke this device key first, then remove local managed state; the note says when hosted web retrieval was withdrawn from the running session
/github [status|connect|repair] [hostname] Check or establish gh CLI authentication for structured PR operations
/tree Toggle the file-tree sidebar (also ++ctrl+g++)
/view <path> Peek a file in a syntax-highlighted read-only viewer (alias of v on the tree)
/providers [name] Deep-link to /models connections, optionally preselecting a built-in or custom connection. Credentials, default model/tier, custom fields, metadata-only connection checks, and model-catalogue import remain staged until Save & apply.
/web-search Inspect hosted search or save a local Brave override; the change applies live. Web tools.
/nudges Open the session-nudge multi-select. Apply replaces the complete set; Escape cancels. No preferences are currently registered; the retired workflow-first setting is ignored on resume
/effort [level] Choose the active backend’s reasoning effort. A change confirms prompt-cache invalidation and journals your explicit choice. Vocabulary and defaults.
/settings [on|off] Let Kin help tune your settings; bare toggles. When on, a settings guide is injected each turn so the model can use the read_settings / propose_settings tools — it can only ever change sampling/model knobs, never containment or secrets, and you approve every diff
/cost [on|off] Report or toggle inference-cost display. Default off; on/off persists globally and applies live. Coverage.
/config Open the configuration picker: visible guided conversations for AGENTS.md, settings, and skills; the isolated editor for agent profiles and .kin/mcp.json; and the human-only Model configuration hub — see Editing configuration
/edit-mcp [instruction] Edit the project .kin/mcp.json server config
/new-agent <name> [instruction] Draft a new subagent profile
/edit-agent <name> [instruction] Edit a subagent profile
/stop Interrupt the running turn
/exit Quit kin
/quit Quit kin (alias of /exit)

See keybindings for keyboard and modal controls.

/github

/github is the proactive human-owned authentication surface for the structured git and github tools. A missing login during either tool now raises the same connection flow in place and resumes that operation automatically, so you do not normally need to leave the task and run this command first. Bare /github and /github status [hostname] run gh auth status and report whether the CLI is ready without exposing a token. /github connect [hostname] suspends the TUI and runs a fixed gh auth login --web flow so gh can show its device code and browser instructions in the real terminal. If a stored account exists but is unhealthy, Connect uses the fixed gh auth refresh flow instead of creating a duplicate login. Kin selects HTTPS for its own Git calls without rewriting your saved remote.

/github repair first checks the active account. When it is present, repair performs a real read-only ls-remote through the same fixed, gh-backed HTTPS route the structured Git tool uses. If login is absent, repair runs the login flow. If the account exists but its data-plane probe fails, repair runs gh auth refresh for that active host and probes again. This distinguishes “the account exists” from “Git transport actually works.”

Kin never stores a GitHub token. gh owns its credential broker, and its status projection removes token fields before output reaches Kin. Both the status check and model-facing adapter strip inherited GH_* / GITHUB_* environment tokens so a repository or launched process cannot silently choose a different identity. Only the human can accept the connection modal; child and headless runs report a needs-human requirement instead.

/effort

Bare /effort opens the picker; /effort <level> validates the value and asks you to confirm prompt-cache invalidation. Applied choices are journaled and shown beside the model. The model reference owns each backend’s vocabulary, default, and wire mapping.

The model can request a reviewed settings proposal but cannot set effort without your approval.

Editing configuration

/config is the common launcher, but each configuration surface keeps its own authority and canonical procedure:

Surface What /config starts Publication behavior
AGENTS.md A visible root /init turn propose_agents_md writes only <workdir>/AGENTS.md after a fresh diff approval
settings A visible normal turn that reads with read_settings propose_settings may change only the model-writable allowlist; changes feed new sessions
skill A source-labelled picker, explicit scope picker, then a visible skill-creator turn propose_skill publishes one validated bundle transaction; project override is the default
agent profile The quiet isolated editor Complete profile diff, then profile-cache reload
.kin/mcp.json The quiet isolated editor Redacted source, complete diff, then live MCP reconnect
Model configuration The staged human-owned /models hub One validated settings/credential/routes apply

The settings, skill, and AGENTS.md conversations are ordinary visible root turns: you see their questions, source context, tool calls, and result in the transcript. Skills use the shared registry view, so the picker labels project, user, and bundled claims as valid/invalid and effective/shadowed. Project scope is recommended; user scope is an explicit persistent choice with a fresh, non-reusable approval. /init and skill-creator are the sole guided authoring procedures for root guidance and skill bundles.

Every model-authored settings, skill, or AGENTS.md write stops on a fresh diff approval. Rejection writes nothing, and a target changed since the diff was prepared aborts rather than overwriting newer work. These proposal tools are top-level only, frozen during planning, and return needs_human in headless execution. Skill and AGENTS.md changes leave the in-flight parent system stable; the next root turn or resume adopts them, and children spawned afterward start with the fresh configuration. Project proposals are captured for /rewind.

Agent profiles and MCP remain the only quiet isolated-editor rows. Their editor uses a read-only subagent (read_file / ls / grep / glob) and a single validated propose_edit channel; its exploration stays out of the transcript. The direct /new-agent, /edit-agent, and /edit-mcp shortcuts remain.

The former /new-skill, /edit-skill, /edit-settings, and /edit-agents built-ins were removed without aliases. Those names are no longer reserved, so a project or user skill may claim one of them.

Custom slash skills

Custom prompt files now have one owner: a <name>/SKILL.md bundle under <workdir>/.kin/skills/ or ~/.kin/skills/. There is no separate .kin/commands/ tree and no foreign-command discovery.

By default a prompt skill has both doors: the model may load it with the skill tool and you may invoke it as /name. Set disable-model-invocation: true for a human-only slash procedure, or user-invocable: false for model-only instructions. Built-in names are reserved and an invalid project entry reserves its own name rather than falling through to another source.

An accepted skill gesture remains visible as the typed /name arguments message plus a settled skill invocation /name · by you timeline row. An unknown, invalid, or unavailable skill reports the lookup failure without that success row.

The complete bundle schema, argument substitution, precedence, live refresh, catalog budget, and /skills diagnostics are in Skills. For saved executable bundles, see Workflow migration.