Git Worktree Setup
k8zdev/k8z
Automate git worktree creation and copy private files (not tracked in git) to new workdirs.
Use the Liney CLI (liney) to inspect or control a running Liney terminal workspace and the agent sessions it hosts.
$ npx skills add everettjf/liney --skill liney-cli -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install everettjf/liney liney-cli --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/everettjf/liney.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/liney-cli .claude/skills/liney-cli && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "liney-cli" agent skill from https://github.com/everettjf/liney/tree/main/skills/liney-cli into .claude/skills/liney-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "liney-cli", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/everettjf/liney/tree/main/skills/liney-cliType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add everettjf/liney --skill liney-cli -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install everettjf/liney liney-cli --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/everettjf/liney.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/liney-cli .agents/skills/liney-cli && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "liney-cli" agent skill from https://github.com/everettjf/liney/tree/main/skills/liney-cli into .agents/skills/liney-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "liney-cli", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add everettjf/liney --skill liney-cli -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install everettjf/liney liney-cli --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/everettjf/liney.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/liney-cli .cursor/skills/liney-cli && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "liney-cli" agent skill from https://github.com/everettjf/liney/tree/main/skills/liney-cli into .cursor/skills/liney-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "liney-cli", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/everettjf/liney.git --path skills/liney-cli--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add everettjf/liney --skill liney-cli -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install everettjf/liney liney-cli --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/everettjf/liney.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/liney-cli .gemini/skills/liney-cli && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "liney-cli" agent skill from https://github.com/everettjf/liney/tree/main/skills/liney-cli into .gemini/skills/liney-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "liney-cli", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install everettjf/liney liney-cliInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add everettjf/liney --skill liney-cli -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/everettjf/liney.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/liney-cli .github/skills/liney-cli && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "liney-cli" agent skill from https://github.com/everettjf/liney/tree/main/skills/liney-cli into .github/skills/liney-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "liney-cli", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add everettjf/liney --skill liney-cli -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install everettjf/liney liney-cli --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/everettjf/liney.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/liney-cli .opencode/skills/liney-cli && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "liney-cli" agent skill from https://github.com/everettjf/liney/tree/main/skills/liney-cli into .opencode/skills/liney-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "liney-cli", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
liney-cliUse the Liney CLI (liney) to inspect or control a running Liney terminal workspace and the agent sessions it hosts.
Liney CLI is an agent skill from everettjf/liney. Use the Liney CLI (liney) to inspect or control a running Liney terminal workspace and the agent sessions it hosts. Liney runs several coding agents in parallel, each in its own pane/tab/worktree, so reach for this whenever the user wants to act on a pane other than the current one — check on, coordinate, read from, or send text/keys to another pane, tab, worktree, or sibling agent. Covers framings that never say "liney": "what is the agent in my other window doing", "are my side-by-side agents still working or…
Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Git worktrees. It works with macOS. The repository describes itself as: Liney is a native macOS terminal workspace built with AppKit, SwiftUI, and Ghostty, designed for multi-repo workflows, worktree switching, and focused vibe coding. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit ca86aba. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
jqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
LINEY_CONTROL_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Liney CLI loads about 1.2k tokens when it runs. Until then it costs about 213 tokens; SKILL.md has 414 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
sudo ln -sf /Applications/Liney.app/Contents/MacOS/Liney /usr/local/bin/lineyAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from everettjf/liney at commit ca86aba, republished under its Apache-2.0 licence (© everettjf). 414 words, ~1,238 tokens.
.claude/skills/liney-cli/SKILL.md (or your agent's skills folder).Use liney only when the task is to inspect or control the running Liney GUI
app: list/read panes, check sibling agents, send text/keys, or report your own
status. Do not use it merely because the current shell is inside the Liney repo.
Most of the time you need to do nothing. When Settings → URL Scheme is
enabled, Liney injects LINEY_CONTROL_TOKEN into every pane's environment, so
an agent running in a Liney pane can call the mutating commands (open,
split, send-keys) with no setup.
session list, read, agents (read-only inspection)
and notify, status (self-reports). These always work.export LINEY_CONTROL_TOKEN=<token> if you run
from outside a Liney pane): open, split, send-keys.Always resolve a concrete pane UUID before read or send-keys.
liney session list --json | jq -r '.[].pane' # all panes (id, cwd, branch, ports, status)
liney agents --json | jq -r '.[].pane' # only panes with a detected/reported agentliney agents is the right starting point for "which agents are blocked /
working / done?"; liney session list is the full pane inventory including
plain shells.
If your own session was launched from a Liney pane, the focused pane is often you. Treat focused pane IDs as something to identify and avoid unless you mean to operate on yourself.
self_pane="$(liney agents --json | jq -r '.[] | select(.focused) | .pane')"liney read --pane "$pane" --last 80 --json | jq -r '.text'
liney read --pane "$pane" --scrollback --json | jq -r '.text' # include history
liney read --pane "$pane" --last 200 --wait-stable --json | jq -r '.text'--wait-stable re-reads until the screen stops changing — use it when an
agent's TUI may still be streaming a response so you don't read a half-painted
frame.
liney send-keys "$pane" 'npm test\n' # text, trailing \n submits
liney send-keys "$pane" $'\x03' # Ctrl-C
liney open ~/proj --worktree ~/proj/.wt/x # open a repo / switch worktree
liney split --axis vertical --pane "$pane" # split a paneUse this only for a pane you have positively identified. If $pane is your own
pane, the keys land in your current session.
When you are the agent in a Liney pane, tell Liney how you're doing so the
user sees it in the dynamic island and liney agents:
liney status waiting --title "Approve running the migration?"
liney status done
liney status error --title "build failed"self_pane="$(liney agents --json | jq -r '.[] | select(.focused) | .pane')"
pane="$(liney agents --json | jq -r --arg me "$self_pane" '
.[] | select(.status == "waiting" and .pane != $me) | .pane' | head -n1)"
test -n "$pane" && liney read --pane "$pane" --last 120 --wait-stable --json | jq -r '.text'session list --json → array of { workspace, workspaceName, pane, cwd, branch, ports, status }.agents --json → array of { workspace, workspaceName, pane, type, name, status, reported, cwd, branch, focused }.status is running | waiting | done | error.reported is true when status came from a liney status self-report,
false when it was passively detected from the pane's process tree.read --json → { ok, text, lineCount }; the terminal text is .text.When JSON is stored in a shell variable, use printf '%s\n' "$json" | jq ...,
not echo "$json" | jq — zsh can turn JSON escape sequences such as
back into raw control characters.
The Liney app binary is itself the CLI:
sudo ln -sf /Applications/Liney.app/Contents/MacOS/Liney /usr/local/bin/liney0 ok · 64 usage · 69 Liney not running · 74 I/O error · 77 auth
required (missing/invalid token).
© everettjf, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/liney-cli of everettjf/liney.
Open the folder on GitHubat commit ca86aba
Liney CLI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Liney CLI this skilleverettjf/liney | 150 | — | ~1.2k | Automated safety check: Notes | Apache-2.0 | |
| Git Worktree Setupk8zdev/k8z | 155 | — | ~930 | Automated safety check: Pass | None | |
| Mori Agent Bridgevaayne/mori | 303 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Free Disk Spacebholmesdev/skills | 177 | — | ~623 | Automated safety check: Pass | MIT | |
| Simfleetentropyconquers/simfleet | 117 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Autoreviewsozercan/kaset | 2.4k | — | ~3k | Automated safety check: Pass | MIT |
k8zdev/k8z
Automate git worktree creation and copy private files (not tracked in git) to new workdirs.
vaayne/mori
Use Mori CLI to enable agent-to-agent communication and coordination across Mori-managed panes.
bholmesdev/skills
Reclaim disk space on macOS by auditing and clearing build artifacts, package-manager caches, stale git worktrees, and offloading large media to an external drive.
entropyconquers/simfleet
Operate a simfleet device fleet: slimmed iOS simulators and Android emulators, parallel React Native worktree lanes with leased Metro ports, the native build cache, and per-agent device claims.
sozercan/kaset
Run a structured code review (Codex default, Claude optional) as a closeout check on a local or PR branch before commit or ship.
AvdLee/Core-Data-Agent-Skill
Expert Core Data guidance (iOS/macOS): stack setup, fetch requests & NSFetchedResultsController, saving/merge conflicts, threading & Swift Concurrency, batch operations & persistent history…
Works with
Categories
Use the Liney CLI (liney) to inspect or control a running Liney terminal workspace and the agent sessions it hosts. Liney CLI is an agent skill from everettjf/liney. Use the Liney CLI (liney) to inspect or control a running Liney terminal workspace and the agent sessions it hosts.
Liney CLI fits situations like: tasks that involve Git worktrees.
Run `npx skills add everettjf/liney --skill liney-cli -a claude-code`. Or copy the skill folder (skills/liney-cli in everettjf/liney) into .claude/skills/liney-cli in your project. Claude Code loads it when a task matches its description.
Run `npx skills add everettjf/liney --skill liney-cli -a codex`. Or copy the skill folder (skills/liney-cli in everettjf/liney) into .agents/skills/liney-cli in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add everettjf/liney --skill liney-cli -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/liney-cli, .gemini/skills/liney-cli, .github/skills/liney-cli and .opencode/skills/liney-cli in your project.
Going by SKILL.md and its folder, Liney CLI needs the command-line tools its instructions call (jq) and credentials named LINEY_CONTROL_TOKEN. Our summary lists: A credential in LINEY_CONTROL_TOKEN.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Liney CLI is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Liney CLI: Git Worktree Setup (k8zdev/k8z, 155 stars), Mori Agent Bridge (vaayne/mori, 303 stars), Free Disk Space (bholmesdev/skills, 177 stars) and Simfleet (entropyconquers/simfleet, 117 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
everettjf (a GitHub user) maintains it in everettjf/liney, which has 150 GitHub stars. The repository was last updated on October 6, 2026.
Source: everettjf/liney on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.