Skip to content
Skillpedia
Misc280k · #297

terminal-opener

Helps your agent open programs and commands in a terminal. It's useful for running interactive tasks, starting processes, or debugging issues.

What it does

This program opens a program or command on your computer in a separate window. It does this safely, without mixing commands, and allows you to see what's happening.

When to use it

  • ✓When you need to run an interactive program.
  • ✓To start a secure connection (SSH).
  • ✓To test or debug commands without actually running them.

Example of what to ask your AI

“Open the program 'my_app' with arguments '--config' and 'config.json' in a new window.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/affaan-m/ECC/blob/main/skills/terminal-opener/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/affaan-m/ECC/blob/main/skills/terminal-opener/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

It takes the program name and all its arguments separately. Then, it opens a new window to run this program, ensuring everything is done in an isolated and secure way.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add affaan-m/ECC --skill terminal-opener

Or download just the file:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/terminal-opener/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

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:

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

Add --recover or --standalone when user configuration or mux state may interfere with the requested command. Start a detached WezTerm process with:

--skip-config start --always-new-process

Expect recovery mode to skip all user terminal configuration intentionally.

Inspect before launch

Omit --launch (or add --dry-run) and add --json to inspect the exact executable, argv, working directory, terminal adapter, primary launch, and fallback without opening a window. Treat the JSON plan as the composition boundary for callers.

Run --detect --json without a command to probe terminal availability. Follow the returned action when the adapter is missing or unsupported. Use WezTerm for the current adapter; treat other requested terminals as unsupported plans, not as commands to execute.

FAQ

What does 'without mixing commands' mean?

It means it doesn't combine multiple commands into a single text, which prevents errors and increases security.

What is 'dry-run mode'?

It's a mode that shows how the program would be opened, but doesn't actually open it. Useful for checking if everything is correct before running.

Can I see the information before opening?

Yes, by using the '--json' option, you can see all the details of how the program would be opened, without executing it.

Details

Original description by the author

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. Use when Codex needs to open an interactive CLI, SSH session, local development process, sandbox, or other argv-based command in a new host terminal; diagnose whether a supported terminal is ava

repo: affaan-m/ECC

Popularity

GitHub stars
280k
Ranking position
#297
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills