← WisprsCONTENT HISTORY

Update to Wisprs

Snapshot Oct 31, 2026 · 06:10 UTC · version 0.30.0

WHAT CHANGED

Package or technical metadata updated

Package or technical metadata updated

Observed in package metadata. These changes alone do not establish a new customer-facing feature.

Save Wisprs and check future changes in Following.

Up to 3 plugins free · no card required.

All fields and original values.

These are saved file metadata. Open a changed file to read its text edits.

Package file

Before

Oct 29, 2026 · 12:06 UTC

5bd479eaee8e79c113bd457cc6fb0c4c20d3d9413b23e4f5a049d7dd8af3e71a

After

Oct 31, 2026 · 06:10 UTC

408cf58139d9c0333789185626d35b9ca53a41bf24ff1516f6938d877a8b0be4

Package file

Before

Oct 29, 2026 · 12:06 UTC

8210d1c63bba3509e8d8e781949549c09646d2b57dd2cbc9076e2972183ce59a

After

Oct 31, 2026 · 06:10 UTC

31be01dfab617d176ac9c75bc58363af9b5f146f7c08b80b89588571e102dc12

Package file

Before

Oct 29, 2026 · 12:06 UTC

0901105541ab00cb0295b7887504eeb721a834e11e016b2f9c798917522e76fc

After

Oct 31, 2026 · 06:10 UTC

e101a65b3473e920ee7c3840e0c13925a0d4b5281f0603b2204a32691f8d8766

Package file

Before

Oct 29, 2026 · 12:06 UTC

6919

After

Oct 31, 2026 · 06:10 UTC

7884

Compare saved observations

Download comparison JSON

.codex-plugin/plugin.json

− removed · + added

--- before
+++ after
@@ -1,7 +1,7 @@
 {
   "name": "wisprs-ai-connectors",
-  "version": "0.29.1",
-  "description": "Transcribe, search, export, summarize, repurpose, and translate media through Wisprs.",
+  "version": "0.30.0",
+  "description": "Transcribe attached recordings and public links, then search, export, summarize, repurpose, and translate them through Wisprs.",
   "author": {
     "name": "Wisprs",
     "email": "tosh@getwisprs.com",
@@ -21,7 +21,7 @@
   "interface": {
     "displayName": "Wisprs",
     "shortDescription": "Turn recordings into content",
-    "longDescription": "Transcribe public audio or video, search the connected library, export transcripts, and generate summaries, chapters, repurposed content, and translations through durable Wisprs operations.",
+    "longDescription": "Attach a recording or paste a public audio or video link and get the transcript right in the conversation, then search the connected library, export transcripts, and generate summaries, chapters, repurposed content, and translations through durable Wisprs operations.",
     "developerName": "AEY Group LTD",
     "category": "Productivity",
     "capabilities": [
@@ -40,13 +40,14 @@
     "logo": "./assets/wisprs-logo.png",
     "defaultPrompt": [
       "Transcribe this sample podcast with Wisprs: https://wisprs.co/samples/wisprs-sample-remote-work-podcast.mp3",
-      "Help me upload a recording from my computer to Wisprs.",
+      "Transcribe the recording I attached with Wisprs.",
       "Show my recent Wisprs transcripts and what I can do with them."
     ]
   },
   "mcpServers": "./.mcp-openai.json",
   "extensions": {
     "com.openai": {
+      "onboardingSkill": "./skills/setup/SKILL.md",
       "review": {
         "demo_recording_url": "https://youtu.be/QMzdD6NRPvI",
         "test_cases": {
@@ -55,7 +56,13 @@
               "description": "Transcribe a public recording and read the result. Starts billable work, so ChatGPT must ask for confirmation first.",
               "prompt": "Transcribe https://wisprs.co/samples/wisprs-reviewer-sample.mp3 with Wisprs and show me the transcript when it is ready.",
               "tools_triggered": "transcribe_url, get_job_status, get_transcript",
-              "expected_behavior": "ChatGPT may ask for confirmation before transcribe_url, because it starts billable work. Wisprs returns an operation receipt and finishes the 22-second sample in about 10 seconds; ChatGPT checks get_job_status until it is completed, then get_transcript returns the text. The speech says it is a synthetic sample for testing transcription and mentions summarizing, chapters, translation and export. Speech-to-text may write the brand name Wisprs as \"Whispers\"."
+              "expected_behavior": "ChatGPT may ask for confirmation before transcribe_url, because it starts billable work. Wisprs returns an operation receipt and renders the Wisprs transcript component inline; the component checks the job itself and shows the transcript when it completes (the 22-second sample finishes in about 10 seconds). ChatGPT may also call get_job_status and get_transcript to read the text into the conversation. The speech says it is a synthetic sample for testing transcription and mentions summarizing, chapters, translation and export. Speech-to-text may write the brand name Wisprs as \"Whispers\"."
+            },
+            {
+              "description": "Transcribe a file attached to the chat without leaving ChatGPT. Starts billable work, so ChatGPT must ask for confirmation first.",
+              "prompt": "[Attach any short audio file, for example https://wisprs.co/samples/wisprs-reviewer-sample.mp3 saved locally] Transcribe the recording I attached with Wisprs.",
+              "tools_triggered": "transcribe_file, get_job_status, get_transcript",
+              "expected_behavior": "ChatGPT passes the attachment to transcribe_file (declared through openai/fileParams) and may ask for confirmation first. Wisprs returns an operation receipt and renders the transcript component, which polls get_job_status and then shows the transcript inline with a copy button. The user is never sent to a web page; get_private_media_upload_handoff is only for files that are not attached."
             },
             {
               "description": "Search the connected library. Read-only, no confirmation.",
@@ -74,12 +81,6 @@
               "prompt": "Export my Wisprs transcript \"Podcast: remote work habits\" as an SRT subtitle file.",
               "tools_triggered": "search_library, export_transcript, get_job_status",
               "expected_behavior": "ChatGPT may ask for confirmation, then returns an https download link on wisprs.co (wisprs.co/api/mcp/exports/...) valid for about one hour. Opening it downloads an .srt file with numbered, timestamped cues covering the three remote-work tips."
-            },
-            {
-              "description": "Organize the library with two confirmed writes.",
-              "prompt": "In Wisprs, create a folder called \"Pricing decisions\" and move my \"Q4 pricing review\" transcript into it.",
-              "tools_triggered": "search_library, list_folders, create_folder, move_transcript_to_folder, get_job_status",
-              "expected_behavior": "ChatGPT may ask for confirmation before the writes, creates the \"Pricing decisions\" folder, moves the transcript into it, and confirms both."
             }
           ],
           "negative": [
@@ -99,7 +100,7 @@
         }
       },
       "publication": {
-        "release_notes": "First public submission of Wisprs for ChatGPT. Transcribe public audio and video links, follow progress, and read transcripts in pages. Search your library, summarize, split into chapters, repurpose, translate, and export (TXT, SRT, VTT, JSON, Markdown, DOCX) with a one-hour download link. Organize folders, share links, and manage transcripts. Actions that change data or start billable work are marked as such, so ChatGPT can confirm them with you first."
+        "release_notes": "0.30.0: the transcript stays in the conversation. New transcribe_file tool accepts a file attached to the chat (openai/fileParams), so private recordings no longer need a hand-off to the website. New inline transcript component (ui://wisprs/transcript-v2.html) shows progress, keeps checking long jobs, and renders the finished transcript with copy and load-more; transcribe_url, transcribe_file and get_transcript render it. get_job_status now holds its read open for up to 30 s and says plainly when a job is still running. Every tool has invoking/invoked status strings. New onboarding skill (skills/setup) for first run; the bundled wisprs skill is rewritten around the 23 tools ChatGPT lists. Starter prompt 2 now transcribes an attached recording. No auth or endpoint changes."
       }
     }
   },
Full technical diff · 22 changed fields

changed /files/.claude-plugin~1marketplace.json/sha256

BEFORE
"5bd479eaee8e79c113bd457cc6fb0c4c20d3d9413b23e4f5a049d7dd8af3e71a"
AFTER
"408cf58139d9c0333789185626d35b9ca53a41bf24ff1516f6938d877a8b0be4"

changed /files/.claude-plugin~1plugin.json/sha256

BEFORE
"8210d1c63bba3509e8d8e781949549c09646d2b57dd2cbc9076e2972183ce59a"
AFTER
"31be01dfab617d176ac9c75bc58363af9b5f146f7c08b80b89588571e102dc12"

changed /files/.codex-plugin~1plugin.json/sha256

BEFORE
"0901105541ab00cb0295b7887504eeb721a834e11e016b2f9c798917522e76fc"
AFTER
"e101a65b3473e920ee7c3840e0c13925a0d4b5281f0603b2204a32691f8d8766"

changed /files/.codex-plugin~1plugin.json/size

BEFORE
6919
AFTER
7884

changed /files/CHANGELOG.md/sha256

BEFORE
"5f4cc64191312bc697433b169df61df457713c56a246deefbe6e357c42695ea4"
AFTER
"faa88cf2873c2e35c751f43962cb17c084c8d49dad53a6caefa4f6b9c5570ca8"

changed /files/CHANGELOG.md/size

BEFORE
16296
AFTER
18084

changed /files/docs~1HOST_COMPATIBILITY.md/sha256

BEFORE
"cdf06704ed18d7186c0954958fca6f184dd0ca08360690a326c9a18c0b4bc920"
AFTER
"a38bf1833f3e75ec76a9a8b81fd04f67b3f1e213577281b22082a0bc8555f378"

changed /files/docs~1HOST_COMPATIBILITY.md/size

BEFORE
4109
AFTER
5165

changed /files/docs~1OPENAI_SUBMISSION.md/sha256

BEFORE
"c9c7b0798b2b7e9563e2073683c9f37074376151329fd3b87302cb64619f72a2"
AFTER
"ee1b8e9d05b08ae5efd4ba5851a531d14e2edd8939ad5131aa2dd3fc2c2c075a"

changed /files/docs~1OPENAI_SUBMISSION.md/size

BEFORE
3957
AFTER
4341

changed /files/package-lock.json/sha256

BEFORE
"57165f02dcb807eead5b4934e8ea404f6eeab65b15866b1ab88672646d75cf24"
AFTER
"42f7043bed9861c938186aeac2ebdbffd4079ee99930282eb7b334b6a201c9a5"

changed /files/package.json/sha256

BEFORE
"57f8f46a90a790c169647cbd15c391b9f2cc599b80a60049d34fd4e5ce577293"
AFTER
"86a5b5352f0fc6c3aebc0f980ed38bf837cb5caafd0f717f8ef837850dfd0c7c"

changed /files/release.json/sha256

BEFORE
"111983bf559e1a943610ddfacaa10390a089bca2f848477c6bd485b89aebc01c"
AFTER
"c154e3face4f21c40a81e9a2d23464c59d04f1736c33f8c0cc6f833c97fb15e9"

changed /files/release.json/size

BEFORE
3192
AFTER
3886

changed /files/scripts~1build-archive.mjs/sha256

BEFORE
"affc66b0a899eb724d48cca432b5f0bd599766b6662c6908f5c58ddfe7ec7fd1"
AFTER
"c64a9053d4613f0c6804fa9e5c37c0096f78590c75cffaa4d4c40d99a0724765"

changed /files/scripts~1build-archive.mjs/size

BEFORE
3281
AFTER
3443

changed /files/scripts~1validate-package.mjs/sha256

BEFORE
"eceafc33b68d9b7494a139205e629bacb63a44138d7ac1f4a0078ddc9d670d6f"
AFTER
"29a9bc088809eb7058b8900a370c133470940060a074dda1c234c5ff331064b6"

added /files/skills~1setup~1SKILL.md

BEFORE
Field was absent
AFTER
{
  "sha256": "c5e9bd9ba51a54bd9fceddae715cc3278f08d125e19efaeafe819434717567d5",
  "size": 2319
}

changed /files/skills~1wisprs~1SKILL.md/sha256

BEFORE
"4bcfd8e9923255367d2bf9121fd8a8819fdab20083a676ee51a9a27e161e09ff"
AFTER
"552f3271663ed3e340b77c0e6ce74ff597ef52462d6ef247d2ccf5948419418c"

changed /files/skills~1wisprs~1SKILL.md/size

BEFORE
10484
AFTER
10712

changed /files/skills~1wisprs~1agents~1openai.yaml/sha256

BEFORE
"c26603c6a97901100cec4aa8ac31e021699d9fccdd7ee2e2bbfe1d112fb463db"
AFTER
"2ed6d04e42256445581bbdcccc106d71ea8d5e59e5bd7274c7fe93b92a9205ad"

changed /files/skills~1wisprs~1agents~1openai.yaml/size

BEFORE
425
AFTER
452
Full snapshot data
{
  "files": {
    ".app.json": {
      "sha256": "3fa538d18bd0818256880a51b7dd49395272e86fa62f2b6240ef6a24525d985a",
      "size": 98
    },
    ".claude-plugin/icon.png": {
      "sha256": "b70b5026cdb9ca167bb7ab3e85def32ae98333a9a48fb36bad38d74a582f8cb8",
      "size": 47807
    },
    ".claude-plugin/marketplace.json": {
      "sha256": "408cf58139d9c0333789185626d35b9ca53a41bf24ff1516f6938d877a8b0be4",
      "size": 930
    },
    ".claude-plugin/plugin.json": {
      "sha256": "31be01dfab617d176ac9c75bc58363af9b5f146f7c08b80b89588571e102dc12",
      "size": 796
    },
    ".codex-plugin/plugin.json": {
      "sha256": "e101a65b3473e920ee7c3840e0c13925a0d4b5281f0603b2204a32691f8d8766",
      "size": 7884
    },
    ".github/workflows/validate.yml": {
      "sha256": "af8a8c74107d6c9cd68e44f13584568c51807d1f831315b320ca2bce4a811c54",
      "size": 1347
    },
    ".gitignore": {
      "sha256": "66e3468a245d9fc691b4af8f681340e19843a5d9ed3ad48fef79cb22bf208e34",
      "size": 22
    },
    ".mcp-openai.json": {
      "sha256": "40459b3caf61a422040dfebc81837de05d06be4a1027bd1ae04462fbdca506ea",
      "size": 303
    },
    ".mcp.json": {
      "sha256": "3fa350bac2ceeeaeb79520773cb64a813179753d813da52c9262e25376143e0f",
      "size": 118
    },
    "CHANGELOG.md": {
      "sha256": "faa88cf2873c2e35c751f43962cb17c084c8d49dad53a6caefa4f6b9c5570ca8",
      "size": 18084
    },
    "LICENSE": {
      "sha256": "41725fce3232d2de3ea82719ebc2aca82baa8a475cd12999fa4b17cb4aa0b13a",
      "size": 1063
    },
    "PRIVACY.md": {
      "sha256": "e44dc30f75b68945bd5d64385674ce6aa4028afc4db49363a5a075be0b1a4a35",
      "size": 2042
    },
    "README.md": {
      "sha256": "818fac4ce840d75e4d3f0005893f82be4f43d7ddcb3f197e50b35f5e462d574d",
      "size": 4745
    },
    "SECURITY.md": {
      "sha256": "995593185f26a306bc844ae4be5a4140c7c0058b02b3d0210137ab57a9b792e0",
      "size": 1887
    },
    "assets/wisprs-icon.png": {
      "sha256": "bf20c0ec7b3a31f1e8b498daafef17923cb5c759266cbe288ef96858357c8743",
      "size": 6514
    },
    "assets/wisprs-logo.png": {
      "sha256": "ec5c4798917c0ed3a2821355c0f39ce10613b58b998b24947c85c04a48fd85f6",
      "size": 55648
    },
    "docs/ANTHROPIC_SUBMISSION.md": {
      "sha256": "ac8476b9aee2610037fcc8c3bd89c7698c723633addbdc1d1b9ef148bf93d8fd",
      "size": 3975
    },
    "docs/HOST_COMPATIBILITY.md": {
      "sha256": "a38bf1833f3e75ec76a9a8b81fd04f67b3f1e213577281b22082a0bc8555f378",
      "size": 5165
    },
    "docs/OPENAI_SUBMISSION.md": {
      "sha256": "ee1b8e9d05b08ae5efd4ba5851a531d14e2edd8939ad5131aa2dd3fc2c2c075a",
      "size": 4341
    },
    "docs/RELEASE_PROCESS.md": {
      "sha256": "c3b2872f125d1bb25739a114729ab5a9923ac363a8554bad539d4eb8459017ec",
      "size": 1724
    },
    "docs/REVIEWER_GUIDE.md": {
      "sha256": "fae4e02e18d5a65380b2a66b46974cad9e105f196a981d41a5940cc93bcb97a4",
      "size": 5351
    },
    "docs/SUBMISSION_GATES.md": {
      "sha256": "b633c566fcd86f61e7b811222cbeec1e65c846ee308b1dac5fde8c57d9950acb",
      "size": 12650
    },
    "docs/evidence/2026-08-29-package-validation.md": {
      "sha256": "8f024d7167f175b3873de481947bba107ecf430e7e85998e4ae51bbec4c33580",
      "size": 1091
    },
    "docs/evidence/2026-08-29-public-repo-provenance.md": {
      "sha256": "c6d05d6fe34451a3c07ef1817cc97a31788296f8e3279761f2c19b616d2bf437",
      "size": 1590
    },
    "docs/evidence/2026-09-01-meeting-capture-write-verification.md": {
      "sha256": "2730a51b85aa4195bd6fdd4ab0e2aafcd799edf217955a51a686b3c4a434e47b",
      "size": 5261
    },
    "package-lock.json": {
      "sha256": "42f7043bed9861c938186aeac2ebdbffd4079ee99930282eb7b334b6a201c9a5",
      "size": 272
    },
    "package.json": {
      "sha256": "86a5b5352f0fc6c3aebc0f980ed38bf837cb5caafd0f717f8ef837850dfd0c7c",
      "size": 421
    },
    "release.json": {
      "sha256": "c154e3face4f21c40a81e9a2d23464c59d04f1736c33f8c0cc6f833c97fb15e9",
      "size": 3886
    },
    "scripts/build-archive.mjs": {
      "sha256": "c64a9053d4613f0c6804fa9e5c37c0096f78590c75cffaa4d4c40d99a0724765",
      "size": 3443
    },
    "scripts/check-links.mjs": {
      "sha256": "8fdd3eb01904e9b172ed6a9ddbf46c42a815d28cdf3c2882a83ac2ea5efc2608",
      "size": 2689
    },
    "scripts/validate-package.mjs": {
      "sha256": "29a9bc088809eb7058b8900a370c133470940060a074dda1c234c5ff331064b6",
      "size": 14696
    },
    "skills/setup/SKILL.md": {
      "sha256": "c5e9bd9ba51a54bd9fceddae715cc3278f08d125e19efaeafe819434717567d5",
      "size": 2319
    },
    "skills/wisprs/SKILL.md": {
      "sha256": "552f3271663ed3e340b77c0e6ce74ff597ef52462d6ef247d2ccf5948419418c",
      "size": 10712
    },
    "skills/wisprs/agents/openai.yaml": {
      "sha256": "2ed6d04e42256445581bbdcccc106d71ea8d5e59e5bd7274c7fe93b92a9205ad",
      "size": 452
    },
    "skills/wisprs/assets/wisprs-icon.png": {
      "sha256": "bf20c0ec7b3a31f1e8b498daafef17923cb5c759266cbe288ef96858357c8743",
      "size": 6514
    },
    "skills/wisprs/assets/wisprs-logo.png": {
      "sha256": "ec5c4798917c0ed3a2821355c0f39ce10613b58b998b24947c85c04a48fd85f6",
      "size": 55648
    },
    "tests/package.test.mjs": {
      "sha256": "ba59c1953ba47c83edeb2c7555cb2f806fb196c5023785c96bdb680446c10fc7",
      "size": 2340
    }
  }
}

SHA-256 of public snapshot: e0add6582ecfc916830939557f9cfffd5882991a9f592631a68e9b5c332e1c2d