ghoztty

ghoztty is a skill for Claude Code from dzearing/ghoztty-claude-plugin. It costs 234 tokens per session (8,546 once invoked), scanned A, original, MIT.

A command-line tool for managing Ghoztty terminal windows and split panes through a local Unix socket. Ghoztty is a Ghostty-based terminal with controls for opening, arranging, renaming, and reading panes.

In plain words
What is it for?
Use it to open files or web pages in side panes, create layouts, list windows, rename targets, send keystrokes, and read terminal output.
Why use it?
It lets an agent control terminal layout and interact with other panes using stable names or IDs instead of manual window management.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: mentions subagents; mentions Claude Code.

Not installable: its command points at a path on the author’s own machine, so it runs nowhere else. The line is /Users/david/projects.

Part of the ghoztty plugin — 2 skills, 9 hooks shipped together

Good fit Use it to open files or web pages in side panes, create layouts, list windows, rename targets, send keystrokes, and read terminal output.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add dzearing/ghoztty-claude-plugin
Claude Code
/plugin install ghoztty

Made for: Claude Code.

Or install ghoztty, the plugin that ships this one along with the rest of its 2 skills, 9 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ghoztty

README.md
[![agentmods](https://agentmods.dev/badge/skills/dzearing/ghoztty-claude-plugin/ghoztty.svg)](https://agentmods.dev/skills/dzearing/ghoztty-claude-plugin/ghoztty)
Your own site
<a href="https://agentmods.dev/skills/dzearing/ghoztty-claude-plugin/ghoztty"><img src="https://agentmods.dev/badge/skills/dzearing/ghoztty-claude-plugin/ghoztty.svg" alt="Measured on agentmods" height="20"></a>
Per session 234 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 8,546 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00234 $0.08546
Opus 5 $0.00117 $0.04273
Sonnet 5 $0.00047 $0.01709
Haiku 4.5 $0.00023 $0.00855

Measured 7d ago against content hash eb8537342f72, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

ghoztty scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/ghoztty/SKILL.md · 712 lines

How it starts

The opening of the file, as written. The whole thing — 712 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Ghoztty CLI Reference

Ghoztty is a fork of Ghostty that adds CLI-driven window management over a Unix domain socket. All IPC commands are idempotent — named targets that already exist are focused instead of recreated.

Prerequisites

Before running any ghoztty commands, verify it's available:

command -v ghoztty

If not found, tell the user:

ghoztty not found. Install it from https://github.com/dzearing/ghoztty/releases and make sure it's in your PATH.

Do NOT proceed if ghoztty is unavailable.

Know where you are: $GHOZTTY_PANE_ID

Every pane bakes its own identity into its processes' environment. When you are running inside a Ghoztty pane, you already know which pane you are — do not call +list to figure it out.

Variable What it is
$GHOZTTY_PANE_ID This pane's stable id (a UUID). Accepted directly by every --target/--name/--pane with no prior registration or +list. Stable for the pane's whole life, across app relaunch and session restore.
$GHOZTTY_WINDOW_NAME The name of the window this pane is in, when it has one.
$GHOZTTY_IPC_SOCKET The IPC socket of the app instance that owns this pane. The CLI reads it automatically — you never pass it, but it is why commands reach this app (e.g. a debug build) rather than whichever build is on $PATH.

So "open a side pane here" is one command:

ghoztty +split --pane="$GHOZTTY_PANE_ID" --direction=right

Rules that follow from this:

  • Target your own pane explicitly. A bare +split goes to the most recently focused window — if the user clicks another window between their request and your command, the split lands in the wrong place. --pane="$GHOZTTY_PANE_ID" is immune to focus changes.
  • Do not pass --working-directory for a plain split. A new split inherits the parent pane's cwd. Passing your own cwd overrides it, and the two diverge as soon as the shell cds somewhere.
  • Do not call +list first. It is a wasted round trip when you only need your own pane, and it auto-registers every pane it walks. Use +list when you genuinely need to inspect other windows/panes.
  • Prefer the pane id over pid/tty matching: pids and ttys are per-machine and are meaningless for remote panes. (+list --tty=<tty> remains a fallback for a process that has no baked env, e.g. one started before its pane existed.)

Read the full file on GitHub · 712 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 7d ago First seen · 712 lines · 234 tokens per session scan A eb8537342f72

Subscribe to this mod's changes

ghoztty is a skill published in the GitHub repository dzearing/ghoztty-claude-plugin (2 stars, last pushed 1mo ago), licensed MIT. It adds 234 tokens to every session and 8,546 once invoked, about $0.0012 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.