terminal-opener
Open an executable and its argument array in a visible terminal window through a reusable, shell-free launch plan with dry-run, JSON, capability detection, detached fallback, and standalone recovery modes.
- Kind
- Skill
- Works with
- Claude Code, Codex
- Languages
- Shell
- Source
- affaan-m/ECC @ d3b8a3e90890
- Path
- skills/terminal-opener/SKILL.md
- License
- MIT
- Jobs
- Planning, Debugging
InstallCopy it from the source repository, or sign in and let the assistant adapt it for your project.
# Terminal Opener Use `scripts/open-terminal.js` to preserve an executable and every argument as separate process entries. Never interpolate a shell command string. Keep every spawn on `shell: false`. Default to a non-launching plan. Use `--launch` only after the user explicitly requests a real window and the argv has been reviewed. The launched process inherits the full environment of the calling process, including secret-bearing variables. The launcher does not filter the environment. Run it from a shell whose environment is safe to expose to the target command. ## Launch a command Pass launcher options before `--`, then pass exactly one executable followed by its argument array: ```bash node skills/terminal-opener/scripts/open-terminal.js \ --launch \ --cwd /absolute/host/path \ -- ssh -t example.test command-with-arguments ``` Run normal mode first. Let WezTerm try its mux with a new window, then let the launcher fall back to a detached `wezterm start` process if the mux is not available. When fallback is used, read `muxFailure` from JSON output (or the human-readable failure line) to diagnose why the mux path failed. ## Recover from terminal configuration …