Advanced PDF viewer & editor — annotate, organize pages, compress, watermark, passwords, forms. Open PDFs from chat or Apps.
plugin.js below is only the sandboxed Settings / Apps companion (~help text + open button).
Full PDF viewer/editor (annotate, organize, compress, etc.) is built into the desktop renderer — not this sandbox pack.
Desktop host modules (shipped inside ggbro, not this zip):
frontend/src/renderer/components/plugins/PdfStudioHostApp.tsxfrontend/src/renderer/components/pdf/PdfStudioModal.tsxfrontend/src/renderer/components/pdf/PdfAnnotateLayer.tsxfrontend/src/renderer/components/pdf/pdfOps.tsfrontend/src/renderer/store/pdfStudioStore.tsSandbox packs cannot run Electron, yt-dlp, or pdf.js — that is why the real UI stays in the host. Install the pack → Apps grid to use the full feature.
{
"id": "com.ggbro.plugin.pdf-studio",
"name": "PDF Studio",
"version": "1.0.1",
"author": "ggbro",
"description": "Advanced PDF viewer & editor — annotate, organize pages, compress, watermark, passwords, forms. Open PDFs from chat or Apps.",
"main": "plugin.js",
"permissions": ["ui.panel", "ui.toast", "ui.sound", "storage"]
}
/**
* PDF Studio — companion stub.
* Viewer/editor UI lives in the desktop host (PdfStudioModal).
*/
(async function () {
try {
ggbro.log('pdf-studio companion ready');
} catch (e) {
ggbro.log('pdf-studio init', e && e.message);
}
})();
# PDF Studio (official)
**This pack is NOT the full PDF editor.** `plugin.js` is the Settings / Apps companion only.
The viewer, annotations, compress, organize, etc. ship in the **desktop host** (cannot run pdf.js / Electron APIs inside the sandbox iframe).
Host modules:
- `PdfStudioHostApp.tsx`
- `PdfStudioModal.tsx` / `PdfAnnotateLayer.tsx` / `pdfOps.ts`
- `pdfStudioStore.ts`
## Enable
Settings → Plugins → install **PDF Studio** → Apps (9-dot) → PDF Studio
Chat PDF chips: **Open with PDF Studio**.
## Host event
```js
window.dispatchEvent(new CustomEvent('ggbro:pdf-studio-open', {
detail: { url: 'https://…/file.pdf', filename: 'file.pdf', source: 'chat' },
}));
```