Agent skill

Hitch

by maxktz in maxktz/hitch

A skill your agent uses when you need to inspect or control user's own terminals, or if asked to do something with user's specific terminal, or before starting a dev server, watcher, tunnel, REPL…

MITAuto-check passed

Install Hitch

skills CLI
$ npx skills add maxktz/hitch --skill hitch -a claude-code

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

GitHub CLI
$ gh skill install maxktz/hitch hitch --agent claude-code

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

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
hitch
GitHub stars
178
Token cost
~1.8k tokens
SKILL.md length
1,074 words
Files
33 (incl. scripts, assets)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when you need to inspect or control user's own terminals, or if asked to do something with user's specific terminal, or before starting a dev server, watcher, tunnel, REPL…

  • Works in 3 steps: your native shell/tooling, if it can… → a different hitch terminal → the user’s browser or another user…
  • You need to inspect
  • SKILL.md covers Command Reference and Rules
  • Calls python, pnpm and curl

What it does

Hitch is an agent skill from maxktz/hitch. Use when you need to inspect or control user's own terminals, or if asked to do something with user's specific terminal, or before starting a dev server, watcher, tunnel, REPL, build, or log tail that may already be running by the user.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 37 other files, including scripts and assets (for example `.github/workflows/release.yml`, `CONTRIBUTING.md` and `README.md`).

It works with tmux and Rust. The repository describes itself as: Share your terminal with coding agent in one command. Lightweight shell proxy, written in Rust. The licence is MIT.

When your agent uses it

  • You need to inspect
  • Control users own terminals
  • Asked to do something with users specific terminal
  • Before starting a dev server

Example prompts

  • “s own terminals, or if asked to do something with user”
  • “/hitch”

Requirements

  • Python 3

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. your native shell/tooling, if it can reach the server
  2. a different hitch terminal
  3. the user’s browser or another user terminal

What it can do on your machine

Read from SKILL.md and the folder at commit bcbfca2. 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

    Ships 1 file in scripts/, which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • pnpm
    • curl

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

  • Network

    No URLs in SKILL.md. Its commands use pnpm and curl, which can reach the network depending on how they are called.

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

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

Context cost

Hitch loads about 1.8k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 1,074 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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); the scripts in this folder are not scanned.

SKILL.md

The full file from maxktz/hitch at commit bcbfca2, republished under its MIT licence (© maxktz). 1,074 words, ~1,789 tokens.

Download SKILL.mdSave it as .claude/skills/hitch/SKILL.md (or your agent's skills folder). This skill also uses 32 other files; get the full folder from GitHub.
name
hitch
description
Use when you need to inspect or control user's own terminals, or if asked to do something with user's specific terminal, or before starting a dev server, watcher, tunnel, REPL, build, or log tail that may already be running by the user.
version
3

If skill activated with no concrete task provided - don't act, just remember it. This is reference knowledge for you on how to use hitch.

hitch CLI for agents to see and control shared terminal sessions that the user already has opened.

Useful for tasks when you need to collaborate with the user in the same terminal and you both want to interact with it. Like long running tasks, dev servers, watchers, tunnels, builds. Think of it like tmux but with proper agent tools.

Command Reference

hitch context [TERMINAL]

Use first. Shows compact terminal state and recent useful output.

Forms:

  • hitch context - all terminals of current project

  • hitch context <terminal> - one specific terminal, more detailed output, usually paired with specific --tail

  • hitch context --all - all terminals, includes outside of the project Options:

  • --tail <n> - recent visible output lines. Default: 20, or 80 for context <terminal>

  • --head <n> - active process head lines. Default: 5, or 10 for context <terminal>

Output is summarized for agents: no colors, blank lines removed. Avoid using too long --tail for simpler use cases, if unnecessary Always default to without --all, use this flag only when specifically needed Usually in most of simple cases you don't have to pass custom --tail or especially --head

hitch send-keys -t <terminal> [OPTIONS] <keys...>

Similar to how tmux send-keys works. Sends input to a terminal. If --tail or --wait is passed, it also prints new output produced after sending keys. (will not include previous history output)

Common keys:

  • Enter
  • Tab
  • Escape / Esc
  • Space
  • Backspace / BSpace
  • C-c, C-u, etc.

Options:

  • -t, --target <terminal> - terminal id.
  • --wait finish - wait until the foreground command finishes.
  • --wait quiet:<duration> - wait until output stops changing for duration, e.g. quiet:1s.
  • --wait time:<duration> - wait fixed time before returning output, e.g. time:5s.
  • --wait output - wait until any new output appears.
  • --timeout <duration> - max wait time. Default: 30s.
  • --tail <n> - print this many new visible output lines after sending.
  • --force - send input even if the terminal has a running process.

Options must come before keys!

Durations support ms, s, m.

Examples:

  • hitch send-keys -t 1 C-u "npm test" Enter
  • hitch send-keys -t 1 --wait quiet:1s --tail 40 C-u "npm run dev" Enter
  • hitch send-keys -t 1 --wait finish --tail 80 C-u "npm test" Enter

Output behavior:

  • Without --wait or --tail, send-keys sends input but prints nothing.
  • If --wait is set, Hitch waits, then prints new output from that terminal.
  • If --tail <n> is set, Hitch prints up to <n> new visible output lines after sending.
  • --wait without --tail defaults to printing up to 40 new visible output lines, so if you expect an output shorter than 40 lines, passing --tail is not necessary

--wait is made to be used instead of commands like "sleep", to not be polling the terminal yourself, prefer using it if needed.

While waiting until finish of command, and expect it to be longer than 30s, pass custom --timeout. But usually you may not want to not wait such longer for processes. Or you may choose to wait for longer commands on your own, by polling output tail after a while.

hitch capture -t <terminal> [OPTIONS]

Mirrors tmux capture-pane behavior. To capture one terminal, prefer context <terminal> over capture; use capture only if more options needed. Also works with alias hitch capture-pane.

Options:

  • -t <terminal> - terminal id.
  • -p - print to stdout, tmux-compatible.
  • -S <start> - start line. Negative values count from the end, e.g. -S -100.
  • -E <end> - end line.
  • -e - raw/escape output, tmux-compatible.

Accepted compatibility no-op flags:

  • -C, -J, -N, -T, -a, -q
Show full SKILL.md (489 more words)Show less

Rules

  • Terminal ids are numbers. If user says "hitch 2", "terminal 2", or "session 2", they likely mean terminal id 2.

  • Before interrupting user's processes with C-c, make sure the user asked for it or it is clearly necessary.

  • Do not send shell commands to terminals with running processes unless you intend to interact with that process. Hitch refuses this by default and prints terminal context; use --force only when intentional. A sequence starting with C-c is allowed because it interrupts the running process first.

  • If a process is currently running in hitch terminal, you can't run other commands in it without stopping the process, just like with tmux, you would have to send C-c to first, so make sure you were actually asked to stop this process or it's necessary.

  • If you just started using hitch in fresh chat, usually better to always start with general hitch context, not specific terminal right away

  • no need to pre check if CLI is installed, this skill comes with it.

  • in case you or the user facing errors or bugs with hitch, feel free to point them to the github repository https://github.com/maxktz/hitch for feedback or help

  • You should not run everything in hitch, only the commands you want to share with the user, or explicitly asked to run in hitch. If you're just running short tool calls like reading files, sending requests, there is absolutely no reason to use hitch over your native tools. Only use hitch for collaboration

  • NEVER send a shell command into a terminal which currently has long running process (examples: next dev, vite, npm run dev, rails server, cargo watch, python -m http.server) unless the user explicitly asked you to type into that process itself.

  • Treat input sent to such a terminal as stdin for the running process, not as a new shell command. Assume it will not execute in a shell.

  • If you need to make requests against a server running in hitch terminal N, use a different execution context:

    1. your native shell/tooling, if it can reach the server
    2. a different hitch terminal
    3. the user’s browser or another user terminal
  • If option 1 fails because of sandbox/network isolation, DO NOT fall back to hitch send-keys in the same occupied terminal. Use option 2 or ask the user to make the request, then inspect logs with hitch context N or hitch capture -t N.

  • --force is only for intentionally sending input to the running foreground process itself, not for trying to run another shell command behind it.

    Bad:

    • terminal 1 is running pnpm dev
    • hitch send-keys -t 1 --force "curl http://localhost:3000" Enter

    Why bad:

    • this writes curl ... to the dev server's stdin; it does not execute a second shell command

    Good:

    • keep terminal 1 for the server
    • make the HTTP request from your a native shell, or another free terminal if explicitly asked
    • inspect logs in terminal 1 with hitch context 1 --tail 40

© maxktz, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 32 other files (scripts, assets) in the repository root of maxktz/hitch.

  • SKILL.md
  • .github/workflows/release.yml
  • .gitignore
  • CONTRIBUTING.md
  • Cargo.lock
  • Cargo.toml
  • LICENSE
  • README.md
  • TODO.md
  • assets/hitch.svg
  • assets/logo-dark.svg
  • assets/logo-light.svg
  • assets/preview.jpg
  • bin/hitch
  • docs/ascii.md
  • docs/stateful-context-idea.md
  • … and 17 more

Open the folder on GitHubat commit bcbfca2

Compare with similar skills

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

Hitch compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Hitch this skillmaxktz/hitch178—~1.8kAutomated safety check: PassMIT
Tuicragavra/tuicr3.3k—~3.2kAutomated safety check: PassMIT
RmuxHelvesec/rmux2.7k—~1.3kAutomated safety check: PassCustom licence
Luvus ModuleRizRiyz/luvus957—~2.5kAutomated safety check: PassApache-2.0
TUI Change Verification for Warpwarpdotdev/warp65k1 repos~5.5kAutomated safety check: NotesAGPL-3.0
Update V8 Versionopeninterpreter/openinterpreter69k2 repos~845Automated safety check: PassApache-2.0

Similar skills

  • Tuicr

    agavra/tuicr

    Use tuicr's review CLI to read and add comments in active TUI review sessions, and launch tuicr in cmux, tmux, Zellij, or Herdr when a user needs an interactive review pane.

    3.3k GitHub stars~3.2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Rmux

    Helvesec/rmux

    Guide for using RMUX with Claude Code, including the tmux-compatible CLI, agent automation waits, the typed SDK, browser web-share, and the rmux claude launcher.

    2.7k GitHub stars~1.3k tokensUpdated 2 mo ago
    Auto-check passed
  • Luvus Module

    RizRiyz/luvus

    Write a luvus module (an extension for luvus, mission control for your AI coding agents).

    957 GitHub stars~2.5k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Runs Warp's terminal UI for real, drives it with keystrokes and reads the rendered screen back to confirm that a change looks and behaves as intended.

    65k GitHub starsUsed in 1 repo~5.5k tokens
    Testing & QAAuto-check: notes
  • Update V8 Version

    openinterpreter/openinterpreter

    Bumps the pinned v8 and rusty_v8 versions in Codex, validates the release-candidate path with the v8-canary check, and traces failures to upstream build changes.

    69k GitHub starsUsed in 2 repos~845 tokens
    DevOps & CloudAuto-check passed
  • Adds Firecrawl's /scrape endpoint to application code to pull markdown, HTML, links, screenshots or structured data from a single known URL.

    190k GitHub starsUsed in 1 repo~944 tokens
    Data & AnalyticsAuto-check passed

Works with

Questions about Hitch

What does Hitch do?

A skill your agent uses when you need to inspect or control user's own terminals, or if asked to do something with user's specific terminal, or before starting a dev server, watcher, tunnel, REPL…. Hitch is an agent skill from maxktz/hitch. Use when you need to inspect or control user's own terminals, or if asked to do something with user's specific terminal, or before starting a dev server, watcher, tunnel, REPL, build, or log tail that may already be running by the user.

When should I use Hitch?

Hitch fits situations like: you need to inspect; control users own terminals; asked to do something with users specific terminal; before starting a dev server.

How do I install Hitch in Claude Code?

Run `npx skills add maxktz/hitch --skill hitch -a claude-code`. Or copy the skill folder (the maxktz/hitch repository) into .claude/skills/hitch in your project. Claude Code loads it when a task matches its description.

How do I install Hitch in Codex?

Run `npx skills add maxktz/hitch --skill hitch -a codex`. Or copy the skill folder (the maxktz/hitch repository) into .agents/skills/hitch in your project. Codex loads it when a task matches its description.

Can I use Hitch 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 maxktz/hitch --skill hitch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hitch, .gemini/skills/hitch, .github/skills/hitch and .opencode/skills/hitch in your project.

What does Hitch need to run?

Going by SKILL.md and its folder, Hitch needs the command-line tools its instructions call (python, pnpm and curl). Our summary lists: Python 3.

Does Hitch access the network?

SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Hitch safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Hitch use?

Hitch is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Hitch use?

About 1.8k tokens (SKILL.md is roughly 7.2k 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 Hitch?

Skills that share tags, products or a category with Hitch: Tuicr (agavra/tuicr, 3.3k stars), Rmux (Helvesec/rmux, 2.7k stars), Luvus Module (RizRiyz/luvus, 957 stars) and TUI Change Verification for Warp (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Hitch?

maxktz (a GitHub user) maintains it in maxktz/hitch, which has 178 GitHub stars. The repository was last updated on June 7, 2026.

Source: maxktz/hitch on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.