Changes are staged until you press Apply (save and keep the panel open) or Save & Close. Cancel discards them.

About#

The installed Yaw version, updates, and uninstall.

Version

The version of Yaw you are running. Check for Updates asks for a newer release. While it works, the button reads Checking..., Setting up updates... (first-time update setup) or Downloading....

When an update has downloaded, the panel says it is ready and the button becomes Restart to Update, which restarts Yaw onto the new version. If there is nothing newer the panel says Up to date!. When a newer version exists but cannot be installed from your install type, it shows a note explaining why instead. A failed check shows the error.

Uninstall
Removes Yaw from this machine. Click once, then click again within about three seconds to confirm; if you do not confirm, the button resets. If the uninstall fails, the error appears next to it.

License#

Activate, check or release your license key. Every Yaw feature works with or without one.

Yaw is free, with every feature. A license ($10/month or $100/year) removes the “(unlicensed)” label from the title bar and the reminders. Nothing is locked behind it. Manage your license, devices and billing at yaw.sh/license.

License Key

Shown while Yaw is unlicensed. Paste the key from your purchase email and press Activate (or Enter). Spaces and line breaks picked up from the email are removed automatically.

Each license covers a limited number of devices. If activation fails because the key has reached its device limit, release a device you no longer use at yaw.sh/license, then activate again. The panel always shows that link under the key field.

Buy License
Opens the pricing page in your browser.
Status

Shown once licensed: who the license belongs to (name and email) and the license type.

Yaw re-checks the license from time to time. If that check keeps failing (for example, the subscription lapsed or the network is down), the panel shows the date until which Yaw will keep treating the license as valid. If it persists, check your subscription status at yaw.sh/license.

Deactivate License
Releases this device's seat so you can use the key elsewhere. Click once, then again to confirm. If Yaw cannot confirm with the license server that the seat was freed, it clears the license locally and shows a warning: if activation on another device then fails, release the device yourself at yaw.sh/license, or contact support with your license key.

Yaw Mode#

Layer curated skills, subagents and rules over Claude Code sessions started in Yaw tabs, and choose the model, effort and provider they launch with.

Changes apply to the next tab you open; tabs that are already open keep their current mode. Yaw Mode's hooks (memory injection, the rule tiers, the admin-merge gate) need one of oam, bun or Node.js on your PATH. Yaw uses the first one that passes its check, in that order, and tells you once if none does. For what the bundle contains, see Claude Code Yaw Mode and the slash command reference.

Mode
  • Off - Claude Code uses your ~/.claude as-is.
  • Augment - your own config plus Yaw's bundle. Where the two conflict, Yaw's wins.
  • Fresh - Yaw's bundle only.
Default: Off.
Bundle status
A status line under the mode shows the installed bundle version and any update in progress: checking, downloading (with a percentage), installing, a newer bundle available, or a failed fetch with the reason and a retry countdown. Retry now fetches immediately. If you point Yaw Mode at your own override folder, automatic bundle management pauses and the line says so.
History backups
Before every sync, Yaw Mode saves a timestamped copy of your .claude.json to a rolling backup folder (~/.yaw-claude-json-backups). If your --resume list ever looks wrong, click Open Backups Folder and copy a backup over the active file.
Sub-agent tools

Pre-allows a productivity tool set for dispatched sub-agents (review, full-pass, implement and the like): editing and writing files, dev-loop shell commands (tests, typecheck, lint, staging changes) and web research, without a permission prompt each time.

Common state-changing commands still prompt: commit, push, npm install, gh release, rm. One sharp edge: npm run <script> and make <target> run whatever your project defines without a prompt. Turn this off if your repo has destructive script targets you do not want sub-agents triggering.

Default: on.
Provider

Where Claude Code sends its requests:

  • Anthropic - api.anthropic.com, with your own Anthropic credentials.
  • Typed - typed, a separate Yaw Labs product, either hosted on typed.cloud or running on your machine.

Switching provider resets the model to the new provider's default.

Using typed. Install the typed CLI from the Install Software panel (also in the command palette). typed has four tiers:

  • typed++ - premium, hosted on typed.cloud.
  • typed - economy, hosted on typed.cloud.
  • typed-openrouter - any model on your own OpenRouter key, billed there, plus a flat monthly add-on. It uses the same api.typed.cloud endpoint for now.
  • typed-local - free, needs no key, and runs on a model server on your own machine. typed local prints the command that starts it.

The three hosted tiers need your app.typed.cloud API key. Enter it in the installer's optional key field, or run typed login afterwards. Either way it lands in ~/.config/typed/api-key, where Yaw picks it up; the TYPED_API_KEY environment variable also works.

With no typed.cloud key the CLI runs typed-local (free, on your machine). With a key on a paid plan it runs typed (hosted economy, billed to your plan). Name typed++ when you want the strongest tier. The panel shows whether a key was found (and where), the plan recorded for it, and which tier that makes the default. If no plan is recorded, run typed doctor.

Model

The model Claude Code starts with; Yaw types /model into Claude Code at launch. Pick from the list for the current provider, or choose Custom... to enter any model ID.

On typed, hovering a tier (or selecting it) shows its description. Switching among typed++, typed and typed-openrouter reaches Claude Code panes that are already running; switching to or from typed-local changes the server the pane talks to, so it applies to new tabs only.

If you enter a typed model ID that is not one of the four tiers (older spellings were renamed, and the hosted API rejects them), the panel tells you which tier it will save instead. If you pick a hosted tier and no typed.cloud key is found, new tabs fall back to your Anthropic credentials until one is; typed-local needs no key.

typed-openrouter has not shipped yet. Until it does, panes on it get an unknown-model error from typed.cloud, and the typed CLI refuses to start in Yaw panes, so pick another tier for now.

Effort

Anthropic: Yaw types /effort <level> into Claude Code when the session starts. Levels are Low, Medium, High, xHigh and Max, but vary by model; xHigh is offered only on the models that support it, and the panel lists them. Overrides you type during a session (such as /effort max) still apply. If Ultracode is on and the model supports it, the session launches at ultracode instead, regardless of the level picked here.

typed: there is no effort setting, because effort is part of the tier. typed ignores /effort, so pick the tier in Model instead. typed++ and typed are hosted and carry the monthly quota and top-ups; typed-openrouter runs any model on your own OpenRouter key; typed-local is free and runs on your own machine.

Default: xHigh (recommended).
Ultracode

Multi-agent orchestration: Claude Code defaults to fanning substantive tasks out to a Workflow of sub-agents. On the Anthropic models that support it, this uses Claude Code's ultracode tier (xHigh effort plus workflow orchestration). On the hosted typed tiers it applies as Claude Code's orchestration mode rather than an effort level. It does not apply to typed-local, or to Anthropic models that do not support it; those sessions run as if it were off. Expect higher token use.

Shown while Yaw Mode is on. Default: on.
Fast mode

Automatically turns on /fast in new Claude Code sessions. It appears only when the selected model is Opus 4.6, as part of the throttle-recovery pairing (dropping to Opus 4.6 with /fast when you are rate-limited). /fast itself works on Opus 5, 4.8, 4.7 and 4.6 and only speeds up output; it never downgrades the model. Not offered on typed.

Shown while Yaw Mode is on with the Anthropic provider and Opus 4.6 selected.
Preview combined CLAUDE.md
Shows the CLAUDE.md that Claude Code will see in the current mode: your own instructions combined with Yaw's (Augment), or Yaw's alone (Fresh). Shown while Yaw Mode is on.

Appearance#

Theme, font and cursor for every terminal pane.

Theme

The terminal color theme, with a swatch preview of its colors. Choices: Catppuccin Mocha, Catppuccin Latte, Dracula, Gruvbox Dark, Nord, Tokyo Night, Solarized Dark, Rosé Pine, One Dark. The built-in editor follows the same theme, and so can vim (see Vim Colorscheme).

Default: Catppuccin Mocha.
Font Family

Menlo (macOS default), Consolas (Windows default), Cascadia Code (Windows, legacy), DejaVu Sans Mono (Linux default), JetBrains Mono, or Fira Code. A font has to be installed on your system to render. To use any other font, set fontFamily in Yaw's settings.json; it then appears here as Custom (from settings.json).

Default: your platform's default font.
Font Size
Range: 8-32. Default: 14.
Cursor Style
Block, Bar or Underline. Default: Block.
Cursor Blink
Default: on.
Use Option as Meta key (macOS only)
Makes the Option key act as Meta (Alt) in the terminal, as many shell and editor shortcuts expect. With it off, Option types accented and special characters, matching Terminal.app and iTerm2. Default: off.

Shell#

Which shell new tabs run, its arguments, and where each shell profile starts.

Default Profile
The shell profile new tabs open with, chosen from the shells Yaw detected on this machine (for example PowerShell, Git Bash or a WSL distribution on Windows).
Shell Arguments
Extra arguments passed to the shell when it starts, for example --login -i. Default: empty.
<Profile> start directory

One field per profile: the folder a tab of that profile opens in when it has no usable folder of its own. Leave it blank for your home folder (for WSL profiles, your Linux home). WSL profiles take a Linux path such as /home/me/code; other profiles take a native path such as C:\code or ~/code.

Start directories do not apply when a new tab inherits the current tab's folder, which is the common case. They do apply when a PowerShell or Git Bash tab is opened from a WSL tab that sits in a Linux-only folder (such as ~/src), since that folder cannot be used.

Behavior#

Clipboard, AI context, scrollback, waiting-pane alerts, rendering, session restore and window size.

Copy on Select
Copies text to the clipboard as soon as you select it in a pane. Default: on.
AI CLI Open New Pane
When Yaw detects an AI CLI such as Claude Code launching in a pane that is not already split, it snaps a side-by-side terminal next to it for running suggested commands. Default: on.
Terminal context lines

How many lines of terminal output are attached to each message you send from the AI Assistant, as context. Everything attached is shown above the input before you send. Known credential shapes are masked first, but masking is best-effort, so review the attachment when a pane holds something sensitive. Ollama runs locally; every other provider is a third-party network call.

Range: 50-2,000, or 0 to send none. Default: 200.
Scrollback Lines

How much history each pane keeps, applied to every pane. Higher values keep more history but use more memory per pane (about 3 KB per line), so lower it if you run many panes at once.

Range: 1,000-200,000. Default: 25,000.
Agent Idle Threshold (ms)

How long an AI CLI pane must be silent before it is marked as waiting on you: a peach border, a tab badge, and an entry in the status bar's AWAITING pill (or the Jump to Next Pane Awaiting Input shortcut) that takes you to it. A working agent keeps producing output, so only real silence counts. Lower it to be notified sooner; raise it if a pane flickers to “awaiting” during long tool calls that print nothing.

Range: 400-30,000 ms. Default: 1,200 ms.
Alert When Waiting

Escalates a pane that is waiting on you outside the window, so a background tab does not sit unnoticed:

  • Off - in-app only: just the in-app border, badge and pill.
  • Taskbar / dock count: a count of waiting panes across every tab in this window.
  • Count + desktop notification: the count, plus a notification when the waiting pane is not the one you are looking at. Clicking the notification jumps straight to it.

Availability depends on your OS. Windows shows the count on the taskbar button and macOS on the dock icon (where it shares the notification permission); most Linux desktops show no count at all. Focus Assist or Do Not Disturb can also suppress notifications.

Default: Taskbar / dock count.
Pause Hidden Tab Rendering

Queues output from panes in hidden tabs and renders it at idle priority, keeping the visible tab smooth during heavy output. Tab titles and clipboard writes from hidden panes may lag by up to about 400 ms. Turn it off for always-live rendering; queued output always finishes drawing. Takes effect on save, no restart needed.

Default: on.
Restore Previous Session on Startup
Reopens the tabs and panes you had open when Yaw last closed. Default: on.
Window Size on Open

How big a new window opens:

  • Remember last size: reopens at the size, position and maximized state you last closed a window with, remembered separately for each display. A laptop that docks to a big monitor keeps one size for the laptop screen and another for the monitor; a screen Yaw has not seen yet starts at the default.
  • Default for the display: 80% of the screen, without stretching across an ultrawide.
  • Maximized.
  • Custom size: a fixed width and height in pixels (minimum 400 x 300, default 1280 x 800). A size larger than the screen it opens on is shrunk to fit, so the window is never placed off-screen.

A launch that asks for its own layout (such as yaw snap left) always wins. Takes effect for the next window you open.

Default: Remember last size.
Vim Colorscheme
Syncs the selected theme to vim and neovim when you have not set a colorscheme of your own. Default: on.
Bell Notification
What happens when a program rings the terminal bell: None, Visual Flash (the pane flashes), Taskbar Flash (the taskbar button flashes), or Visual + Taskbar. Default: None.

Editor#

Settings for the built-in file editor (micro). Its theme follows your terminal theme.

Tab Size
Range: 1-8. Default: 2.
Soft Wrap
Wraps long lines to the window width instead of scrolling sideways. Default: on.
Line Numbers
Default: on.

AI Providers#

API keys and models for the built-in AI Assistant, one block per provider.

These settings are for Yaw's AI Assistant, not for Claude Code (Claude Code is configured under Yaw Mode). Each provider block has the same parts:

Visible
Whether the provider appears in the AI Assistant. Default: Claude and ChatGPT visible; the rest hidden.
API Key
Your key from that provider. Every provider except Ollama and Bedrock takes one.
Model
Pick from the provider's current models, or choose Custom... and enter any model ID (the Custom Model ID field). For models that can reason, a hint underneath shows that provider's term for it (extended thinking, thinking budget, reasoning effort) and the levels the model respects, or notes that the model reasons natively and ignores the setting.

The providers:

Claude
Anthropic API key (starts sk-ant-).
ChatGPT
OpenAI API key (starts sk-).
Mistral
Mistral API key.
Gemini
Google AI API key (starts AIza).
Grok
xAI API key (starts xai-).
Ollama
Runs models on your own machine, so it needs no key. The Model list shows the models your local Ollama has installed; if that list fails to load, the panel says so.
Bedrock
Uses your AWS credentials, so it needs no key here. Region is optional: it overrides the region in ~/.aws/config, and if left blank the AWS default is used (for example us-east-1).
OpenRouter
OpenRouter API key (starts sk-or-). Model IDs take the vendor/model form.
HuggingFace
Hugging Face token (starts hf_). Model IDs take the org/model form.

Paste History#

How much paste history Yaw keeps, whether programs may write to your clipboard, and when a large paste asks first.

Persist to Disk
Keeps your paste history across restarts. With it off, the history lasts only until Yaw closes. Default: on.
Max Entries
How many pastes the history keeps. Range: 10-500. Default: 50.
Allow OSC 52 (terminal -> clipboard)
OSC 52 lets a program in the terminal (tmux yank, vim and so on) write into your OS clipboard. That is useful over SSH, but a hostile remote shell or a piped script could silently overwrite your clipboard. Turn it on only if you trust your remote sessions. Default: off.
Confirm paste over (lines)
Pasting more than this many lines asks for confirmation first. Set it very high (for example 100,000) to effectively turn the prompt off. Range: 1-100,000. Default: 100.
Confirm paste over (chars)
Pasting more than this many characters asks for confirmation first. Either threshold triggers the prompt, whichever is exceeded first. Range: 100-10,000,000. Default: 5,000.

Claude Code Version#

Which Claude Code version you run, how it updates, and how to roll back or forward.

Yaw recommends a community-vetted Claude Code version that lags npm's latest by a few days, so regressions surface in the community before they reach you. You can pick one of the 10 most recent releases to roll back or roll forward, or install an older one from a terminal. A Homebrew install cannot pick a version: the cask ships only its current release.

Installed
The Claude Code version on this machine and how it was installed (npm, pnpm, yarn, bun, volta, the standalone installer, Homebrew, Scoop, asdf). It reads not installed when Claude Code is missing, and broken when the installed copy fails to run.
Yaw recommends
The curated version Yaw currently recommends.
Safety floor
The minimum version Yaw considers safe, shown when it differs from the recommendation. Falling below it raises a banner even under the Manual policy.
npm latest
The newest version published to npm.
Update policy
  • Recommended: update to Yaw's curated target, which lags npm latest by a few days.
  • Latest: update to npm latest as soon as it appears. With Homebrew, this means the cask's newest release as soon as Homebrew publishes it.
  • Manual: never install automatically. Yaw shows a banner only if you fall below the safety floor.

Under Recommended or Latest, the update happens the next time Yaw checks for updates after you save. When Yaw can drive your install method (npm, pnpm, yarn, bun, volta, the standalone installer, Homebrew), it installs automatically; with Homebrew it runs brew upgrade --cask, and the cask may lag the target by a few days. When it cannot (Scoop, asdf, or an install method it cannot identify), it shows a notice with the command to run instead.

If you have not chosen a policy yet, Yaw asks the first time it sees your version drift from its target.

Versions

The 10 most recent Claude Code releases with their release dates, tagged installed, recommended and latest. Install on a row installs that version using your current install method. For Scoop, asdf or an unidentified install method, each row shows the command to run in your terminal instead. Homebrew cannot install a specific version, so the panel shows the one upgrade command instead. If the standalone install is broken, the panel shows the installer command to reinstall it from a terminal.

Rolling back under Recommended or Latest is temporary: the next update check reinstalls the policy's target, and the panel warns you. Switch to Manual to keep an older version.

The list can take up to a minute to load the first time. If it fails to load, the panel shows the error and a Retry button.

Keyboard Shortcuts#

See and rebind Yaw's keyboard shortcuts.

Changing a shortcut

Click a binding, then press the new key combination. Press Escape to cancel, or Delete / Backspace to reset that action to its default. Changed bindings are highlighted so you can tell them apart from the defaults.

A shortcut needs Ctrl (Cmd on macOS) or Alt; Shift on its own cannot be a shortcut. A few combinations are reserved and cannot be assigned: Ctrl/Cmd+1 through 9, Ctrl/Cmd+Tab, Ctrl/Cmd+Shift+Tab, Ctrl/Cmd+C and Ctrl/Cmd+V. If a combination is already bound to another action, the panel names that action and keeps the old binding.

Actions you can rebind
  • Tabs and panes: New Tab, Restore Tab, Restore Closed Pane, Close Pane/Tab, New Window, Split Vertical, Split Horizontal, Next Tab, Previous Tab, Toggle Full Screen, Navigate Pane Up / Down / Left / Right, Jump to Next Pane Awaiting Input.
  • Panels: Search, Broadcast Mode (send input to all panes), Paste History, Command Palette, Connection Manager, Yaw MCP Panel, Remote Sessions, AI Assistant, Install Software, Settings, Git Change Search, Menu, Open File in Editor, Toggle Timestamps.
  • Zoom: Zoom In, Zoom Out, Zoom Reset.
  • Window snapping: Snap Left, Snap Right, Snap Maximize, Snap Center, Snap Top-Left, Snap Top-Right, Snap Bottom-Left, Snap Bottom-Right, Snap Grid Layout Picker.

The current binding for each action is shown in the panel and in the command palette.

Something here out of date or unclear? Let us know.