From twicc-presets
MUST invoke BEFORE writing any .twicc-tmux.json file. The format is NOT obvious and WILL be wrong without this skill. Use whenever: creating/editing/reading .twicc-tmux.json, user mentions twicc presets, terminal presets, tmux presets, preset file, or configuring shell presets for TwiCC.
How this skill is triggered — by the user, by Claude, or both
Slash command
/twicc-presets:twicc-presetsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**IMPORTANT: You MUST load this skill BEFORE writing or editing any `.twicc-tmux.json` file. The format is a specific JSON structure that you will get wrong without reading these instructions. Do NOT guess the format.**
IMPORTANT: You MUST load this skill BEFORE writing or editing any .twicc-tmux.json file. The format is a specific JSON structure that you will get wrong without reading these instructions. Do NOT guess the format.
Manage .twicc-tmux.json files that configure terminal shell presets in TwiCC (the web interface for Claude Code).
A .twicc-tmux.json file is a JSON array at the root (NOT an object). Each entry is a preset:
[
{
"name": "dev",
"command": "npm run dev",
"cwd": "./frontend"
},
{
"name": "logs",
"command": "tail -f logs/app.log"
}
]
| Field | Required | Description |
|---|---|---|
name | Yes | Preset name, displayed in the TwiCC terminal navigator |
command | No | Shell command to run when the preset window is created |
cwd | No | Working directory. Relative paths resolve against the directory containing the .twicc-tmux.json file. Defaults to that directory if omitted. |
[...]. NEVER use an object {...} as root.name, command, cwd. No other keys.name field (string, non-empty).command field is optional. If present, it is sent as keystrokes to the tmux window after creation.cwd field is optional. Relative paths are resolved against the directory containing the .twicc-tmux.json. If omitted, the preset opens in the directory containing the config file.// WRONG: root is an object
{"name": "myproject", "shells": [{"name": "dev", "command": "..."}]}
// WRONG: uses "shells", "windows", or any wrapper key
{"windows": [{"name": "dev"}]}
// WRONG: extra keys like "root", "focus", "env", "shell"
[{"name": "dev", "focus": true, "env": {"FOO": "bar"}}]
[
{"name": "preset-name", "command": "optional command", "cwd": "optional/path"}
]
TwiCC resolves presets from up to 3 sources when opening a terminal session:
.twicc-tmux.json (stops at project or git root boundary)Each source that has a .twicc-tmux.json appears as a separate labeled section in the terminal navigator. This means you can have:
frontend/.twicc-tmux.json for frontend dev scripts)Based on the user's request, perform one of these actions:
.twicc-tmux.json file as a valid JSON array..twicc-tmux.json..twicc-tmux.json..twicc-tmux.json files in the current project (use find or Glob).name stringcwd paths (if present) resolve to existing directoriesexec prefix for one-shot commands that should replace the shell (e.g., "exec uv run ./devctl.py restart"). The tmux window closes automatically when the command finishes.exec for long-running commands you want to interact with (e.g., "tail -f logs/app.log").cwd when possible so the preset file works across machines..twicc-tmux.json at the relevant directory level.npx claudepluginhub dguerizec/twicc-tmux-presets --plugin twicc-presetsManages tmux sessions, windows, and panes for persistent remote workflows and shell scripting automation. Useful for long-running processes, SSH disconnects, and multi-pane terminal layouts.
Manages terminal/shell environment config including zsh, aliases, tmux, starship, Ghostty, yabai, and GNU Stow dotfiles. Useful when editing shell config, adding aliases, or managing dotfiles.
Guides Hive configuration via YAML for repo-specific rules, tmux windows, spawn commands, keybindings, and terminal integration.