tty7 skill

The tty7 skill teaches Claude Code and Codex to drive tty7 terminal panes: run commands in a real PTY, read the screen and hand work to another agent

  • 1,373 ★ on the repository
  • Last commit
  • Apache-2.0
Skill

Broad access

Why this level

  • The skill lets an agent send text and keystrokes to any pane, so it can run commands in other sessions
  • The client reads the screen of other panes, including ssh sessions
  • A background server keeps shells and remote connections alive after the window closes
All reasons and checks

l0ng-ai/tty7

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/tty7

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The skill lets an agent send text and keystrokes to any pane, so it can run commands in other sessions
  • The client reads the screen of other panes, including ssh sessions
  • A background server keeps shells and remote connections alive after the window closes

This is third-party code. Review the repository files before installing.

What it does

tty7 is a terminal written in Rust with GPU rendering. A background server owns the shells and panes, so sessions outlive the app. A skill of the same name ships beside it. It documents the tty7 command-line client: the agent lists workspaces, tabs and panes and splits a pane with `split`. It sends text and keystrokes with `send` and captures what is on the screen with `capture`. `tty7 run` starts a program in a real PTY, streams output to stdout and exits with the program's own code. For long or interactive jobs such as a dev server, a REPL, ssh or a TUI, the agent does not have to block its own Bash. `wait` blocks until a pane is free or needs input, and `procs` shows processes and listening ports. The headline use is handing a task to another agent. One agent opens a pane for a second, sends it the assignment, waits and reads the result, and the app window need not be running. Panes are addressed as %42 and tabs as @7. The skill says to run `tty7 doctor` first and never to start the server unless the user asks.

Who it is for. For developers who run several agents in tty7 and want Claude Code or Codex to open panes, wait and read results on their own.

Good fit when

  • Claude Code must start a dev server or an ssh session without blocking its Bash call
  • You want to hand a subtask to Codex in the next pane and get its answer back
  • An agent needs to see what another pane prints and which ports it listens on
  • A program behaves differently without a terminal and has to run in a real PTY with an exit code
  • Several agents work in parallel on different repositories and their results must be merged

Not a fit when

  • You do not use the tty7 terminal: the skill does nothing without its server
  • The job is one ordinary command with no terminal and no viewers: Bash is enough
  • Policy forbids agents from sending keystrokes and text to other terminals on the machine
  • You only want a list of running agents and do not need to control panes

Example request

Start the dev server in a neighboring tty7 pane, wait for it to come up and tell me which port it listens on

Limitations

  • The skill works only with the tty7 terminal and its server. App installers are on the Releases page: dmg for macOS, setup.exe or zip for Windows, AppImage for Linux.
  • Outside a tty7 pane the target address must be named explicitly, or commands report an error.
  • A tab id like @7 shifts when tabs appear or disappear, so it must be re-read before use.
  • For `tty7 wait` to see another agent's status, its integration hooks must be installed in settings, otherwise the wait ends on a timeout.
  • Status and resume work for only some of the 28 detected agents.

How to disable. Remove the skill from your agent's skills directory. Uninstall the tty7 app the usual way for your OS, and turn agent hooks off in Settings, Integrations.

FAQ

How do I install the tty7 skill in Claude Code?

Run npx skills add l0ng-ai/tty7, and update later with npx skills update tty7. The tty7 terminal itself is installed separately from the repository's Releases page.

How does tty7 replace tmux?

A background server owns shells and panes, so sessions keep running after the window closes, and after a reboot the layout, screen and supported agent conversations come back. No separate tmux is needed.

How can one agent hand a task to another?

Through the tty7 client: the agent opens a pane for the second agent, sends the assignment with `send`, waits with `wait` and reads the result with `capture`. The exact order is in references/delegation.md inside the skill.

Which agents does tty7 support?

It detects 28 agents, among them Claude Code, Codex, OpenCode, Goose, Gemini, Copilot, Cursor and Amp. Status, notifications and resume after reboot come from installing a hook in Settings, Integrations.

What does `tty7 doctor` do?

One table shows whether the server is reachable, whether the protocol version matches, whether agent hooks are installed and whether TTY7_CONFIG_DIR, TTY7_WS and TTY7_PANE are set, that is, whether you are inside a tty7 pane.

Discussion

No questions or reviews yet.

Skills

A mirror of Lauren Tan's pstack set from Cursor: over 50 skills, the poteto-mode with 23 playbooks and 24 principles for strict agent work on code

SkillBroad access3.1KRepository stars

A desktop and browser workspace for parallel Claude Code, Codex and OpenCode sessions in separate git worktrees

CLIBroad access314Repository stars

A terminal multiplexer built for coding agents: keeps Claude Code, Codex and Cursor sessions running after you disconnect and combines several machines in one w

CLIExtended access46.6KRepository stars

A Python terminal coding agent in the manner of Claude Code: reads the repository, edits files, runs commands, with memory, sub-agents and MCP

CLIBroad access1KRepository stars

A tool and skill that let Claude Code hand tasks to Claude, Codex or OpenCode subagents in separate Git worktrees

CLIBroad access337Repository stars

A coding agent for the terminal and desktop: it does not count "done" without tests or a diff and works with DeepSeek, GLM, Kimi, Claude, Codex and Gemini

CLIBroad access1.2KRepository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialRepository starsMain difference
tty7 (this entry)no1,373
cmuxno28,603a macOS-only terminal on Ghostty with vertical tabs and notifications, with no client for handing tasks between agents
AI Maestrono839a dashboard for agents across machines, with no terminal of persistent sessions

README in short

The project page opens with six reasons to choose tty7: rendering speed, persistent sessions, agent awareness, scripting by agents, editor-grade input and remote development over SSH. It then gives links to installer packages, a feature table, a matrix of 28 detected agents with status, fork and past-session marks, the skill install command and a speed comparison with other terminals. The author dates the measurements and gives a way to reproduce them.

README badge

Original SKILL.md

---
name: tty7
description: >-
  Drive the tty7 terminal workbench from the shell with the `tty7` binary — list workspaces/tabs/panes, split a pane, send text or keystrokes into one, capture what is on a pane's screen, run a command in a real PTY and pass its exit code through, run a command in a shell pane you already have and get back its output and exit code, block until a pane finishes or needs input, see which coding agents are running and which ports a pane is listening on. Use this whenever tty7, panes, workspaces, or `%42`/`@7`/"the other pane"/"the other agent" come up; whenever you want to hand work to another agent and collect the result ("get Claude/Codex to do X", "派个活", "let another agent handle this", running several agents in parallel and merging what they produce); whenever you need to start something long-running or interactive (dev server, REPL, ssh session, `tail -f`, a TUI) that should not sit blocking your Bash tool; whenever a program needs a real terminal to behave the way the user sees it; and whenever you need to look at or report on what is running in some *other* terminal on this machine. Cheap to check: if `$TTY7_PANE` is set you are already inside tty7 and every command here works with no setup.
---

# Driving tty7 from the command line

`tty7` is a thin, non-interactive client of the tty7 server. Every verb returns
and exits; `--json` makes the output machine-readable. The GUI never has to be
running — the server is what owns the panes.

## First: where are you?

```bash
tty7 doctor
```

One table, and it answers everything you need before doing anything else:
whether a server is reachable, whether the dialect matches, whether each agent's
status hooks are installed, and whether `TTY7_CONFIG_DIR` / `TTY7_WS` /
`TTY7_PANE` are set — i.e. whether you are running *inside* a tty7 pane.

Being inside a pane matters for two reasons: the address-taking verbs
(`split`, `send`, `exec`, `capture`, `procs`, `wait`, `pane close`) default to
`$TTY7_PANE`, and `run --keep` files its pane into `$TTY7_WS`. Outside a tty7
shell you must name a target explicitly, and the error will say so rather than
guessing.

The hooks row matters if you intend to delegate to another agent: without them
an agent reports no status, so `tty7 wait` on it will only ever time out.

If `tty7 doctor` says the server is unreachable, stop and tell the user — do
not run `tty7 server start` on your own initiative. Starting a server they
didn't ask for changes what their GUI attaches to.

## What are you here to do?

Four jobs, four shapes:

1. **Run something that shouldn't block you or needs a real TTY** — a dev
   server, a long test run, a TUI. [Running a command](#running-a-command-two-shapes).
2. **Talk to something stateful over time** — a REPL, `ssh`, a debugger.
   Same primitives: [send](#non-blocking-a-pane-you-talk-to-over-time),
   [read](#reading-a-pane), repeat.
3. **Look at what this machine is doing** — other panes, other agents, ports.
   [Looking around](#looking-around), strictly read-only.
4. **Hand work to another coding agent** — one worker or a fan-out of several.
   Read `references/delegation.md` first; the short version is
   [below](#handing-work-to-another-agent).

The Bash tool remains right for anything that starts, does its job, and exits
without needing a terminal or an audience. A pane earns its keep when the
process outlives your turn, needs a real PTY, or should be visible to the user
in their tty7 window — that last one is often the whole point.

Report a problem

Foxx AItty7
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.