Skip to content

Shell

The program section controls which shell Attyx launches and how it starts.

[program]
shell = "/bin/zsh"
args = ["-l"]
working-directory = "/Users/you/Projects"
OptionTypeDefaultDescription
shellstring$SHELL or /bin/shShell program to run
argsstring[][]Extra arguments passed to the shell
working-directorystringhome directoryInitial working directory

If shell is not set, Attyx uses the SHELL environment variable. If that’s also unset, it falls back to /bin/sh.

To start a login shell, pass -l in the args:

[program]
args = ["-l"]

Set the initial directory for new terminal sessions:

[program]
working-directory = "/Users/you/Projects"

The path is used as-is — Attyx does not expand ~, so use an absolute path. When not set, Attyx inherits the working directory from its parent process, falling back to your home directory.

You can run any program, not just a shell:

[program]
shell = "/usr/bin/htop"

The terminal will close when the program exits.

FlagDescription
--shell <path>Shell program
--cmd <command...>Override shell command
-d, --working-directory <path>Initial working directory

Attyx includes shell integration scripts for zsh, bash, fish, nushell, and sh. These enable features like working directory tracking (OSC 7) and PATH reporting for popups. Shell integration is automatic — no configuration needed.

Program settings require a restart — they are not hot-reloadable. Changing the shell or working directory only affects new terminals.