lassejlv/termy · Archived
ghostty-to-termy
Convert Ghostty terminal configuration files into valid Termy config.txt files, including supported appearance, colors, behavior, and keybindings, while reporting approximations and unsupported Ghostty settings.
Review carefully
Installs
3
Stars
413
Security
No audit
Freshness
Archived
Updated
—
First seen Jul 25, 2026
Installation
Project
Global
Entire repo
Entire repo (global)
$
npx skills add lassejlv/termy --skill ghostty-to-termy
Copy
SKILL.md
Convert Ghostty configuration to Termy
Produce a valid Termy config and a compatibility report. Never silently copy a Ghostty key into Termy merely because the names look similar.
Workflow
Locate the Ghostty input. Prefer an explicit path. Otherwise check:
- $XDGCONFIG HOME/ghostty/config.ghostty - $XDGCONFIG HOME/ghostty/config - ~/.config/ghostty/config.ghostty - ~/.config/ghostty/config - macOS Application Support paths documented by Ghostty
Run the bundled converter:
``bash python3 scripts/convertghostty to_termy.py SOURCE \ --output /tmp/termy-config.txt \ --report /tmp/termy-compatibility.json ``
Read the generated config and report. Resolve unsupported or approximated
entries only when the user wants manual equivalents.
For any manual mapping, verify the target key and accepted value in
[references/termy-llms-full.txt](references/termy-llms-full.txt). Search it with rg -n rather than loading the entire 76 KB file.
Validate structurally by rerunning the converter with --strict. If a Termy
binary or config validation command is available, validate with it too.
Write to ~/.config/termy/config.txt only when the user asks to install or
replace their live config. Preserve an existing file unless replacement is explicit.
Conversion rules
Follow [references/mapping-policy.md](references/mapping-policy.md) for exact and lossy mappings.
Keep ordinary Termy keys and repeated keybind lines before [colors].
Emit [colors] last because it is Termy's only section header.
Normalize Ghostty RRGGBB colors to Termy's required #RRGGBB.
Inline Ghostty config-file includes using Ghostty's load order.
Preserve only behavior Termy supports. Put everything else in the report.
Treat named Ghostty themes as unresolved unless their colors are made
explicit. A matching theme slug does not prove the same theme exists in Termy.
Treat Ghostty keybind prefixes, sequences, text/escape injection, global
shortcuts, and parameterized actions as unsupported unless Termy documents an equivalent.
Never invent Termy action names. Check the # Actions section in the bundled
docs when adding a manual keybinding mapping.
Output contract
Return:
the generated Termy config path or config text;
counts of exact, approximated, unsupported, and warning entries;
a short list of lossy or unsupported settings that matter to the user;
whether validation was structural only or also performed by Termy itself.
Do not call a migration complete when the report still contains important unsupported behavior without telling the user.