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.
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. Calling the old show now prints a migration error and
exits non-zero; look is removed. See docs/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/plugins
/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 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)
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 opens content in a separate "show" window. --layout (or
SHOW_LAYOUT) routes it into a split pane in the current window instead:
show-me --layout right README.md # Split right (70% wide)
show-me --layout below "cmd:make" # Split below (30% tall)
show-me --layout left README.md # Split left
show-me --layout above "cmd:date" # Split above
show-me --layout stacked "cmd:claude" # Stacked split — accumulate panes (great for teammate-style)
show-me --layout window README.md # Default — separate "show" window
show-me --here README.md # Shorthand: right for files, below for commands
SHOW_SPLIT_SIZE=40 overrides the direction default (e.g. 40 means 40%).
Configuration
Environment variables (defaults shown):
| Variable | Default | Purpose |
|---|
SHOW_SESSION | (auto-detect) | Target tmux session |
SHOW_WINDOW | show | Window name for show output |
SHOW_LAYOUT | window | Default layout: right/below/left/above/stacked/window |
SHOW_SPLIT_SIZE | (auto) | Split percentage; overrides direction default |
SHOW_BROWSER | (auto) | Browser for URLs (Firefox, Chrome, Safari, …) |
SHOW_FOCUS | true | Switch focus to the show pane/window |
SHOW_ZOOM | true | Zoom the pane after showing (window mode only) |
SHOW_AUTO_ATTACH | true | Auto-attach the terminal if no tmux client is attached |
For the full reference (every option, every flag), see docs/commands.md
or run show-me --help.
Optional Integrations
nvim-remote (optional)
If nvim-remote is available, show-me uses it for enhanced features: