Help us improve
Share bugs, ideas, or general feedback.
From show-me
Visual context sharing. LOAD when user says "show me", "open in browser", or "look at".
npx claudepluginhub harshav167/ava --plugin show-meHow this skill is triggered — by the user, by Claude, or both
Slash command
/show-me:show-meThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Display content for users (files, URLs, commands) or observe their screen context.
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
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.