| name | agentviewer |
| description | Display rich content (markdown, code, diffs, mermaid diagrams) to users in a browser viewer. Use when you need to show complex content that benefits from rich rendering - reports, documentation, code with syntax highlighting, git diffs, or diagrams. |
| allowed-tools | Read,Bash(curl:*,agentviewer:*) |
| version | 0.1.0 |
| author | Peter Engelbrecht <https://github.com/pengelbrecht> |
| license | MIT |
Agentviewer
Display rich content in a browser-based tabbed viewer. Perfect for showing users:
- Markdown documents with rendered formatting
- Code with syntax highlighting (180+ languages)
- Git diffs with side-by-side comparison
- Mermaid diagrams and LaTeX math
Prerequisites
The agentviewer CLI must be installed and available in your PATH.
Installation Options
macOS/Linux (Homebrew):
brew install pengelbrecht/tap/agentviewer
Windows (Scoop):
scoop bucket add agentviewer https://github.com/pengelbrecht/scoop-agentviewer
scoop install agentviewer
Windows (Winget):
winget install pengelbrecht.agentviewer
Linux (deb - Debian/Ubuntu):
curl -LO https://github.com/pengelbrecht/agentviewer/releases/latest/download/agentviewer_amd64.deb
sudo dpkg -i agentviewer_amd64.deb
Linux (rpm - Fedora/RHEL):
curl -LO https://github.com/pengelbrecht/agentviewer/releases/latest/download/agentviewer_x86_64.rpm
sudo rpm -i agentviewer_x86_64.rpm
Go:
go install github.com/pengelbrecht/agentviewer@latest
Binary: Download from GitHub Releases
Verify Installation
agentviewer --version
Quick Start
Start the server (runs in background, opens browser):
agentviewer serve --open &
Create a tab with content:
curl -X POST localhost:3333/api/tabs \
-d '{"title": "Report", "type": "markdown", "content": "# Hello\n\nContent here..."}'
API Reference
Base URL: http://localhost:3333
Create/Update Tab
curl -X POST localhost:3333/api/tabs \
-d '{"title": "Notes", "type": "markdown", "content": "# My Notes\n\n- Item 1\n- Item 2"}'
curl -X POST localhost:3333/api/tabs \
-d '{"title": "main.go", "type": "code", "content": "package main\n\nfunc main() {}", "language": "go"}'
curl -X POST localhost:3333/api/tabs \
-d '{"title": "Config", "file": "/path/to/config.yaml"}'
curl -X POST localhost:3333/api/tabs \
-d '{"type": "diff", "diff": {"left": "old.go", "right": "new.go"}}'
curl -X POST localhost:3333/api/tabs \
-d '{"id": "my-report", "title": "Report", "type": "markdown", "content": "..."}'
Tab Management
curl localhost:3333/api/tabs
curl localhost:3333/api/tabs/{id}
curl -X DELETE localhost:3333/api/tabs/{id}
curl -X DELETE localhost:3333/api/tabs
curl -X POST localhost:3333/api/tabs/{id}/activate
Server Status
curl localhost:3333/api/status
Content Types
| Type | Description | Features |
|---|
| markdown | Rendered markdown | GFM, Mermaid diagrams, LaTeX math, code blocks |
| code | Source code | Syntax highlighting for 180+ languages |
| diff | File comparison | Side-by-side view with line numbers |
Markdown Features
Agentviewer renders GitHub-flavored markdown with extensions:
# Mermaid Diagrams
\`\`\`mermaid
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Action]
B -->|No| D[End]
\`\`\`
# LaTeX Math
Inline: $E = mc^2$
Block:
$$
\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$
# Code Blocks (with syntax highlighting)
\`\`\`python
def hello():
print("Hello, world!")
\`\`\`
Common Workflows
Show Analysis Results
agentviewer serve --open &
curl -X POST localhost:3333/api/tabs -d '{
"title": "Analysis",
"type": "markdown",
"content": "# Code Analysis\n\n## Summary\n- 10 files analyzed\n- 2 issues found\n\n## Issues\n\n### Issue 1\n```go\n// problematic code\nfunc foo() {}\n```\n"
}'
Show Code with Live Reload
curl -X POST localhost:3333/api/tabs -d '{
"title": "main.go",
"file": "./main.go"
}'
Show Git Diff
git diff HEAD > /tmp/changes.diff
curl -X POST localhost:3333/api/tabs -d '{
"title": "Changes",
"type": "diff",
"file": "/tmp/changes.diff"
}'
Create Architecture Diagram
curl -X POST localhost:3333/api/tabs -d '{
"title": "Architecture",
"type": "markdown",
"content": "# System Architecture\n\n```mermaid\ngraph TB\n subgraph Frontend\n A[React App]\n end\n subgraph Backend\n B[API Server]\n C[Database]\n end\n A --> B\n B --> C\n```"
}'
Best Practices
- Start server once at the beginning of a session
- Use file paths when showing existing files (enables auto-reload)
- Use meaningful titles - they appear in the tab bar
- Clean up - delete tabs when no longer needed
- Use markdown for complex documents - renders beautifully with diagrams
- Use explicit IDs when updating content to avoid creating duplicate tabs
Error Handling
if ! curl -s localhost:3333/api/status > /dev/null 2>&1; then
agentviewer serve --open &
sleep 1
fi
CLI Reference
agentviewer serve [--port 3333] [--open]
agentviewer --version
agentviewer -v