# Termy - [Termy documentation](/docs): Install Termy, learn the daily workflows, and shape it around how you work. - **Install & setup** - Getting started - [Getting started](/docs/getting-started): Go from download to a comfortable Termy setup in a few minutes. - [Install](/docs/getting-started/installation): Download Termy for macOS, Linux, or Windows. - [Config file](/docs/getting-started/config-file): Where settings live and how to edit them. - [Troubleshooting](/docs/getting-started/troubleshooting): Common install and launch issues. - **Daily workflows** - Using Termy - [Using Termy](/docs/using-termy): Everyday terminal workflows, from one shell to persistent workspaces. - [Tabs](/docs/using-termy/tabs): Open, switch, rename, and organize tabs. - [Splits and panes](/docs/using-termy/splits-panes): Split, focus, resize, and zoom panes. - [Program status](/docs/using-termy/program-status): See when terminal programs are working, waiting for you, finished, or failed. - [Search](/docs/using-termy/search): Find text in scrollback. - [Command palette](/docs/using-termy/command-palette): Search actions, themes, settings, and tasks. - Plugins - [Plugins](/docs/using-termy/plugins): Add commands, automations, and safe native tools to Termy. - [Getting started](/docs/using-termy/plugins/getting-started): Create, install, and develop a Termy plugin. - [Commands and context](/docs/using-termy/plugins/commands-context): Define palette commands, inputs, settings, actions, and keybindings. - [Native UI](/docs/using-termy/plugins/native-ui): Build safe JSX tools that Termy validates and renders with GPUI. - [Lifecycle and storage](/docs/using-termy/plugins/lifecycle-storage): React to terminal activity and persist plugin-specific data. - [Security and limits](/docs/using-termy/plugins/security-limits): Understand plugin trust, import rules, isolation, reloads, and boundaries. - [SSH hosts](/docs/using-termy/ssh-hosts): Save remote hosts and open them in native Termy tabs. - [Built-in multiplexer](/docs/using-termy/multiplexer): Keep programs running when Termy closes and restore your windows, tabs, and panes. - [Tmux sessions](/docs/using-termy/tmux-sessions): Optional tmux-backed tabs and panes. - [Tasks and layouts](/docs/using-termy/tasks-layouts): Named commands launched from the palette. - **Settings & themes** - Customize - [Customize Termy](/docs/customize): Change how Termy looks, responds, and fits into your workflow. - [Appearance](/docs/customize/appearance): Theme, font, window, and padding. - [Terminal Behavior](/docs/customize/terminal-behavior): Shell, cursor, scrolling, clipboard, and terminal UI behavior. - [Tabs and Titlebar](/docs/customize/tabs-titlebar): Tab titles, tab strip behavior, and title bar. - [Colors](/docs/customize/colors): Override theme colors with hex values. - [Themes](/docs/customize/themes): Built-in and custom JSON themes. - [Keybindings](/docs/customize/keybindings): Customize shortcuts in Settings or config.txt. - [Advanced](/docs/customize/advanced): Updates, startup, debug, and safety. - **Exact reference** - Reference - [Reference](/docs/reference): Exact configuration keys, default shortcuts, action names, and terminal protocols. - [Configuration Reference](/docs/reference/configuration-reference): Canonical list of Termy configuration keys and defaults. - [Defaults](/docs/reference/keybinding-defaults): Default keybindings on each supported platform. - [Actions](/docs/reference/actions): Every action you can bind to a trigger. - [Terminal protocols](/docs/reference/terminal-protocols): Escape sequences, modes, queries, and extensions the Termy engine understands. - **Develop & embed** - Developer - [Develop and embed](/docs/developer): Understand Termy's boundaries, measure rendering, or build with libtermy. - [Command Boundary](/docs/developer/command-boundary): Ownership boundaries between the command engine and adapters. - [Render Metrics](/docs/developer/render-metrics): Debug terminal rendering performance. - libtermy - [libtermy overview](/docs/developer/libtermy): Build a native terminal with Termy's engine. Start here for Rust and C integration, rendering contracts, and agent-readable documentation. - [Rust quick start](/docs/developer/libtermy/rust): Parse output, start a PTY, drain events, and choose the public Rust embedding API. - [C ABI quick start](/docs/developer/libtermy/c): Build and link libtermy, run a complete C example, create a PTY, and bridge the API to Swift or another native host. - [Engine C library](/docs/developer/libtermy/engine): Link libtermy_engine, Termy's terminal engine without PTY or config code, to mirror remote terminals with snapshots and replica mode. - [Swift quick start](/docs/developer/libtermy/swift): Embed libtermy in a macOS app with the Swift SDK, from a SwiftUI terminal view to headless and display-only sessions. - [Swift Metal renderer](/docs/developer/libtermy/swift-rendering): How the Swift SDK's TerminalView turns libtermy frames into GPU draw calls, from damage tracking and the glyph atlas to frame pacing and fallbacks. - [Configuration and sizing](/docs/developer/libtermy/configuration): Load configuration with diagnostics, resolve appearance, measure cells, and keep the terminal grid and renderer in sync. - [Rendering and damage](/docs/developer/libtermy/rendering): Apply full and incremental frames correctly, render rich text and special glyphs, and schedule image updates. - [Input, search, and navigation](/docs/developer/libtermy/input): Translate host input, handle bracketed paste and mouse modes, and navigate scrollback with correct coordinates. - [Events and protocol replies](/docs/developer/libtermy/events): Drain events, forward display-only replies, integrate clipboard permissions, and schedule terminal work without busy polling. - [Ownership and API reference](/docs/developer/libtermy/reference): Find C allocation/free pairs, thread and callback rules, status codes, and the Rust-to-C API map. - [Integration guide for agents](/docs/developer/libtermy/agents): A compact implementation contract, source map, reading order, and acceptance checklist for coding agents embedding libtermy. - [Troubleshooting and validation](/docs/developer/libtermy/troubleshooting): Diagnose blank terminals, incorrect incremental updates, input problems, missing replies, and native host shutdown failures. - Web terminal - [Web terminal](/docs/developer/web): Run Termy's terminal engine in the browser with the @termysh npm packages. - [Connect to a shell](/docs/developer/web/connect): Run a real shell in the browser with a PTY server, a WebSocket and @termysh/web. - [Frameworks and bundlers](/docs/developer/web/frameworks): Use @termysh/web with React, Next.js, Vue, Vite, webpack and esbuild, and serve the WebAssembly file. - [Web terminal options](/docs/developer/web/options): Every option for @termysh/web, with defaults. - [Web terminal themes](/docs/developer/web/themes): Use bundled Termy themes, xterm.js themes, or override individual colors. - [Migrate from xterm.js](/docs/developer/web/xterm): Replace @xterm/xterm with @termysh/xterm and keep your existing code. - [Headless core](/docs/developer/web/core): Drive Termy's WebAssembly engine directly from a worker, Node or your own renderer. - [PTY for Node.js](/docs/developer/web/pty): Run programs on pseudo-terminals from Node.js and Bun with @termysh/pty, a drop-in replacement for node-pty. - [Troubleshooting the web terminal](/docs/developer/web/troubleshooting): Fix blank terminals, WebAssembly loading errors, build failures and PTY problems.