---
title: "viewer"
description: "A tabbed document viewer beside the conversation: images, PDF, HTML, Markdown, Word, PowerPoint, Excel and plain text, plus audio and video you can play and mark, rendered offline inside a sandboxed frame. Ask the agent "
canonical: https://agentpluginsdirectory.com/plugins/viewer
last-updated: 2026-10-01
---

# viewer
A tabbed document viewer beside the conversation: images, PDF, HTML, Markdown, Word, PowerPoint, Excel and plain text, plus audio and video you can play and mark, rendered offline inside a sandboxed frame. Ask the agent to open a file and it appears as a tab.
- Slug: viewer
- Publisher: Dimension
- Repository: https://github.com/insodimension/dimension-community
- Manifest: packs/viewer/plugin.json
- Version: 0.4.0
- Category (editorial): other
- Skills: 0
- MCP servers: 0
- Stars: 1
- Repository created: 2026-07-31
- Repository last pushed: 2026-10-01
- Publisher type: User
- Listing: https://agentpluginsdirectory.com/plugins/viewer
- Schema: https://agent-plugins.org/schemas/1.0.0/plugin.schema.json

## What viewer does, in the publisher's words

A tabbed document viewer beside the conversation (an artifactory, doc 45): images, PDF, HTML, Markdown, Word, PowerPoint, Excel, plain text, audio and video, rendered offline in a sandboxed frame. The View is app/view (built to app/dist); the MCP server is src/ (bundled to app/server.mjs). Both built files are committed.

plugin.json declares, beside mcpServer, what this viewer can open from outside itself (ArtifactoryDecl.opens, doc 86 §3.2): one entry per family it really draws, each { tool: "view_file", pathArg: "path", ext, mime, annotates, label }. The engine publishes them as the root Store fact artifactory/opens; a card in the thread reads it to show an Open button and to name the handler, so nothing outside this pack hard-codes "the viewer".

annotates is a promise the View keeps: marks, text, element and timeline are the four models the View's annotate layer implements (@dimension/mcp-app-kit/annotate, docs 85 and 88), and the host offers Annotate on a card only for a kind a declared handler covers.

From the project README, punctuation lightly normalized. Full text: https://raw.githubusercontent.com/insodimension/dimension-community/HEAD/packs/viewer/README.md
