show-me — Claude Code Plugin
Visual context sharing between AI assistants and users.
Like Morpheus to Neo — "show me":
- show-me: AI displays content for the user (files in Neovim, URLs in browser, commands in tmux)
- look-at: AI observes what the user is viewing (screen context, active panes)
These are complementary - look-at verifies what show-me displayed.
Quickstart
git clone https://github.com/mbailey/show-me.git
claude --plugin-dir show-me # load the plugin for this Claude Code session
Claude Code adds the plugin's bin/ to PATH automatically for the agent, so
show-me and look-at are ready to use immediately from Claude Code. To call
them yourself from a regular shell (or from another Agent Skill runtime that
doesn't do this for you), add bin/ to your PATH, e.g. via a symlink into
~/.local/bin:
ln -s "$(pwd)/show-me/bin/show-me" ~/.local/bin/show-me
ln -s "$(pwd)/show-me/bin/look-at" ~/.local/bin/look-at
Requirements
Required
- tmux - Terminal multiplexer for pane management and context capture
- Used by both
show-me and look-at commands
show-me creates a dedicated "show" session for content display
look-at captures pane content and displays hierarchy
Optional Enhancements
-
nvim-remote - Enhanced Neovim socket integration
- Provides automatic socket detection and richer editor status
- Without it: show-me uses calculated socket paths (works fine)
- With it: More flexible socket discovery across multiple Neovim instances
-
Browser - For URL display (Firefox preferred, configurable via SHOW_BROWSER)
Renamed in SHOW-58: the commands are now show-me and look-at (was
show / look). The old names clashed with system binaries — look was
silently shadowed by util-linux's dictionary look. The namespaced names
have no such clash. The old show binary is gone (its temporary migration
stub was removed in SHOW-125) — calling it now is a plain command-not-found.
look was never one of ours to remove — without our binary claiming the
name, look now falls through to the system's util-linux dictionary lookup
tool (not command-not-found, and not look-at either — use look-at
explicitly). See
skills/show-me/references/troubleshooting.md.
Installation
Claude Code (and GitHub Copilot CLI)
Note: GitHub Copilot CLI supports the same --plugin-dir flag — these instructions work for both tools.
Load directly from a local clone:
claude --plugin-dir /path/to/show-me
Or install via a marketplace that includes show-me:
/plugin marketplace add mbailey/skills
/plugin install show-me@mbailey
metool
mt package install show-me
Commands
show-me
Display content for the user:
show-me path/to/file.py # Open file in Neovim
show-me path/to/file.py:42 # Open file at line 42
show-me path/to/file.py:10-30 # Highlight lines 10-30 (preferred for code)
show-me path/to/file.py#L42 # URL-fragment style (same as :42)
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://example.com # Open URL in browser
show-me "cmd:git status" # Run command in shell pane
show-me diff # DiffView of unstaged changes
show-me diff:main # DiffView vs main branch
show-me "diff:main -- src/" # DiffView vs main, scoped to src/
show-me pane:%23 # Focus tmux pane (cross-session)
show-me pane:self # Focus your own pane (agent self-focus)
HTML defaults to the browser. .html/.htm targets (including
file://...html) are treated as a rendered format: "show me this" means
"let me see it", not "let me edit it". Use --editor for one call, or set
SHOW_HTML_OPEN=editor to flip the default persistently, to open the HTML
source in Neovim instead. Non-HTML files are unaffected.
look-at
Observe what the user is viewing:
look-at # Capture current pane context
look-at --hierarchy # Show tmux session/window/pane layout
Layouts
By default, show-me uses the stacked layout: a leader pane on the left
with content panes accumulating to the right, in the current window. --layout
(or SHOW_LAYOUT) picks a different split, or restores the old separate "show"
window behavior with --layout window: