tty-fork
Start a fresh or forked OMP session in a right or below split, or a new tab, in tty7, Herdr, or Tern.
Skill by ahstn
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/ahstn-tty-fork
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/tty-fork
What's inside
- Skill name
tty-fork- Description
- Start a fresh or forked OMP session in a right or below split, or a new tab, in tty7, Herdr, or Tern. Use only when the user explicitly invokes /tty-fork.
- License
- MIT
- Instructions
- 57 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# tty-fork
Run only after an explicit `/tty-fork` invocation. Do not trigger this skill for an ordinary request to fork or open a terminal.
## Arguments
Read `$ARGUMENTS` as `[new|fork] [vsplit|hsplit|split|tab]`:
- No arguments: `new split`.
- One `new` or `fork` argument: use that behavior and the default placement `split`.
- One placement argument: use `new` with that placement.
- Two arguments: behavior first, placement second. Reject extra or invalid values before any terminal change.
- `split` means `vsplit`: open the new pane on the right. `hsplit` opens it below. `tab` opens a new tab.
## Session behavior
Use the active OMP working directory and the same OMP executable as the parent. Get the cwd from current OMP session context, not the terminal's `$PWD`. If it is unavailable or inaccessible, ask before creating a destination.
Before creating a destination, confirm that its shell accepts POSIX command syntax. Check the configured shell; if the destination shell is unknown or differs, ask before sending text.
- `new` starts a fresh, persistent OMP session without the current transcript. Run `omp --session-dir "<effective-session-root>"` with the active profile/config when available; this explicit session directory prevents `autoResume` from attaching an older transcript. For the default setup, use `$PI_CODING_AGENT_DIR/sessions`, or `$HOME/.omp/agent/sessions` when that variable is unset. Do not pass `--resume`, `--continue`, or `--fork`, and do not use `--no-session`. If a custom profile or session directory is active and its value is not available, ask rather than start in a different store.
- `fork` starts an independent OMP session from the current persisted transcript. Get its path from active OMP session context. If the path is not exposed there, use the OMP eval tool's `env("PI_SESSION_FILE")`; OMP injects this variable into managed eval kernels, but not necessarily into the terminal shell. Verify that it exists and belongs to this session. Never guess from the newest file in a directory. Flush pending session writes, then run the current OMP CLI with `--fork <path>`, not `--resume`. The parent must keep running. If the path is unavailable, ask before creating a pane or tab.
- Before a fork, require a persisted transcript. Do not fork during vibe mode or with a CLI `--api-key` override. Preserve the active cwd, profile, model/thinking, config and session directories, XDG directories, and prompt-cache key when available; omit one-shot prompts and goals, and never pass API keys. Refuse a fork when the destination cannot access the source transcript.
## Select the multiplexer
Require exactly one matching environment marker and its CLI. Do not infer the multiplexer from `TERM_PROGRAM`, terminal titles, or the installed binaries alone. If markers conflict or the CLI cannot address the current pane, stop without changing the layout.
### tty7
Use `TTY7` as the version marker and `TTY7_PANE` as the current pane ID. Require `tty7` on `PATH`. Refuse to fork from a remote tty7 pane.
- Right split (`split` or `vsplit`): `tty7 split --horizontal --json`.
- Below split (`hsplit`): `tty7 split --vertical --json`.
- Tab: `tty7 tab new --cwd "<active-omp-cwd>" --json`.
Read the new pane ID from the JSON response. A split inherits the source pane's cwd; if it differs from the active OMP cwd, begin the child command with a quoted `cd` to the active OMP cwd. For `wait` and `send`, prefix the pane ID with `%` only if it does not already have that prefix. Wait for its shell with `tty7 wait %<pane-id> --until free --timeout 15`, then send the OMP command once with `tty7 send %<pane-id> "<command>" --paste --enter`. `--paste` avoids slow per-character typing. Use the session ID instead of a path when possible; otherwise quote the path for the destination shell.
### Herdr
Require `HERDR_ENV=1`, `HERDR_PANE_ID`, and `herdr` on `PATH`. If the Herdr skill is not already loaded, read and follow `herdr --skill` before control commands.
- Right split (`split` or `vsplit`): `herdr pane split --current --direction right --cwd "<active-omp-cwd>"`.
- Below split (`hsplit`): use `--direction down`.
- Tab: `herdr tab create --cwd "<active-omp-cwd>"`.
Read the new pane ID from `.result.pane.pane_id` or `.result.root_pane.pane_id`. Start the child with `herdr pane run <pane-id> "<command>"`.
### Tern
Require numeric `TERN_PANE`, `TERN_PANE_SOCKET`, and `tern` on `PATH`. `TERN_COMPLETE` is not a pane or session identifier. If either pane variable is missing, use a read-only current-context command only if installed help documents one and its output identifies this pane; otherwise stop.
Read `tern --help` and the installed help for its split/open commands before changing layout; their syntax depends on the Tern version. Use the documented right/down split for `vsplit`/`hsplit`, or its new-terminal tab operation for `tab`; set the active OMP cwd if supported. Launch `omp` or `omp --fork <id-or-path>` through the CLI's documented command option, targeted at the created terminal. If the CLI cannot set the cwd, prepend a quoted `cd` in the new shell. If the installed CLI cannot target the current pane and launch the command in the new terminal, stop and report that limitation. Do not guess flags or send the OMP command to an agent prompt.
## Finish
Create one destination, read its returned ID, wait for its shell if supported, and launch once. Check that the new terminal runs OMP. If a command times out or returns an error after creation, inspect that destination before retrying; do not duplicate the child session.From ahstn/dotfiles, MIT.
More from ahstn/dotfiles
- 0.609score
kubes-mode-v2
ahstn
Personal working mode for software engineering tasks.
SkillAFreshness: A★ 3Claude Code +9 - 0.609score
jira-manager
Jira skill maintainers
Use this skill for all Jira workflows: create epics and issues, transition tickets, add comments, search with JQL, and manage the backlog.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
code-review-and-quality
ahstn
Reviews staged or unstaged diffs, branches, and GitHub pull requests for defects and material code-health costs.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
computer-use-cua-driver
ahstn
Operate native macOS, Windows, or Linux GUI applications with Cua Driver through an available MCP connection or the installed CLI.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
github-librarian
ahstn
Use when looking up GitHub repositories, upstream source, or library internals, either via quick `gh search` queries or by cloning into ~/.cache/github/ for…
SkillAFreshness: A★ 3Claude Code +9 - 0.603score
slack-message
ahstn
Rules for sending Slack messages and reference request payloads.
SkillAFreshness: A★ 3Claude Code +9 - 0.560score
kubes-mode
ahstn
No description from the publisher yet.
SkillAFreshness: A★ 3Claude Code +9 - 0.557score
personality
ahstn
Draft, edit, or review professional writing in the user's conversational engineering voice.
SkillBFreshness: B★ 3Claude Code +9 - 0.534score
github-yeet
OpenAI
Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request
SkillAFreshness: A★ 3Claude Code +9 - 0.514score
code-structure-and-modularity
ahstn
Code structure and module-boundary rubric for writing, extending, reviewing, or reorganizing code.
SkillCFreshness: C★ 3Claude Code +9 - 0.486score
wayfinder
ahstn
Plan a huge chunk of work — more than one agent session can hold — as a shared map of investigation tickets on your issue tracker, and resolve them one at a…
SkillCFreshness: C★ 3Claude Code +9 - 0.484score
grill
ahstn
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree.
SkillCFreshness: C★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 18, 2026 (11 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/ahstn/dotfiles
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ahstn
- 0.609score
kubes-mode-v2
ahstn
Personal working mode for software engineering tasks.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
computer-use-cua-driver
ahstn
Operate native macOS, Windows, or Linux GUI applications with Cua Driver through an available MCP connection or the installed CLI.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
code-review-and-quality
ahstn
Reviews staged or unstaged diffs, branches, and GitHub pull requests for defects and material code-health costs.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
github-librarian
ahstn
Use when looking up GitHub repositories, upstream source, or library internals, either via quick `gh search` queries or by cloning into ~/.cache/github/ for…
SkillAFreshness: A★ 3Claude Code +9 - 0.603score
slack-message
ahstn
Rules for sending Slack messages and reference request payloads.
SkillAFreshness: A★ 3Claude Code +9 - 0.560score
kubes-mode
ahstn
No description from the publisher yet.
SkillAFreshness: A★ 3Claude Code +9
Cite this page
tty-fork skill. Agent Mart. https://agentmart.dev/skills/ahstn-tty-fork (last updated 2026-10-24)