Skip to main content

show-me

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

الانتقال إلى التثبيت

معلومات المصدر

المستودع
mbailey/show-me
آخر نشاط في المصدر
٢٠ أغسطس ٢٠٢٦ في ٢٣:٣٥
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٢
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
6 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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
عرض على GitHub