Windows Terminal is Microsoft's open-source, GPU-accelerated terminal host for Windows that aggregates Command Prompt, PowerShell, WSL distros, Azure Cloud Shell, SSH, and any custom shell into a single tabbed, pane-capable window. It replaces the aging Console Host (conhost.exe) while remaining shell-agnostic β it launches and manages shells rather than being one itself. The entire configuration lives in a single settings.json file, giving power users precise, version-controllable control over every aspect of appearance and behavior. The most important mental model: settings cascade from a global "defaults" object through per-profile overrides, so you can set a base style once and only override what differs per shell.
What This Cheat Sheet Covers
This topic spans 20 focused tables and 178 indexed concepts, 133 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: settings.json Structure and File Locations
The settings.json file is the single source of truth for all Windows Terminal configuration. Understanding its top-level structure and where to find it is the prerequisite for every other customization.
| Setting | Example | Description | |
|---|---|---|---|
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json | β’ Location of the settings file for the Store (stable) release β’ open via Ctrl+, or Settings β Open JSON file | ||
%LOCALAPPDATA%\Microsoft\Windows Terminal\settings.json | Location for Scoop / Chocolatey / standalone installs; same JSON schema as the Store version. | | |||
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminalPreview_8wekyb3d8bbwe\LocalState\settings.json | Location for the Preview release; preview and stable maintain separate settings files. | ||
Hold Alt + click Settings button | Opens the read-only built-in defaults file; shows all default values; cannot be edited directly. | ||
{ "$schema": "...", "defaultProfile": "...", "profiles": { "defaults": {}, "list": [] }, "schemes": [], "actions": [], "themes": [] } | The root JSON object; profiles.defaults applies to all profiles; profiles.list holds individual profile objects. | ||
"$schema": "https://aka.ms/terminal-profiles-schema" | Enables IntelliSense and validation in VS Code and editors that support JSON Schema; always include at the top. | ||
Settings β Open JSON file (bottom-left button) | VS Code is the recommended editor; it provides JSON validation and autocomplete against the Terminal schema. | ||
"import": ["my-actions.json", "my-themes.json"] | Split large configurations into multiple files; each fragment can contain "actions", "themes", or other subsets. |