streamable-httpMITupdated 10d ago
Present PDFs from your browser — try it at presio.xyz.
O que dá para fazer com Presio?
Presio
Present PDFs from your browser — try it at presio.xyz.
Upload a PDF presentation, get a short link, and control the slideshow from one browser window while viewers watch in another. Presio is a hosted service; this repository is its source code.


Features
- Local by default — your PDF stays in the browser and is never uploaded. Works offline; local presentations are kept for up to 7 days.
- Controller + viewer — drive slides from the controller window while a viewer window mirrors it, kept perfectly in sync.
- Present across devices — log in and sync online to get a 6-character session code. Viewers enter it on the home page and follow along live over WebSockets.
- Shared control — hand out a controller passphrase to let someone else drive.
- Speaker notes — written next to your current and next slide, rendered as markdown.
- Embedded media — local videos and GIFs, direct video URLs, and YouTube/Vimeo. Playback, autoplay, and seeking all stay in sync with viewers.
- Presentation timer — track how long you've been talking.
- Customizable controller — rearrange the layout and remap keyboard shortcuts.
- Recent presentations — pick up where you left off from the home page.
- Download — anyone can grab the PDF from the presentation view.
- Agent APIs — MCP server and REST API for AI agents; see Use it from an AI agent.
Adding videos and speaker notes
Presio is agnostic to the typesetting engine used — any PDF works, and notes can also be embedded by hand from plain Typst or LaTeX (see the about page for details). Official packages are available for the two most common ones:
- Typst — presio-typst-package
- LaTeX — presio-latex-package
Typst
#import "@preview/presio:0.2.1": media, speaker-notes
= Introduction
Hello world.
#speaker-notes[
Remember to mention the demo before moving on.
]
#media("https://www.youtube.com/watch?v=dQw4w9WgXcQ", width: 60%, aspect-ratio: 16/9)
LaTeX
\documentclass{beamer}
\usepackage{presio}
\begin{document}
\begin{frame}{Introduction}
Hello world.
\presionote{Remember to mention the demo before moving on.}
\end{frame}
\begin{frame}{The demo}
\presiomedia[width=0.7\linewidth]{https://www.youtube.com/watch?v=dQw4w9WgXcQ}
\end{frame}
\end{document}
For LaTeX, copy presio.sty from the package repository next to your .tex file — that's the whole install.
Self-hosting
Want to run Presio yourself instead of using the hosted service? For a full
deployment (accounts, cross-device sync, your own domain) see
deploy/README.md.
For a single offline container with no accounts and no Supabase — just present PDFs on your own machine or LAN — nothing needs building:
docker run -d -p 3001:3001 -e PRESIO_MODE=local -e LOCAL_DATA_DIR=/data \
-e TRUST_PROXY=false -v presio-data:/data \
ghcr.io/benedict-armstrong/presio-local:1
The :1 tag tracks the current major release line — fixes and features, no
breaking changes. See Versions and upgrading.
See "Running fully local / offline" for what this mode does and doesn't include.
Instalação
Adicione Presio ao seu cliente. Escolha o que você usa.
claude mcp add --transport http presio https://presio.xyz/mcpcodex mcp add presio --url https://presio.xyz/mcp{
"mcpServers": {
"presio": {
"url": "https://presio.xyz/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"presio": {
"type": "http",
"url": "https://presio.xyz/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"presio": {
"url": "https://presio.xyz/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"presio": {
"serverUrl": "https://presio.xyz/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Pontuação
39 / 100
Incompleta
- Documentação16/25
- Manutenção19/25
- Confiança13/20
- Capacidade0/15
- Instalação12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 2 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Histórico de versões
| Versões | Publicada |
|---|---|
| 1.0.0Mais recente | 15 de jul. de 2026 |