semos-labs/attyx/attyx
Claude Code and agent skill by semos-labs/attyx
- community
Checking that the SKILL.md file is still in the repository.
Control the Attyx terminal via IPC — manage splits, send input, read output, track and watch agent status, orchestrate panes. Use when the user asks to interact with terminal panes, run commands in splits, monitor AI agents running in panes, or coordinate multi-pane workflows.
Install
npx vskill@latest install semos-labs/attyx/attyxSKILL.md
Attyx Terminal IPC Skill
You are running inside Attyx, a terminal emulator with a full IPC interface. You can control it programmatically.
Identifying Panes — Stable IPC IDs
Every pane has a stable numeric ID that never changes once assigned, even when other panes are closed. IDs are monotonically increasing integers (1, 2, 3, ...).
How to find your own pane
Run attyx list splits — the pane marked with * is the active/focused pane (the one you're running in):
Or attyx list for the full tree with tab context:
Tracking newly created panes
When you create a tab or split, the command returns the new pane's ID:
Always capture this output so you can target the pane later without guessing:
Waiting for Commands (--wait)
tab create and split support --wait to block until the spawned command exits (requires --cmd):
The response is the process exit code (first byte) followed by captured stdout. Useful for scripting:
Don't confuse titles with identity
Multiple panes can have the same title (e.g. two bash panes). Never rely on title matching to find a specific pane. Always use IDs from attyx list or captured from creation.
Session Management
Sessions are independent workspaces, each with their own tabs and panes. They persist across window reconnects.
Creating Sessions
Session-Targeted Commands
Use -s/--session <id> to route any command to a specific session:
When -s is omitted, commands target the currently attached session.
Other Session Commands
Critical Rules
Always Pin Your Session
The user can switch sessions at any time. If you send commands without -s, they'll hit whatever session is currently focused — which may not be yours.
At the start of every interaction, discover your session and pane IDs and use them for all subsequent commands:
Never omit `-s` after the initial discovery. Even if you think you're still in the same session, always be explicit — the user may have switched focus between your commands.
Don't Close Yourself
Before closing a pane, use targeted close with --pane / -p:
This closes the specified pane/tab without changing focus. Plain attyx split close (no target) closes the focused pane — which is YOU.
Named Keys — Use {Enter}, Not \n
send-keys supports {KeyName} syntax (case-insensitive) for all special keys:
Full key reference:
| Key | Name(s) | |
|---|---|---|
| Enter | {Enter}, {Return}, {CR} | |
| Tab | {Tab} | |
| Space | {Space} | |
| Escape | {Escape}, {Esc} | |
| Backspace | {Backspace}, {BS} | |
| Delete | {Delete}, {Del} | |
| Insert | {Insert}, {Ins} | |
| Arrows | {Up}, {Down}, {Left}, {Right} | |
| Page | {PgUp}, {PgDn}, {PageUp}, {PageDown} | |
| Home/End | {Home}, {End} | |
| Function | {F1} through {F12} | |
| Ctrl+key | {Ctrl-a} through {Ctrl-z} |
Modifier combos — prefixes are combinable (Ctrl-, Shift-, Alt-, Super-):
| Combo | Example | Use case | |
|---|---|---|---|
| Ctrl+Arrow | {Ctrl-Right} | Word jump in shells | |
| Alt+letter | {Alt-a} | Alt shortcuts in TUIs | |
| Shift+Tab | {Shift-Tab} | Reverse tab / backtab | |
| Ctrl+Shift | {Ctrl-Shift-p} | Command palettes (CSI u) | |
| Shift+F-key | {Shift-F5} | Modified function keys | |
| Ctrl+Delete | {Ctrl-Delete} | Delete word forward |
C-style escapes (\r, \t, \xHH, \e) also work but named keys are preferred for clarity.
Navigating TUI Applications
When interacting with interactive programs (menus, prompts, fzf, editors, etc.):
- Read the screen first — use
attyx get-text -p <id>to see what's displayed - Navigate with arrow keys —
{Up},{Down}to move through lists/menus - Select with Enter —
{Enter}to confirm a selection - Type to filter — many TUIs support typing to search/filter
- Use Tab for completion —
{Tab}cycles through options in shells and some TUIs - Cancel/back with Escape —
{Escape}to dismiss dialogs or go back - Read again after each action — always
get-textto verify the result
Example: navigating a numbered list and selecting item 3:
Example: scrolling down in a TUI and selecting:
Example: searching in fzf-style interface:
Example: vim/editor interaction:
Reading Scrollback History — --lines / -n
By default get-text returns only the visible screen. To capture more (like tail -N over the pane's scrollback + screen), pass --lines N / -n N:
The count is clamped to the pane's available scrollback depth. Use this when a long-running command's output has scrolled off-screen, or when you need to inspect history beyond the current viewport.
Incremental Capture — --since <cursor>
When babysitting a long-running pane (a build, a test loop, another agent), don't re-read the whole screen every poll. --since returns only the rows produced since your last read, so a quiet pane returns nothing. Each read prints the next cursor (an opaque token) to stderr; pass it back next time. An empty/omitted token (--since "") seeds: it returns the current screen and a starting cursor.
The cleaner path for agents is --json, which returns everything in one object:
Feed cursor back as the next --since. truncated: true means output scrolled past the retained scrollback between reads (read more often, or raise --scrollback-lines). reset: true means the layout changed (resize, clear, or alt-screen) and text is a fresh baseline, not a delta. Semantics are append-only (new scrolled output) — for a full-screen TUI that redraws in place, use plain get-text instead. Cursors are per-pane; don't reuse one across panes.
Reading Output — Use --wait-stable
Instead of blind sleep N && attyx get-text, use --wait-stable to send keys and automatically wait for output to settle:
--wait-stable [ms] sends the keys, then polls get-text every 50ms until screen content is unchanged for ms milliseconds (default 300). The final screen content is printed to stdout. Hard timeout at 30s.
For quick commands where you don't need the output, plain send-keys without --wait-stable is fine. Use --wait-stable when you need to read the result.
Pane Targeting (Preferred)
Almost all commands support --pane (-p) to target any pane by its stable ID:
Pane IDs are flat integers shown in attyx list output. This avoids focus juggling and is the recommended approach.
Focus Management (Legacy)
Without --pane, send-keys and get-text operate on the focused pane:
attyx focus <direction>to switch to it- Do your
send-keys/get-text - Focus back if needed
Tracking Agents — Status & Watching
Attyx tracks the run state of AI agents (Claude Code, Codex, etc.) running inside panes. An agent reports one of four states:
| State | Meaning | |
|---|---|---|
idle | Parked, waiting for the next prompt | |
working | Actively processing a request | |
input | Blocked on you (a permission prompt or question) | |
none | No agent running, or the agent's session ended |
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/claude/attyx/SKILL.md
Popularity
- Repository stars
- 239
- Repository forks
- 9
- 7-day trend score
- 27
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/semos-labs/attyx/attyx)