--- name: vopen description: >- Open a file or URL in the vlx-term center pane (mirrors the `vopen` command). Markdown opens in a WYSIWYG editor, images in the built-in image viewer, other files in the source-code editor (with automatic syntax highlighting by language), and http/https URLs in a built-in browser tab. Only use when the user explicitly invokes /vopen or $vopen; never auto-trigger. Available only inside vlx-term-hosted local sessions. argument-hint: "..." disable-model-invocation: true allowed-tools: Bash(vopen:*) --- # /vopen The user **explicitly invoked `/vopen` (Claude) or `$vopen` (Codex)** to request opening a file or URL in the **vlx-term** center pane, with exactly the same effect as typing `vopen ` in the terminal: it opens a document tab in the center pane, routed automatically by type (markdown WYSIWYG / image viewer / code editor with syntax highlighting), while http/https URLs open a built-in browser tab. The document tab sits alongside the terminal tabs and won't displace the current session. User input: $ARGUMENTS ## Step 1: Resolve the user input into concrete paths - What the user gives may be a **literal path or URL**, or a **reference** (e.g. "the file I just edited," "the architecture doc") — resolve references into real file paths from the current conversation context; when unsure, ask first rather than guessing a path to open. - Multiple items can be opened at once; resolve each one. - **Always convert to an absolute path** before passing it to the command (the Bash tool's working directory isn't necessarily the "current directory" the user has in mind; absolute paths are the most reliable). Pass URLs (http/https) through as-is. - The file must already exist; `vopen` only accepts regular files, not directories. ## Step 2: Run the command Run `vopen` from PATH (each path/URL as a separate argument; mind escaping of spaces and other special characters): ```bash vopen ... ``` On success it prints a confirmation for each opened item; on failure (file doesn't exist or isn't a regular file) it exits non-zero and reports which file on stderr. ## Step 3: Report back to the user On success, give a one-line summary: "Opened in vlx-term: "; on failure, report the failed file and the reason honestly. ## Notes - Must run inside a **vlx-term-hosted local session**: it relies on the injected `VLX_*` environment variables and the `vopen` script on PATH; if missing it reports "not inside a vlx-term session" — in that case just tell the user this skill is only available inside vlx-term sessions, and don't try other ways to open it. - Not available inside `claude-remote` remote sessions (a remote can't reach the local machine's hook port).