Agent skill

Liney CLI

by everettjf in everettjf/liney

Use the Liney CLI (liney) to inspect or control a running Liney terminal workspace and the agent sessions it hosts.

Apache-2.0Auto-check: notesDevelopment

Install Liney CLI

skills CLI
$ npx skills add everettjf/liney --skill liney-cli -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install everettjf/liney liney-cli --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
liney-cli
GitHub stars
150
Token cost
~1.2k tokens
SKILL.md length
414 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
Apache-2.0

At a glance

Use the Liney CLI (liney) to inspect or control a running Liney terminal workspace and the agent sessions it hosts.

  • Tasks that involve Git worktrees
  • SKILL.md covers Auth, Identify a pane before acting, Read another pane and Drive another pane, plus 5 more sections
  • Calls jq; needs LINEY_CONTROL_TOKEN

What it does

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.

When your agent uses it

  • Tasks that involve Git worktrees

Example prompts

  • “what is the agent in my other window doing”
  • “are my side-by-side agents still working or waiting?”
  • “tell the agent in my left split to rerun the tests”
  • “/liney-cli”

Requirements

  • A credential in LINEY_CONTROL_TOKEN

What it can do on your machine

Read from SKILL.md and the folder at commit ca86aba. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • LINEY_CONTROL_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~213
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:118
    sudo ln -sf /Applications/Liney.app/Contents/MacOS/Liney /usr/local/bin/liney

Automated 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.

SKILL.md

The full file from everettjf/liney at commit ca86aba, republished under its Apache-2.0 licence (© everettjf). 414 words, ~1,238 tokens.

Download SKILL.mdSave it as .claude/skills/liney-cli/SKILL.md (or your agent's skills folder).
name
liney-cli
description
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 waiting?", "tell the agent in my left split to rerun the tests", "read the build pane's output", "which of my agents is blocked?". Not for ordinary editing or building inside the Liney source repo, and not for questions about Liney's settings or keybindings — only when the task is to actually drive panes in the live app.

Liney CLI

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.

Auth

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.

  • No token at all: session list, read, agents (read-only inspection) and notify, status (self-reports). These always work.
  • Token (auto-injected, or export LINEY_CONTROL_TOKEN=<token> if you run from outside a Liney pane): open, split, send-keys.

Identify a pane before acting

Always resolve a concrete pane UUID before read or send-keys.

bash
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 agent

liney 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.

bash
self_pane="$(liney agents --json | jq -r '.[] | select(.focused) | .pane')"

Read another pane

bash
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.

Drive another pane

bash
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 pane

Use this only for a pane you have positively identified. If $pane is your own pane, the keys land in your current session.

Show full SKILL.md (167 more words)Show less

Report your own status (no token)

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:

bash
liney status waiting --title "Approve running the migration?"
liney status done
liney status error --title "build failed"

A typical "check on a blocked agent" loop

bash
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'

Parsing JSON output

  • 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.

Installing the CLI shim

The Liney app binary is itself the CLI:

bash
sudo ln -sf /Applications/Liney.app/Contents/MacOS/Liney /usr/local/bin/liney

Exit codes

0 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

Files

Just SKILL.md in skills/liney-cli of everettjf/liney.

Open the folder on GitHubat commit ca86aba

Compare with similar skills

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.

Liney CLI compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Liney CLI this skilleverettjf/liney150—~1.2kAutomated safety check: NotesApache-2.0
Git Worktree Setupk8zdev/k8z155—~930Automated safety check: PassNone
Mori Agent Bridgevaayne/mori303—~1.7kAutomated safety check: PassMIT
Free Disk Spacebholmesdev/skills177—~623Automated safety check: PassMIT
Simfleetentropyconquers/simfleet117—~1.5kAutomated safety check: PassMIT
Autoreviewsozercan/kaset2.4k—~3kAutomated safety check: PassMIT

Similar skills

  • Automate git worktree creation and copy private files (not tracked in git) to new workdirs.

    155 GitHub stars~930 tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Use Mori CLI to enable agent-to-agent communication and coordination across Mori-managed panes.

    303 GitHub stars~1.7k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Free Disk Space

    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.

    177 GitHub stars~623 tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Simfleet

    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.

    117 GitHub stars~1.5k tokensUpdated 9 days ago
    MobileAuto-check passed
  • Autoreview

    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.

    2.4k GitHub stars~3k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Core Data Expert

    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…

    314 GitHub stars~1.2k tokensUpdated 23 days ago
    DevelopmentAuto-check passed

Works with

Questions about Liney CLI

What does Liney CLI do?

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.

When should I use Liney CLI?

Liney CLI fits situations like: tasks that involve Git worktrees.

How do I install Liney CLI in Claude Code?

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.

How do I install Liney CLI in Codex?

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.

Can I use Liney CLI in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Liney CLI need to run?

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.

Does Liney CLI access the network?

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.

Is Liney CLI safe to install?

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.

What licence does Liney CLI use?

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.

How many tokens does Liney CLI use?

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.

What are the alternatives to Liney CLI?

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.

Who maintains Liney CLI?

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.