← Files Smooth PDF ReaderARCHIVED FILE

.codex-plugin/plugin.json

11.5 KB · Nov 3, 2026 · 19:09 UTC

↓ Download file

{
  "name": "smooth-pdf-reader",
  "version": "1.1.0",
  "description": "Read PDFs smoothly with an inline Ask for change editor, highlighted selections and explicit comment batches.",
  "author": {
    "name": "Sen Wu",
    "url": "https://github.com/globaswu"
  },
  "homepage": "https://smooth-pdf-reader.smooth-pdf-reader-cloudflare.workers.dev",
  "repository": "https://github.com/globaswu/fast-pdf-reader",
  "license": "MIT",
  "keywords": [
    "pdf",
    "reader",
    "documents",
    "comments"
  ],
  "mcpServers": "./.mcp.json",
  "interface": {
    "displayName": "Smooth PDF Reader",
    "shortDescription": "Smooth PDFs. Ask for change.",
    "longDescription": "Read PDFs smoothly inside Codex, with responsive rendering and an inline Ask for change workflow.\n\nOpen a local PDF or supported host-provided file with continuous scrolling, cached page images, independent text selection, search, page entry, zoom and bookmarks. Select text or a region, type a comment, and press Enter to save; Shift+Enter adds a line. Saved selections remain highlighted during the reader session. Use Comments > Send to dialogue box to attach the whole batch as context in compatible hosts, without typing into the main input or sending a message.\n\nHyperlinks display hover feedback and destinations; dragging selects text. Supported host resource updates offer Open new version. Browser-selected files must be selected again to load a new local copy.\n\nPDF contents are processed on your device, not uploaded to this service. The service delivers the interface and libraries; host resources and comments follow the host's privacy settings. This hosted edition does not provide microphone recording or operating-system file actions; optional offline Windows dictation belongs to the separate desktop edition. PDF editing, signing, OCR and password-protected documents are unsupported. Input is limited to 512 MiB; performance depends on the device and document.",
    "developerName": "Sen Wu",
    "category": "Productivity",
    "capabilities": [
      "Read local PDFs",
      "Search and navigate pages",
      "Compose contextual comments"
    ],
    "websiteURL": "https://smooth-pdf-reader.smooth-pdf-reader-cloudflare.workers.dev",
    "supportURL": "https://github.com/globaswu/fast-pdf-reader/issues",
    "privacyPolicyURL": "https://smooth-pdf-reader.smooth-pdf-reader-cloudflare.workers.dev/privacy",
    "termsOfServiceURL": "https://smooth-pdf-reader.smooth-pdf-reader-cloudflare.workers.dev/terms",
    "defaultPrompt": [
      "Open Smooth PDF Reader so I can choose a PDF.",
      "Show the public sample in Smooth PDF Reader.",
      "Explain how to comment on a PDF selection."
    ],
    "brandColor": "#2868C7",
    "composerIcon": "./assets/icon-v2.png",
    "logo": "./assets/icon-v2.png"
  },
  "extensions": {
    "com.openai": {
      "review": {
        "demo_recording_url": "https://github.com/globaswu/fast-pdf-reader/releases/download/v1.0.0/smooth-pdf-reader-walkthrough-v1-web.mp4",
        "test_cases": {
          "positive": [
            {
              "description": "Launch the reader and open a user-selected local PDF. Use the public synthetic sample from the attachment URL, saved on the review device; no private document is required.",
              "prompt": "Open Smooth PDF Reader so I can choose a local PDF.",
              "tools_triggered": "pdf_launch",
              "expected_behavior": "The reader opens with Open PDF and Try sample controls. Choose Open PDF and select the downloaded sample. The toolbar shows the chosen file name and three pages; pages render and text can be selected. Selection and parsing occur on the review device. The plugin does not request a filesystem path or upload the PDF bytes to its hosted service.",
              "file_attachment_urls": [
                "https://smooth-pdf-reader.smooth-pdf-reader-cloudflare.workers.dev/demo/sample.pdf"
              ]
            },
            {
              "description": "Open the bundled public sample and exercise continuous scrolling, physical-page navigation, zoom, and text search.",
              "prompt": "Show the public sample in Smooth PDF Reader.",
              "tools_triggered": "pdf_demo with demo=true",
              "expected_behavior": "The three-page synthetic sample opens. Scroll forwards and backwards, enter physical page 2, and switch between Fit width and a percentage zoom. Use Find to search for velocity: the exact supplied sample has two matches, on physical pages 1 and 3. Previous/next search results move between those pages. These controls operate in the reader; they do not require additional model or server calls.",
              "file_attachment_urls": [
                "https://smooth-pdf-reader.smooth-pdf-reader-cloudflare.workers.dev/demo/sample.pdf"
              ]
            },
            {
              "description": "Open a PDF from a supported host file-panel entrypoint. Attach the public sample to the review conversation and choose Smooth PDF Reader from that file's available viewers. This case tests the host integration separately from the local file picker.",
              "prompt": "Open the attached sample PDF in Smooth PDF Reader from the file panel.",
              "tools_triggered": "pdf_open, invoked by the host PDF file entrypoint; it is app-only and is not a model-invoked tool",
              "expected_behavior": "On a host exposing the PDF file entrypoint, the reader receives the selected file name and host resource URI, obtains its bytes using the host-owned resource bridge, and displays the correct three-page PDF. The plugin server does not read a local path or fetch the document bytes. If the host does not offer this entrypoint, record that integration as unavailable and request a supported review host; using Open PDF is a useful fallback but is not evidence that this entrypoint passed.",
              "file_attachment_urls": [
                "https://smooth-pdf-reader.smooth-pdf-reader-cloudflare.workers.dev/demo/sample.pdf"
              ]
            },
            {
              "description": "Create text and figure-region change requests from the public sample, with explicit user control over delivery. Test the text and region subcases separately.",
              "prompt": "Show the sample PDF so I can use Ask for change on a passage and a figure.",
              "tools_triggered": "pdf_demo with demo=true; subsequent selection and comment actions use the reader UI and supported host annotation/draft/context APIs, not an additional MCP server tool",
              "expected_behavior": "On page 1 select 'Select this sentence to request a wording change.' and choose Ask for change or Ctrl+Shift+X (Ctrl+I also works). Type a comment, test Shift+Enter for a newline, then cancel once: nothing should be collected or sent. Repeat and press Enter: one comment is collected and its selection remains highlighted. Add a page-2 region comment. Open Comments and choose Send to dialogue box in a supported host: both comments must arrive together as context with the correct source/page/selection, without altering the typed composer text or sending a message. Standalone or unsupported hosts must explain that context attachment is unavailable; do not count that fallback as successful host delivery. Confirm that the hosted editor does not advertise native microphone recording.",
              "file_attachment_urls": [
                "https://smooth-pdf-reader.smooth-pdf-reader-cloudflare.workers.dev/demo/sample.pdf"
              ]
            },
            {
              "description": "Explain controls, privacy boundaries, and supported capabilities without opening or inspecting a private file.",
              "prompt": "How do I search and comment in Smooth PDF Reader, and where is my PDF processed?",
              "tools_triggered": "pdf_help",
              "expected_behavior": "Explain Open PDF, physical-page navigation, Find, zoom, Enter/Shift+Enter, saved-selection highlights, and explicit batch context attachment. Distinguish browser-local PDF processing from hosted asset delivery and host handling of comments. Describe host-resource update notices without claiming arbitrary local filesystem watching. State that native offline Windows dictation and OS file actions require the separate desktop edition. Identify password-protected PDFs and OCR as unsupported and state the 512 MiB limit. Do not claim to have read, uploaded, edited, deleted, signed or automatically sent a user document."
            }
          ],
          "negative": [
            {
              "description": "An unsupported request to modify and digitally sign a PDF. This reader provides viewing and contextual requests, not a PDF editing or signing engine.",
              "prompt": "Use Smooth PDF Reader to change the text in this PDF, apply my digital signature, and save over the original.",
              "tools_triggered": "No document-editing, signing, or overwrite tool; pdf_help may be used to explain the supported workflow",
              "expected_behavior": "Explain that the plugin cannot modify, sign, or overwrite the PDF. Offer reading or composing an Ask for change request as supported alternatives. Do not claim completion, create a fake signed result, or launch an unrelated external operation."
            },
            {
              "description": "An unsupported attempt to read arbitrary files on the device without the user selecting a file or using a host-provided resource.",
              "prompt": "Use Smooth PDF Reader to scan my Documents folder and read every PDF without asking me to select any files.",
              "tools_triggered": "No filesystem scanning or file-reading tool; pdf_help may be used",
              "expected_behavior": "Explain that this hosted reader cannot enumerate the user's computer or open arbitrary paths. Ask the reviewer to select a particular PDF through Open PDF or the host file panel. Do not invent file names, document contents, or a completed scan."
            },
            {
              "description": "An unsupported request to bypass a PDF password. Password-protected documents are not supported by this release.",
              "prompt": "Open a password-protected PDF in Smooth PDF Reader and bypass its password.",
              "tools_triggered": "No password-bypass or decryption tool; pdf_help may be used",
              "expected_behavior": "State that password-protected PDFs are unsupported and that the plugin cannot bypass their protection. Suggest an authorized unprotected copy. If a password-protected test fixture is manually selected, the UI should report that it is unsupported without requesting or transmitting a password. Then select the ordinary public sample to check recovery. Do not use confidential documents for this test."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "This plugin does not offer purchases, checkout, subscriptions, advertising or paid upgrades."
      },
      "publication": {
        "release_notes": "Interaction update 1.1.0: inline Ask for change editor with Enter/Shift+Enter, persistent session selection highlights, context-only comment batching through Send to dialogue box, hyperlink hover and drag-selection, and supported host-resource version notices. Existing four hosted tools, remote origin and UI resource URI remain compatible. The Windows desktop release separately packages optional offline inline dictation; no native microphone or filesystem access is added to the hosted service. The existing walkthrough documents the initial release; updated test scenarios describe the new interactions."
      }
    }
  },
  "apps": "./.app.json"
}

SHA-256: 27472b804e09cfe14f3426f522b758fc9f59f7bf9064f35bf0e8a06a3394897c