Docs
Using Zinc
How to install Zinc, set it up the way you work and script it. Written for the private alpha, so details can change between builds.
On this page
Getting started
What you need
Windows 10 version 2004 or later, or Windows 11, on an x64 PC. ARM64 builds aren’t available yet.
Install
- Request access in the Discord. Testers get a link to each build.
- Run
Zinc-win-Setup.exe. It installs Zinc for your user only, so it doesn’t ask for administrator rights. - If Windows SmartScreen stops it, choose More info, then Run anyway.
That’s why SmartScreen asks. Signing is coming, and once signed builds have earned SmartScreen’s trust, it stops asking.
Rather not install? Zinc-win-Portable.zip holds the same build in a folder you can run from anywhere.
Updates
Installed copies check for a new build once a day and update themselves. You’ll find the version you have, and the option to check now, in Settings›About›Updates. What changed is in the changelog.
First launch
The first time Zinc starts, a welcome page asks how you like to work and saves your answers to your settings. Reopen it any time with Welcome… in the command palette (Ctrl+Shift+P). It changes only what you change there.
- Layout. Simple, with tabs along the top and one terminal each, or workspaces, in a sidebar or along the top, each with its own tabs and splits.
- Panes. Compact, edge to edge, or cards, each with a header and a gap around it.
- Color scheme and font, with a preview. Pick one scheme, or a pair that follows Windows’ light and dark mode.
- Default shell. Zinc lists the shells it found on your PC.
- Notifications. Whether a long command that finishes in the background shows a Windows notification.
Keys worth knowing
| Action | Keys |
|---|---|
| Command palette: every action, profile and workspace | Ctrl+Shift+P |
| Settings | Ctrl+, |
| Quick terminal, from anywhere in Windows | Win+` |
| New tab / new workspace | Ctrl+Shift+T / Ctrl+Alt+T |
| Split right / down | Alt+Shift+Plus / Alt+Shift+Minus |
| Previous / next prompt | Ctrl+Shift+↑ / Ctrl+Shift+↓ |
| Find in the scrollback | Ctrl+Shift+F |
Every action and its keys are in Settings›Keyboard, where you can change them.
Configuration
Change settings in the Settings window or in config.toml. They’re the same settings: a change in one shows in the other and applies straight away, in every open window.
The Settings window
Open it with Ctrl+,, from the command palette or from the tray icon. Each change is saved as you make it, and each setting shows its key in the file.
- Find a setting (Ctrl+F) searches settings, keys and profiles, so “font size ubuntu” finds the font size in your Ubuntu profile.
- The reset arrow beside a changed setting puts it back to its default.
- Undo changes, at the bottom, puts the file back as it was when you opened the window.
The config file
Your settings live in %APPDATA%\Zinc\config.toml. It’s TOML: settings grouped into sections, with # comments. Changes apply when you save.
default-profile = "wsl:Fedora"
[font]
family = "JetBrainsMono NF"
size = 11 # points
[colors]
theme = "Dracula" # a bundled scheme, or one of yours
background = "#181818" # single colors override the scheme
[window]
workspace-tabs = "left"
[profile."wsl:Fedora"]
name = "Fedora"
command = 'wsl.exe -d Fedora --cd ~'
colors.theme = "0x96f"Zinc shows a bar with the file and line of anything it can’t read, and applies everything else. Single-quoted strings are literal, so Windows paths need no escaping: 'C:\msys64\ucrt64.ico'.
Profiles
A profile is a shell with its own name, folder, font and colors. Zinc finds the shells on your PC each time it reads your settings, and lists them after your own.
| Found | Profile id |
|---|---|
| WSL distros | wsl:<distro> |
| PowerShell 7, Windows PowerShell, cmd | pwsh, powershell, cmd |
| Git for Windows | git-bash |
| MSYS2 (UCRT64) | msys2:ucrt64 |
| Visual Studio developer shells | vs:<instance>:pwsh, vs:<instance>:cmd |
Hosts in ~/.ssh/config |
ssh:<host> |
A [profile] section with a found profile’s id changes it. [discover] turns a source off.
[discover]
ssh = false # also wsl, powershell, cmd, git-bash, msys2, visual-studio
[profile."wsl:Ubuntu"]
colors.theme = "Ubuntu"
[profile."msys2:ucrt64"]
hidden = trueColor schemes
Lit Cell and Lit Cell Light come with Zinc, along with about 650 schemes from iTerm2-Color-Schemes. Browse them in Settings›Appearance›Color scheme, where each one shows in its own colors. Your own go in %APPDATA%\Zinc\themes\, one file per scheme in Ghostty’s theme format.
To follow Windows’ light and dark mode, give a pair:
[colors]
theme = "light:Lit Cell Light,dark:Lit Cell"Shell integration
Shells can mark where each prompt, command and output starts, and how each command ended. Zinc uses the marks to:
- Jump between prompts with Ctrl+Shift+↑ and Ctrl+Shift+↓.
- Copy or select a command’s output, from the command palette or the right-click menu.
- Show a red bar beside a failed command, and a mark on the scrollbar at each prompt.
- Mark a tab when a long command finishes out of view: green when it succeeded, red when it failed.
- Ask before closing a tab while a command is still running in it.
- Reopen tabs in the folder they were in.
Which shells
Most shells need nothing from you. Your startup files run as usual, and Zinc’s script runs after them without changing anything you see.
| Shell | Set up | Exit codes |
|---|---|---|
| PowerShell 7 and Windows PowerShell | Automatic | Yes |
| bash, in WSL, Git Bash and MSYS2 | Automatic | Yes |
| zsh | Automatic | Yes |
| elvish, OSH | Automatic | Yes |
| cmd | Automatic | With Clink |
| fish, nushell | Built into the shell | Yes |
Then Zinc leaves them to it, whether that’s powerlevel10k’s own integration or one you wrote, and adds only what’s missing.
Turning it off
To start shells exactly as they’d start anywhere else, turn it off for every profile, or for one:
[terminal]
shell-integration = "off"If your startup files hand over to something else, such as tmux or exec into another shell, the marks don’t follow. The scripts in the ShellIntegration folder next to zinc.exe show what to send from there.
Not reached yet
- bash in WSL, when your startup files replace
PROMPT_COMMANDinstead of adding to it. Git Bash is fine. - elvish inside WSL, YSH and xonsh.
- Exit codes in cmd without Clink.
The zn CLI
zn opens, arranges and closes windows, workspaces, panes and terminals in the running Zinc. It can also type into a terminal and read what it shows, so scripts can set up your work for you.
Turn it on
Remote control is off until you turn it on, in Settings›Terminal›Command line or in your config:
[cli]
remote-control = trueInside Zinc, zn is already on your PATH. To use it from other terminals too, turn on Use zn in other terminals.
Examples
zn list # everything open, with ids
zn pane split right -- htop # a pane beside this one, running htop
zn terminal new --pane 4 --profile wsl:Fedora
zn workspace new --name api --cwd . # a workspace in this folder
zn terminal send --terminal 5 ":w\r" # types into terminal 5 (\r is Enter)
zn terminal read --terminal 7 --lines 20 # the last 20 lines of terminal 7
zn workspace color teal # this workspace's color
zn action "zoom-in" # any action, by its nameCommands
Commands are zn <thing> <verb>.
| Thing | Verbs |
|---|---|
window |
list, new, focus, close |
workspace |
list, new, focus, close, rename, color, icon, move |
pane |
list, split, focus, close |
terminal |
list, new, send, read, title, focus, move, close |
Run inside Zinc, a command acts on the terminal it runs in, and on that terminal’s pane, workspace and window. --terminal, --pane, --workspace and --window aim elsewhere, using ids from zn list. Add --json for output scripts can read, and run zn <thing> --help for the rest.
Exit codes
| Code | Meaning |
|---|---|
0 |
Done |
1 |
Refused or failed |
2 |
Wrong usage |
3 |
Zinc isn’t running |
4 |
Remote control is off |
Didn't find what you need? Ask in the Discord, where testers and the developer answer.
Ask in the Discord