Profile Editors

September 16, 2026 ยท View on GitHub

tunnel-client profiles edit <name> selects the first nonempty value of VISUAL, then EDITOR. The value must name an installed supported editor and may include only the options listed below. Quote executable paths containing spaces, for example EDITOR='"/Applications/My Editor/bin/code" --wait'. The editor is resolved by its supported name through PATH. An explicit path must refer to that same installed executable, including through a symlink. The conventional editor alias is also accepted when it resolves to one of these installed editors; its target's option policy applies.

EditorAccepted options
vi-R, -n
vim, nvim-f, --nofork, -n, -R
nano-w, --nowrap, -l, --linenumbers, -m, --mouse, -E, --tabstospaces
emacs-nw, --no-window-system, -Q, --quick, -q, --no-init-file, --no-site-file
code-w, --wait, -n, --new-window, -r, --reuse-window, --disable-extensions
subl-w, --wait, -n, --new-window, -b, --background
notepadNone

Windows editor executables may use the .exe extension. Single and double quotes group arguments; Unix backslashes escape the following character. There is no environment-variable expansion, command substitution, or shell execution. The profile filename is appended as one absolute argument.

Interpreter commands, wrappers such as env, extra filenames, and editor evaluation options such as -c, --cmd, --eval, and +command are rejected before any process starts. Use code --wait or subl --wait so the editor finishes before the profile is validated and saved.

Before upgrading any binaries, replace settings such as EDITOR="env vim" or interpreter wrappers with EDITOR=vim or EDITOR="code --wait". Check VISUAL as well: a nonempty value takes precedence over EDITOR and must use a supported editor. Validate profiles edit with that setting on the existing release, then canary the updated binary and validate editing again before wider rollout. Keep the same supported editor setting throughout the mixed-version and rollback window: both releases accept it. Updated binaries do not provide a permissive mode for arbitrary commands or evaluating options.

This policy limits what the editor environment value can request; naming an unrelated executable vim does not make an explicit path acceptable. The editor installed in PATH, its startup configuration and extensions, and the local executable search path remain trusted. Executable contents and provenance are not verified.