Skip to content

Settings and profiles

Settings live in settings.toml. The app reads it again whenever it changes, so edits apply without a restart, and changes made from Settings or the command line keep the rest of the file as you wrote it, comments included.

Platform Where
macOS ~/Library/Application Support/alto/settings.toml
Linux ~/.config/alto/settings.toml (or $XDG_CONFIG_HOME/alto)
Windows %APPDATA%\alto\settings.toml

ALTO_HOME puts settings, state and sockets all in one folder instead.

# How long after a session last printed to keep the computer awake:
# a duration like "30s", "5m" or "1h", or "off". Default "1m".
keep_awake_after = "5m"
# The look. Fonts are any installed monospace font; themes are built in
# ("Alto Dark", "Alto Light"), in `themes/` next to this file, or
# any of Ghostty's if it's installed.
font_family = "JetBrains Mono"
font_size = 18
theme = "Alto Dark"
# Let your other computers reach these sessions, over Tailscale only.
remote_access = true
remote_port = 7655
# Let these in without pairing, as your own devices are.
trust = ["tag:ci", "sam@example.com", "*@example.com"]
# How big a new window opens, in cells.
window_columns = 120
window_rows = 48
# Profiles: the settings above are the Default profile; each other one
# changes only what it sets. New tabs use `default_profile`.
default_profile = "Work"
[profiles.Work]
start_in = "~/dev"
[profiles.Server]
command = "ssh myserver"
theme = "Nord"

A profile is a look and a shell: font, size and theme, a new window’s columns and rows, the command to run and the folder to start_in. The top level of the file is the Default profile; every other inherits it and changes only what it sets.

The menu beside + opens a new tab in any profile, here or on another device. Each pane draws in its own profile’s look.

Where a new tab or split starts: a split takes its pane’s profile and runs its command again, in its folder. A new tab in the same profile as the focused pane starts in that pane’s folder; in another profile, in that profile’s own folder (else home).

Key Does
shell_integration = false Turns off Alto’s prompt marks for zsh, bash and fish (and with them alto run’s exit status)
keep_awake_after See Keeping the computer awake
remote_access, remote_port, trust See Remote access with Tailscale