npx agentspec-cli install 92785c11-6c18-49c5-9c1f-b14ad11eaee0 --framework ClaudeCode→ .claude/skills/kitten/SKILL.md
# Kitten Terminal Remote Control
Control your Kitty terminal windows directly from the agent. See what's running in every terminal, send commands, and manage windows.
## Quick Start: Get Oriented First
**Always start with `summary` to see all your terminals at a glance:**
```bash
python3 {{skill_dir}}/scripts/kitten_control.py summary
```
This gives you a complete markdown overview of ALL open terminals showing:
```
════════════════════════════════════════════════════════════════════════════════
## WINDOW 172 │ 🟡 ACTIVE │ ✅ READY │ 🐚 shell
════════════════════════════════════════════════════════════════════════════════
| Property | Value |
|----------|-------|
| **Window ID** | `172` |
| **Status** | ✅ READY - Can receive commands |
| **Process** | 🐚 shell |
| **CWD** | `/Users/me/workspace/myproject` |
| **Git Branch** | `main` |
| **Session Age** | 2d ago |
**Quick commands:**
- Send text: `send-text -w 172 -e "your command"`
- Send Ctrl+C: `send-key -w 172 ctrl+c`
```last 20 lines of terminal output...```
```
### What Summary Shows You
| Annotation | Meaning |
|------------|---------|
| **✅ READY** | Shell is at prompt, can receive commands |
| **⏳ BUSY** | Running a process, may need Ctrl+C first |
| **🐚 shell** | Idle shell |
| **🤖 agent** | AI agent (codex, claude, etc.) |
| **🔗 ssh** | SSH connection (shows target host) |
| **🔨 build** | Build process (make, npm, cargo) |
| **🌐 server** | Running server |
| **📝 editor** | vim, nvim, etc. |
| **Git Branch** | Current branch in that directory |
| **SSH Target** | Remote host for SSH sessions |
### Summary Options
```bash
# Default: 20 lines from each window
python3 {{skill_dir}}/scripts/kitten_control.py summary
# More context: 50 lines per window
python3 {{skill_dir}}/scripts/kitten_control.py summary -n 50
# Just last command output (cleaner)
python3 {{skill_dir}}/scripts/kitten_control.py summary -e last_cmd_output
# Full scrollback (large output)
python3 {{skill_dir}}/scripts/kitten_control.py summary -e all -n 100
```
---
## Interacting With Windows
Once you've identified a window from the summary, use its **Window ID** to interact:
### Send Commands
```bash
# Send a command and press Enter
python3 {{skill_dir}}/scripts/kitten_control.py send-text -w 172 -e "git status"
# Send text without Enter
python3 {{skill_dir}}/scripts/kitten_control.py send-text -w 172 "partial text"
# Send Ctrl+C to interrupt
python3 {{skill_dir}}/scripts/kitten_control.py send-key -w 172 ctrl+c
# Send other keys: escape, enter, tab, up, down, ctrl+d, etc.
python3 {{skill_dir}}/scripts/kitten_control.py send-key -w 172 escape
```
### Read Output
```bash
# Get current screen content
python3 {{skill_dir}}/scripts/kitten_control.py get-text -w 172
# Get last command's output (cleanest)
python3 {{skill_dir}}/scripts/kitten_control.py get-text -w 172 -e last_cmd_output
# Get full scrollback
python3 {{skill_dir}}/scripts/kitten_control.py get-text -w 172 -e all
```
### Window Management
```bash
# Focus a window
python3 {{skill_dir}}/scripts/kitten_control.py focus -w 172
# Close a window
python3 {{skill_dir}}/scripts/kitten_control.py close -w 172
# Launch new window in specific directory
python3 {{skill_dir}}/scripts/kitten_control.py launch --cwd /path/to/project
# Launch new tab with title
python3 {{skill_dir}}/scripts/kitten_control.py launch --type tab --title "Build"
```
---
## Common Workflows
### Check on a build/process
```bash
# 1. Get summary to find the window
python3 {{skill_dir}}/scripts/kitten_control.py summary -n 10
# 2. Found window 236 running a build, get its output
python3 {{skill_dir}}/scripts/kitten_control.py get-text -w 236 -e last_cmd_output
```
### Run a command in an existing shell
```bash
# 1. Find a READY shell from summary
python3 {{skill_dir}}/scripts/kitten_control.py summary -n 5
# 2. Window 172 is ✅ READY, send command
python3 {{skill_dir}}/scripts/kitten_control.py send-text -w 172 -e "make test"
# 3. Check the result
python3 {{skill_dir}}/scripts/kitten_control.py get-text -w 172 -e last_cmd_output
```
### Stop a runaway process
```bash
# Send Ctrl+C
python3 {{skill_dir}}/scripts/kitten_control.py send-key -w 236 ctrl+c
# Or send SIGINT signal
python3 {{skill_dir}}/scripts/kitten_control.py signal -w 236 SIGINT
```
---
## Requirements
- Kitty terminal with `allow_remote_control yes` in kitty.conf
- The `kitten` command in PATH (comes with Kitty)
Built on the Agent Skills standard
tmux
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
by AgentHub Crawler
browser
Automate browser interactions using agent-browser CLI — navigate, click, fill forms, scrape content, take screenshots, and more.
by AgentHub Crawler
af
Agent Farm CLI quick reference. Use when running af commands to check correct syntax, subcommands, and flags. Prevents guessing at command names.
by AgentHub Crawler
Sign in to leave a comment.
Terminal.Gui - Windsurf AI Rules
> **Cross-platform .NET console UI toolkit. C# 14 targeting net10.0.** > Full contribution guide: [CONTRIBUTING.md](CONTRIBUTING.md).
by AgentHub Crawler