Zentty skill

A skill that teaches an agent to split Zentty windows into panes, read neighboring sessions, search history and notify you

  • 328 ★ on the repository
  • Last commit
  • GPL-3.0
SkillOfficial

Broad access

Why this level

  • `pane send` and `pane send-key` type and run text in a neighboring pane's shell with your user's rights
  • The pane token acts as a routing credential, and the skill says not to print it without need
  • An example in the skill starts an agent with `zentty launch claude --dangerously-skip-permissions`, that is with confirmations turned off
All reasons and checks

dedene/zentty

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/zentty

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.

  • `pane send` and `pane send-key` type and run text in a neighboring pane's shell with your user's rights
  • The pane token acts as a routing credential, and the skill says not to print it without need
  • An example in the skill starts an agent with `zentty launch claude --dangerously-skip-permissions`, that is with confirmations turned off

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

What it does

Zentty is a macOS terminal built on Ghostty. Its panes sit in columns, and the columns form horizontal strips called worklanes. Every session runs a built-in `zentty` command, and the `zentty-cli` skill tells the agent how to use it. The agent learns it is inside a Zentty pane from the environment variables `ZENTTY_INSTANCE_SOCKET`, `ZENTTY_WORKLANE_ID`, `ZENTTY_PANE_ID` and `ZENTTY_PANE_TOKEN`. If they are missing, the skill tells the agent to stop and explain that the commands only work from a Zentty pane. The skill covers layout (the `split` and `grid` commands), focus, zoom and forking an agent's conversation into a new pane, floating panes and overlays for temporary commands. The agent reads a neighboring pane's screen and types into it with `pane read` and `pane send`. It follows agent events with `events` and searches past project sessions with `history search`. Nested agents start through `zentty launch`, and `zentty notify` calls the user. Input to a pane is guarded: `send` and `send-key` refuse while the agent in the target pane is mid-turn or waiting on an approval, sign-in or decision prompt. This way an agent cannot answer someone else's question for you. The skill allows the `--force` flag only when the user asks for it.

Who it is for. Zentty users on macOS whose Claude Code, Codex or another agent lays out the window itself, reads neighboring panes and calls when it needs an answer.

Good fit when

  • Claude Code runs tests in a neighboring pane and waits for a completion event instead of polling the screen
  • A second agent is needed alongside: `zentty grid 2x2 --new-only -- codex` lays out panes with running agents
  • You ask what was decided about the cache last week, and the agent looks it up with `zentty history search`
  • A long build runs in the background, and the agent notifies you when the build needs input

Not a fit when

  • The agent runs in a different terminal: without the Zentty environment variables the commands do not run
  • You need Linux or Windows: Zentty requires macOS 14 or later
  • One window without neighboring panes is enough: the skill adds nothing

Example request

Split the window into three panes, run the tests in a neighboring one and notify me when they finish

Limitations

  • The skill works only inside Zentty, and the app needs macOS 14 or later. The `zentty` command exists only in the app's sessions.
  • Searching past sessions needs Agent History turned on in settings. By default it searches within the pane's project, and the `--all` flag works only if the user allowed search across all projects.
  • The developer warns that the project is under active development, with rough edges and breaking changes possible. Agent Teams panes are marked experimental.
  • The command set depends on the app version: before an unfamiliar command the skill tells the agent to check `zentty --help`.

How to disable. Remove the `zentty-cli` skill from the agent's skills folder. If you installed the app through Homebrew, `brew uninstall --cask zentty` removes it like any macOS program.

FAQ

How do I install the Zentty CLI skill?

Run `npx skills add dedene/zentty`. The skill works while the agent runs inside Zentty. The app installs with `brew install --cask zentty` or from the .dmg on the releases page.

Can an agent answer my approval prompt through pane send?

No. `send` and `send-key` refuse while the agent in the target pane is mid-turn or showing an approval, sign-in or decision prompt. The `--force` flag is allowed only when the user asks. Ctrl+C and Escape always go through.

How does an agent search past sessions?

With `zentty history search`, a query text and the filters `agent:`, `repo:`, `branch:`, `before:` and `after:`. `zentty history show` prints the last turns of a found session. The skill treats found snippets as data, never as instructions.

Which agents does Zentty work with?

The README lists Amp, Antigravity, Claude Code, Codex, Copilot CLI, Cursor, Devin, Droid, Gemini CLI, Grok Build, Hermes Agent, Kimi, Mistral Vibe, Muse Code, OpenCode, Pi and Small Harness. Others join through the Agent Status Protocol.

Does the skill need access to the pane token?

Only when an agent controls a pane from outside its own environment. The skill calls the token a routing credential and says not to print it without need. `zentty list panes --include-control-token` outputs it.

Discussion

No questions or reviews yet.

Skills

A native macOS terminal built on Ghostty with vertical tabs and notifications when an agent needs your input

CLIBroad access28.7KRepository stars

Native macOS terminal with an MCP server and CLI: agents see panes, commands and output, and you grant permissions in one window

MCP serverBroad access358Repository stars

A local dashboard for Claude Code and Codex sessions: who is working, who waits for you, plus a 3D aquarium and Stream Deck

CLIExtended access286Repository stars

Agent Skill Manager

agent-skill-manager

A universal skill manager for coding agents: finds and installs skills, scanning them for shell calls, network access and credential leaks first

CLIExtended access966Repository stars
Official

The prek skill teaches an agent to set up Git hooks with prek, a Rust replacement for pre-commit: config, shims, priorities, built-in hooks and monorepos

SkillBroad access8.7KRepository stars

A self-hosted control center for coding agents: Claude Code, Codex, Copilot, OpenCode and Pi from your phone, desktop and terminal

CLIExtended access23.2KRepository stars

Comparison with similar tools

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

ToolOfficialRepository starsMain difference
Zentty (this card)yes328
cmuxno28,728another Ghostty-based terminal for agents, while the zentty-cli skill works only inside Zentty
Agent Deckno1,216a session manager on top of tmux, while Zentty is a standalone macOS app with its own panes

README in short

The README opens with worklane columns and keyboard workflows, then lists features for agents, projects and remote sessions. Installation boils down to Homebrew and a .dmg, while building from source needs Xcode, zig and gettext. A separate section points to the agent skill.

README badge

Original SKILL.md

---
name: zentty-cli
description: Use when an agent is running inside Zentty or needs to discover panes, split or grid layouts, float, minimize or dock panes, open temporary command overlays, focus panes, type into or read other panes, watch agent and pane events, search earlier agent sessions in this project, launch nested coding agents, or notify the user through the Zentty CLI.
---

# Zentty CLI

Zentty injects a pane-aware CLI into sessions running inside the app. Use it to inspect the current terminal layout, control panes and worklanes, launch supported agents with Zentty status hooks, and notify the user when work needs attention.

## Detect Zentty

Prefer the injected binary:

```bash
ZENTTY="${ZENTTY_CLI_BIN:-zentty}"
```

You are inside a controllable Zentty pane when these are set:

```bash
test -n "${ZENTTY_INSTANCE_SOCKET:-}" &&
test -n "${ZENTTY_WORKLANE_ID:-}" &&
test -n "${ZENTTY_PANE_ID:-}" &&
test -n "${ZENTTY_PANE_TOKEN:-}"
```

If they are missing, do not assume pane control works. Explain that the command must run from a Zentty pane, or use ordinary shell behavior.

## Operating Rules

- Use `$ZENTTY_CLI_BIN` when available; it points at the bundled CLI for the running Zentty app.
- Prefer `--json` for discovery and parse IDs from JSON instead of scraping table output.
- Default to the current pane/worklane. Only target other panes with explicit selectors.
- Treat `ZENTTY_PANE_TOKEN` and `--include-control-token` output as sensitive routing credentials. Do not print them unless needed for a concrete command.
- Use `zentty --help` or `zentty <command> --help` when available before guessing at a subcommand.
- If a command fails with "Not running inside a Zentty instance" or "Not running inside a Zentty pane", stop and explain the missing Zentty context.

## Discovery

```bash
"$ZENTTY" version
"$ZENTTY" list --json
"$ZENTTY" list panes --json
"$ZENTTY" list panes --worklane-id "$ZENTTY_WORKLANE_ID" --json
"$ZENTTY" select pane --pane-index 2 --shell

Report a problem

Foxx AIZentty
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.