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.

First seen Jul 25, 2026

Installation

$ npx skills add lassejlv/termy --skill ghostty-to-termy

Summary

  • 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.
  • Use when migrating from Ghostty to Termy, translating a Ghostty config or theme, comparing Ghostty and Termy configuration support, or diagnosing why a migrated Termy setting is invalid.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Also in this package

Other skills from lassejlv/termy.

npx skills add lassejlv/termy

Browse all from lassejlv/termy

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 413
License LICENSE
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,127 B
  • docs SUMMARY.md 422 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 3 installs

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

  1. Locate the Ghostty input. Prefer an explicit path. Otherwise check:

- $XDGCONFIGHOME/ghostty/config.ghostty - $XDGCONFIGHOME/ghostty/config - ~/.config/ghostty/config.ghostty - ~/.config/ghostty/config - macOS Application Support paths documented by Ghostty

  1. Run the bundled converter:

``bash python3 scripts/convertghosttyto_termy.py SOURCE \ --output /tmp/termy-config.txt \ --report /tmp/termy-compatibility.json ``

  1. Read the generated config and report. Resolve unsupported or approximated

entries only when the user wants manual equivalents.

  1. 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.

  1. Validate structurally by rerunning the converter with --strict. If a Termy

binary or config validation command is available, validate with it too.

  1. 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.