Skip to main content

show-me

Visual context sharing. LOAD when user says "show me", "open in browser", or "look at".

Ir para a instalação

Informações da origem

Repositório
mbailey/show-me
Última atividade na origem
20 de agosto de 2026 às 23:35
Idioma detectado do SKILL.md
inglês
Estrelas
2
Forks
1

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
6 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
show-me
description
Visual context sharing. LOAD when user says "show me", "open in browser", or "look at".
# show-me Display content for users (files, URLs, commands) or observe their screen context. The plugin ships two top-level commands: - **`show-me`** — display content for the user (files in Neovim, URLs in a browser, commands in a tmux pane) - **`look-at`** — observe what the user is currently viewing (screen context, active panes) ## Quick Reference | Command | Example | Description | |---------|---------|-------------| | `show-me <file>` | `show-me README.md:42` | Open file in Neovim at line | | `show-me <file>` | `show-me main.py:10-20` | Open file highlighting line range | | `show-me <file>.html` | `show-me index.html` | Open in browser (rendered) — use `--editor` for the source | | `show-me <url>` | `show-me github.com` | Open URL in browser | | `show-me "cmd:..."` | `show-me "cmd:git log"` | Run command in shell pane | | `show-me pane:self` | `show-me pane:self` | **Agent self-focus** — pull the user's focus to your own pane ("show yourself" / "where are you"). Uses `$TMUX_PANE` | | `look-at` | `look-at -l 100` | Capture pane with last 100 lines of scrollback | | `look-at -H` | `look-at -H` | Show tmux hierarchy only | ## When to Use - User asks to open/display a file or URL (**For URLs: ALWAYS check Chrome MCP first**) - User says "show me" or "look at my screen" - User says "show yourself" / "where are you" / "I can't find you" (agent self-focus) → `show-me pane:self` - Working in voice mode (hands-free interaction) — **highlight first, then narrate** the range you showed; see [Guided Voice Walkthroughs](references/walkthrough.md) - Need to verify what user is viewing ## Showing URLs - Default Behavior **URLs go to Chrome MCP by default. The `show-me` command is a fallback.** ### URL Navigation Decision Tree ``` User requests URL ↓ Check Chrome MCP available? ├─ Yes → navigate tool (interactive) └─ No → show-me command (fallback) ``` ### Standard Workflow 1. **Check**: `mcp__claude-in-chrome__tabs_context_mcp(createIfEmpty=true)` 2. **If available**: - Inform user: "Opening in Chrome - you may need to approve domain permissions" - Use `tabs_create_mcp` + `navigate` tools for interactive control - On timeout: "Chrome may be waiting for permission approval. Open in default browser instead?" 3. **If unavailable**: Use `show-me` command (opens default browser) **Chrome MCP provides:** - Interactive control (scroll, click, fill forms) - Screenshots and page inspection - Better for demos and automation The `show-me` command is a fallback for when Chrome MCP is unavailable. ## Prefer Line Ranges Over Single Lines When showing code to the user, **prefer ranges** (`file:start-end`) over single lines (`file:line`). A single line rarely provides enough context. When pointing out a function, a bug, a block of logic, or a diff location, show the full range so the user sees the complete picture. | Instead of | Use | |------------|-----| | `show-me main.py:42` | `show-me main.py:38-55` (show the whole function) | | `show-me config.yaml:10` | `show-me config.yaml:8-15` (show the relevant block) | **Rule of thumb:** If you know the start line, find where the section ends and use a range. ## Usage **AI assistants:** Use bare `show-me` and `look-at` -- they're on PATH. ### show-me - Display Content ```bash show-me README.md # Open file (uses user's default layout) show-me src/main.py:42 # Open at line 42 show-me src/main.py:10-20 # Open highlighting lines 10-20 (preferred) show-me bin/show-me#L124-162 # Highlight function (URL fragment syntax) show-me index.html # HTML opens in the browser (rendered), not Neovim show-me --editor index.html # Escape hatch: open the HTML source in Neovim show-me https://github.com/repo # Open URL show-me "cmd:git status" # Run command show-me pane:15 # Focus pane show-me --hold 60 README.md # Hold focus for 60s (visual conch) show-me --layout right README.md # Open in split pane to the right show-me --here "cmd:make test" # Split pane (default direction for type) show-me --cwd /path/to/repo "cmd:make test" # Run cmd: in a specific directory show-me --format json "cmd:make" # Run command, get a machine handle back ``` **`--cwd PATH`** runs a `cmd:` target in `PATH` instead of the caller's cwd (wrapped as `cd -- "<PATH>" && <cmd>`). No-op for file/URL targets. A missing directory is a hard error (`show-me: --cwd: no such directory: <PATH>`, no pane created) — show-me never silently falls back to the caller's cwd. **Layout:** You don't need to specify `--layout` — just call `show-me <target>`. The user's `SHOW_LAYOUT` env var controls where content appears. In split mode, subsequent file shows reuse the existing Neovim pane. **Following up on a `cmd:` you ran.** The default human line ends with `[pane %NN]`; `--format json` returns a one-line handle so you can inspect the result instead of guessing: ```bash show-me --format json "cmd:make test" # {"pane":"%37","session":"main","window":"build","created":true,"status":"alive","cmd":"make test"} tmux capture-pane -p -t %37 # read the output ``` Prefer `--format json` over scraping prose. Fields: `pane` (handle for `tmux capture-pane`/`send-keys`), `session`/`window` (full names), `created` (new vs reused), `status` (`alive`/`exited:<code>`/`unknown`), `cmd`. See `references/commands.md` for the full reference. ### File Syntax Variants All four forms are supported for specifying lines: ```bash show-me file:line # Single line show-me file:start-end # Line range (preferred) show-me file#Lline # URL fragment style show-me file#Lstart-end # URL fragment range ``` ### look-at - Observe Context ```bash look-at # Current pane look-at -l 100 # Last 100 lines look-at -H # Hierarchy only look-at %15,%16 # Multiple panes look-at window # All panes in window ``` ## Documentation - [Commands](references/commands.md) - Full command reference - [Layouts](references/layouts.md) - Layout options and `SHOW_LAYOUT` - [Guided Voice Walkthroughs](references/walkthrough.md) - Voice show-and-tell: the highlight-then-narrate loop, walkthrough etiquette, prepared tours - [Troubleshooting](references/troubleshooting.md) - Common issues ## Chrome Browser Integration (Reference) This section provides additional details on Chrome MCP integration. **See "Showing URLs - Default Behavior" above for the primary workflow.** ### Chrome Domain Permissions Chrome requires user approval for new domains (security feature). **Best practices:** - Before navigating: Inform user they may need to approve domain permissions - On timeout: Explain likely cause - "Chrome may be waiting for permission approval" - Offer fallback: "Would you like me to open in default browser instead?" **Common issue:** If navigation times out, it's usually because the user didn't see or approve the Chrome domain permission prompt. ### Example: Show URL with Chrome MCP ```bash # Step 1: Check if Chrome MCP is connected # Call: mcp__claude-in-chrome__tabs_context_mcp(createIfEmpty=true) # Step 2: If connected, inform user and navigate # "Opening in Chrome - you may need to approve domain permissions" # Call: mcp__claude-in-chrome__tabs_create_mcp (get a new tab) # Call: mcp__claude-in-chrome__navigate with the URL and tabId # Step 3: If not connected or timeout, fall back to show-me command show-me https://example.com ``` ### Troubleshooting Chrome MCP | Issue | Solution | |-------|----------| | `tabs_context_mcp` fails | Chrome extension not connected; use `show-me` command | | Tab ID invalid | Call `tabs_context_mcp` to get fresh tab IDs | | Extension disconnected mid-session | Graceful fallback to `show-me` command | | No Chrome MCP tools available | MCP not configured; use `show-me` command | ### Setup To use Chrome MCP: 1. Install the Claude-in-Chrome browser extension 2. Open Chrome and click the Claude extension icon 3. The extension connects to Claude Code via MCP When the extension is not connected, `tabs_context_mcp` will fail, and you should fall back to the standard `show-me` command. ## Requirements - **tmux**: Required for pane management - **Neovim**: For file display (with socket support) - **Browser**: For URL display (Firefox preferred, Chrome with MCP preferred for interactive control) - **nvim-remote**: Optional, enhances Neovim integration
Ver no GitHub