com um clique
show-me
// Visual context sharing. LOAD when user says "show me", "open in browser", or "look at".
// Visual context sharing. LOAD when user says "show me", "open in browser", or "look at".
| name | show-me |
| description | Visual context sharing. LOAD when user says "show me", "open in browser", or "look at". |
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)| 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 <url> | show-me github.com | Open URL in browser |
show-me "cmd:..." | show-me "cmd:git log" | Run command in shell 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 |
URLs go to Chrome MCP by default. The show-me command is a fallback.
User requests URL
↓
Check Chrome MCP available?
├─ Yes → navigate tool (interactive)
└─ No → show-me command (fallback)
mcp__claude-in-chrome__tabs_context_mcp(createIfEmpty=true)tabs_create_mcp + navigate tools for interactive controlshow-me command (opens default browser)Chrome MCP provides:
The show-me command is a fallback for when Chrome MCP is unavailable.
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.
AI assistants: Use bare show-me and look-at -- they're on PATH.
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 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:
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 docs/commands.md for the full reference.
All four forms are supported for specifying lines:
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 # 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
This section provides additional details on Chrome MCP integration. See "Showing URLs - Default Behavior" above for the primary workflow.
Chrome requires user approval for new domains (security feature).
Best practices:
Common issue: If navigation times out, it's usually because the user didn't see or approve the Chrome domain permission prompt.
# 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
| 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 |
To use Chrome MCP:
When the extension is not connected, tabs_context_mcp will fail, and you should fall back to the standard show-me command.