Files
ghostty-org-ghostty/src/cli
Jon Parise ac69942cdc cli: rework +ssh-cache internals and user interface
This change primarily focused on a revised +ssh-cache user interface,
but it also reworks a bunch of the internals.

The primary CLI improvement is support for positional arguments and a
consistent list output format that includes both the ISO-formatted
timestamp and relative age.

    ghostty +ssh-cache                           # List all cached destinations
    ghostty +ssh-cache user@example.com          # Show that destination
    ghostty +ssh-cache example.com               # Show all users on that host
    ghostty +ssh-cache --add=user@example.com    # Manually add a destination
    ghostty +ssh-cache --remove=user@example.com # Remove a destination
    ghostty +ssh-cache --prune=30d               # Remove entries older than 30 days
    ghostty +ssh-cache --clear                   # Clear entire cache

Notable, we now support a --prune operation that replaces the previous
--expire-days flag that was never actually hooked up to anything (!!).
--prune also supports a wider range of Duration-based values.

We're also much more consistent with error codes: 0=success, 1=failure,
2=usage.

While working on those changes, I also reworked the cache internals,
particularly the code around timestamp handling and errors. For example,
I dropped the explicit error sets because they were growing unwieldy,
and in practice we only matched on a subset of those errors.

Lastly, overall test coverage should be much improved, especially around
the time- and allocation-related operations.
2026-05-25 16:00:21 -04:00
..
2025-11-27 13:37:53 -08:00
2025-10-03 07:10:43 -07:00
2025-10-03 07:10:43 -07:00
2025-10-03 07:10:43 -07:00
2024-09-27 10:53:58 -07:00
2026-03-30 10:53:53 -04:00
2025-10-03 07:10:43 -07:00
2025-11-27 13:37:53 -08:00
2025-10-03 07:10:43 -07:00

Subcommand Actions

This is the cli specific code. It contains cli actions and tui definitions and argument parsing.

This README is meant as developer documentation and not as user documentation. For user documentation, see the main README or ghostty.org.

Updating documentation

Each cli action is defined in it's own file. Documentation for each action is defined in the doc comment associated with the run function. For example the run function in list_keybinds.zig contains the help text for ghostty +list-keybinds.