Skip to content
The Liberation Engine

Set up your terminal / Lesson 1 of 1 · Setup

Set up Ghostty by changing only what bothers you

Install the Ghostty terminal, then let the agent turn ten minutes of your own notes into a settings file: Ghostty's defaults stay unless your notes show they fail you, it asks only the one question that could change the file most, and Ghostty itself checks every line.

What the agent made

Ran it for real with Claude Code 2.1.296 and OMP 18.10.3 on 2026-10-13. The first session started with no saved memory; each later session was a new one that kept only the files in the folder. Your result will differ.

1 · Start from the defaults, change what your notes prove

Then a brand-new session used what it saved on new input: see the proof.

The same prompts in OMP made their own versions, every session recorded and checked: Start from the defaults, change what your notes prove · Her answer changes one line, and the agent stops asking.

Make your own

  1. Install Ghostty

    Ghostty is a free terminal app for Mac (macOS 13 or later) and Linux; it has no Windows version. On a Mac, download it from the official page and drag it to Applications, or, if you already use Homebrew, run the command below. On Linux, install it from your distribution's packages. Open Ghostty, type pwd, and press Return: it prints the folder you are in. Use Ghostty as your terminal for the rest of this lesson.

    brew install --cask ghostty

    Download Ghostty (official) · Linux packages (official list)

  2. Get the files

    Download the practice folder (ZIP)

    Unzip it: you get a folder called cli-practice with 1 practice file. Download a fictional beginner's notes from her first ten minutes in Ghostty: six things she noticed, from text size to a friend's see-through window. It also has a for-later folder with the new files for the fresh sessions.

  3. Open your agent in that folder

    Open a terminal in cli-practice and type claude or omp --approval-mode always-ask. First time? Set up in about five minutes, with steps for Mac, Windows, and Linux.

  4. Paste this prompt

    Work only inside this practice folder. Read observations.txt without changing it: a fictional beginner's notes after her first ten minutes in the Ghostty terminal. Do not use the network, install anything, read or write outside this folder (including /tmp and any Ghostty settings in the home folder), or ask me to reply. You may run the installed Ghostty program only to read its built-in defaults, themes, and keyboard shortcuts and to validate the file you write. On a Mac it is /Applications/Ghostty.app/Contents/MacOS/ghostty; on Linux find it with command -v ghostty. If you cannot find it, say validation was not done and do not report success. Do not use em dashes or en dashes.
    Treat Ghostty's defaults as the starting guess that suits most people. For each note, decide one of three things: the default already does what she wants (write nothing, and tell her the keystroke or behavior), her notes give evidence the default fails her (write the smallest setting that fixes it), or there is no evidence either way (keep the default).
    Write only these files: config.ghostty, decisions.md, questions.md, check.py, setup.html.
    1. config.ghostty: only the settings her evidence supports, one per line, each with a comment line above it quoting the words from her notes it rests on. Use only themes Ghostty lists as built in (marked resources in ghostty +list-themes), never user themes.
    2. decisions.md: one entry per note: what she wants, Ghostty's default and the command you ran to read it, the evidence for a change or none, and your decision.
    3. questions.md: list the questions you could ask her next. For each, say which lines of config.ghostty each possible answer would change, and how likely that answer is given her notes, quoting the note that tells you. Ask only the one with the biggest expected change: an answer that is likely and changes a line beats one that is unlikely and changes many. Say what you will write for each answer.
    4. check.py, Python 3 standard library only, written independently of how you made the other files: it checks that every setting in config.ghostty has a comment quoting words that really appear in her notes (including answers.txt when present), that each claim in decisions.md that something is already a default matches what Ghostty itself reports, and it runs Ghostty's +validate-config --config-file=config.ghostty and prints that command with its exit status. Independently check that setup.html shows the same actual config keys and values, with their cited note and decision, and that its printed validation status agrees with the command you ran. It exits nonzero if any check fails or Ghostty is missing. python3 check.py --self-test adds a setting with no evidence to an in-memory copy of the config and changes one displayed setting value in an in-memory copy of the HTML; show that each is rejected, without changing any file.
    5. setup.html: one self-contained page a first-time terminal user can follow in 20 minutes: get Ghostty from ghostty.org (a person does this in a browser, not you), open it and type pwd, what each line of config.ghostty does and the note behind it, the defaults she does not need to change and how to use them, how to put the lines in place (in Ghostty on a Mac press Command and comma to open its settings file, back up anything already in it, paste the lines, save, then press Command, Shift, and comma to reload), and how to undo a line by deleting it. Quote the real validation command and its exit status. Show a compact, source-linked note to default to decision map, with each original note and the matching config line or built-in shortcut in ordinary HTML. A labeled note selector should show the exact observation and its decision in a visible evidence panel; with JavaScript off, the full note ledger and the config stay visible. Do not present undecided questions as settings she already chose. Design it like an approachable annotated field guide rather than a settings dashboard. Put all styles, scripts and data inline; no external assets, scripts, or network calls. Make it readable by keyboard and touch, with focus and reduced-motion support. At 390 pixels wide nothing scrolls sideways or splits a word; verify it at desktop width too.
    Run python3 check.py and python3 check.py --self-test, and report each command and its exit status in your final reply. Never claim Ghostty validation succeeded unless you actually ran it.

    The prompt asks the agent to stay in this folder; it cannot enforce that. Read each file change and command before you approve it.

  5. Check it yourself

    Open cli-practice/setup.html in your web browser (double-click it), then:

    Human check: Check config.ghostty line by line against the quoted note (no transparency, font family or shortcuts); check split-window and close-warning defaults against Ghostty. Run check.py and --self-test: validation 0 and tampered HTML/config rejected. In setup.html select a note to reveal its actual evidence and decision, then confirm six note entries and all config values remain visible without JavaScript. Check the first question concerns the untested laptop size.

    When we checked the recording above: Recorded exit 0, changed_inputs empty; isolated source copy: python3 check.py and --self-test exit 0, Ghostty validate-config exit 0, in-memory unsupported setting and HTML value rejected. Browser 390x844 and 1280x900: note 2 selection reveals exact glare evidence and sourced theme, no overflow, JS off shows all six notes, font-size 16, config and validation status; opaque sandbox interaction works. Screenshots /tmp/le-rollout-eyes/ghostty-first-terminal.

Then prove it: fresh sessions

Each run below is a brand-new session, recorded for real in Claude Code. It remembers nothing from the run before except the files saved in the folder, so the short prompt is the whole instruction.

2 · Her answer changes one line, and the agent stops asking

Before this run, copy the files from for-later/laptop in the ZIP into cli-practice: answers.txt.

Quit the agent, start it again in cli-practice, and paste only this:

Work only inside this practice folder. Maya answered your question: read answers.txt, which is new, along with observations.txt and the files you wrote last time. Do not change observations.txt or answers.txt. The same limits apply: no network, no installs, nothing read or written outside this folder (including /tmp and any Ghostty settings in the home folder), run the installed Ghostty program only to read its defaults and validate, do not ask me to reply, and do not use em dashes or en dashes.
Update config.ghostty, decisions.md, questions.md, check.py, and setup.html to follow the new evidence. Change only what her answer gives evidence for and keep everything else. A comment may now quote answers.txt as evidence. Keep the HTML note selector and complete no-script note ledger; show the old uncertain size alongside the tested laptop result and actual changed config line, citing answers.txt. Update the independent HTML/config comparison and in-memory --self-test if needed. At 390 pixels and desktop width, preserve phone fit, readable terms, focus and reduced-motion support, with no external assets.
Run python3 check.py and python3 check.py --self-test, and report each command and its exit status in your final reply.

Human check: Compare config.ghostty with the first run: only text size should change, justified by answers.txt. Run check.py and --self-test, confirming Ghostty validation exit 0 and the HTML value matches the config. Select the laptop note in setup.html and inspect the answer, then check the full baseline with JavaScript off. questions.md should say no question left could change a config line.

When we checked the recording: Recorded exit 0, changed_inputs empty; saved workdir: python3 check.py and --self-test exit 0, Ghostty validate-config exit 0, HTML config font-size 18 matches answers.txt. Browser 390 and 1280: note selection changes evidence, no overflow; JS off preserves original 16, tested 18, all six note decisions and answer quotation. Phone/desktop screenshots saved.

Do it for real

Spend ten minutes in Ghostty doing real work, then write down what bothered you, in your own words, one note per line, and what you tried (for example, how many times you pressed Command and plus). Run the same prompt on your notes instead of Maya's. Before you paste anything into Ghostty's settings file, back up what is already there; to undo, delete the line and reload.

Why an agent, not a chat window

A chat reply hands you a long list of popular settings. An agent reads what Ghostty itself says its defaults are, writes only the lines your notes give a reason for, runs Ghostty's own validator on the file, and writes a checker that fails if a line has no reason behind it.

Go deeper

Why the prompt is written this way

The recorded runs

ToolModelFirst run tookFiles madeSessions
Claude Code 2.1.296claude-opus-5-54 min 05 s5first session + 1 later
OMP 18.10.3not logged by this tool11 min 24 s5first session + 1 later

Claude Code chose Ghostty's built-in light theme and OMP chose built-in Modus Operandi for morning glare; both kept the dark default and changed the tested font size from 16 to 18 after the laptop reply. OMP's guide adds a copy-settings control, while both offer a selectable note-to-decision ledger.

Push it further