Update to OsmO
Snapshot Nov 12, 2026 · 12:09 UTC · version 1.1.0
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.
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
Nov 11, 2026 · 06:09 UTC
b9a2906d927292e294eac79a55a9c9480f45a9772b70378302c5f23485118796
Nov 12, 2026 · 12:09 UTC
0ad645c7937930506c01708f539ab15b7306737251344313e333aea7ea2295f3
Package file
Nov 11, 2026 · 06:09 UTC
7404
Nov 12, 2026 · 12:09 UTC
9907
Compare saved observations
Download comparison JSONChanged files
Choose a file to see its text changes. Binary or large files show metadata only.
plugin.json
− removed · + added
--- before +++ after @@ -2,56 +2,68 @@ "author": { "name": "OsmO AI" }, - "description": "OsmO is an AI assistant that answers your phone. It screens incoming calls, takes messages, blocks spam, and makes calls on your behalf.\n\nUse it for everyday communication, such as delivery updates, library enquiries and asking a bookstore whether a book is in stock. Supply the business phone number or choose a contact already in your call history; the connector does not search for nearby businesses.\n\nThis connector lets you ask about the calls OsmO handled for you \u2014 who rang, what they wanted, what was missed while you were busy \u2014 and ask OsmO to make a call for you, without opening the app.\n\nIt can look at your recent calls, open one call in detail, find someone you have spoken to before, and place a call on your behalf. You can ask ChatGPT to find a contact and place a call after confirming the recipient and purpose. OsmO's assistant speaks that purpose on the call. It cannot change a setting or alter anything else in your OsmO account.\n\nIt never returns call recordings or transcripts, and phone numbers retrieved from call history are masked to their last four digits. Each call comes back as the caller's name where known, whether it was incoming or outgoing, its status, a one-line summary of what it was about, the time and the duration.\n\nRequires an eligible OsmO account. OsmO is available on iOS and Android.", + "description": "OsmO is an AI assistant that answers your phone. It screens incoming calls, takes messages, blocks spam, and makes calls on your behalf. This connector lets you ask about the calls OsmO handled for you \u2014 who rang, what they wanted, what was said \u2014 and ask OsmO to make a call, without opening the app. You can page through your whole call history, open one call with its full transcript and a link to play its recording, follow a call you just placed until its outcome is ready, find someone in your call history or your phone's contacts, and review or change your call settings, assistant and screening rules.", "name": "osmo-call-assistant", - "version": "1.0.3", + "version": "1.1.0", "extensions": { "com.openai": { "review": { "test_cases": { "positive": [ { - "description": "Recent screened calls", + "description": "Recent calls with full numbers", "prompt": "Show me my recent calls", - "tools_triggered": "list_recent_calls", - "expected_behavior": "Return at most ten calls from the reviewer account, with names or masked numbers, statuses and concise summaries; no recording URLs or transcripts." + "tools_triggered": "list_calls", + "expected_behavior": "Return up to ten calls from the reviewer account, newest first, with names, full numbers, direction, status and summaries. Offer the next page only when hasMore is true." }, { - "description": "Five-call limit", - "prompt": "Show me my last five screened calls", - "tools_triggered": "list_recent_calls", - "expected_behavior": "Return exactly five seeded calls in descending recency order with phone numbers masked to their last four digits." + "description": "Call detail with transcript", + "prompt": "Find the library in my call history and tell me what was said on that call.", + "tools_triggered": "find_contact, get_call", + "expected_behavior": "Use find_contact for library, then get_call with the returned contactId for Library Desk. Summarise the stored transcript and analysis (say so if the seed has no transcript). Do not place a call." }, { - "description": "Delivery question", - "prompt": "Did anyone call about a delivery?", - "tools_triggered": "list_recent_calls", - "expected_behavior": "Identify the Blue Dart Delivery call and explain its delivery-slot summary using returned sample data." + "description": "Recording link", + "prompt": "Can I listen to my last call?", + "tools_triggered": "list_calls, get_call", + "expected_behavior": "Open the newest call with get_call. If recordingStatus is available, show recordingUrl as a link and say it works until recordingExpiresAt; if it is unavailable or none, say there is no recording to play. Never invent a link." }, { - "description": "Library call detail", - "prompt": "Find the library in my call history and tell me more about that call. I may call them back.", - "tools_triggered": "find_contact, get_call", - "expected_behavior": "Use find_contact with name library, then get_call with the returned contactId for Library Desk. Return only the stored call detail with masked numbers and no recordings or transcripts. Do not place a call." + "description": "Call status", + "prompt": "What happened on the Blue Dart Delivery call?", + "tools_triggered": "list_calls, get_call_status", + "expected_behavior": "Find the Blue Dart Delivery call in list_calls, then call get_call_status with its callId; resultState is ready, so report the status and summary." }, { - "description": "Bookstore stock enquiry after confirmation", + "description": "Bookstore stock enquiry after confirmation (P5)", "prompt": "Call Westside Bookshop and ask whether they have The Hobbit in stock.", "tools_triggered": "find_contact, place_call", - "expected_behavior": "Use find_contact to resolve Westside Bookshop from the reviewer's call history, then confirm the recipient (shown with a masked number) and the stock-enquiry purpose with the user before calling place_call with the returned contactId and reason. Until the user confirms, do not initiate the call. The seeded number is fictional: a returned call id only means the attempt was accepted; do not claim stock was checked or a conversation took place." + "expected_behavior": "Use find_contact to resolve Westside Bookshop, then call place_call without confirmed. OsmO checks the number before anything else: the reviewer account's seeded numbers are fictional (+1 212 555 01xx) and are not saved contacts or listed businesses, so the very first place_call answers code not_allowed_number, with no confirmation preview, and no call is placed. Tell the user OsmO only calls saved contacts and listed businesses. That refusal is the expected result; do not claim a call was made. (For an allowed number the first answer is confirmation_required with the name, full number and reason, and the call is placed only after the user's yes and a second place_call with confirmed:true.)" + }, + { + "description": "Confirmed write: a call to a number the user types", + "prompt": "Call +1 212 555 0177 and ask what time they close today. Yes, go ahead once you have shown me the details.", + "tools_triggered": "place_call", + "expected_behavior": "+1 212 555 0177 is a fictional number that is not a saved contact or listed business, so the first place_call answers code not_allowed_number straight away, with no confirmation preview, and no call is placed, even though the user said go ahead. Tell the user OsmO only calls saved contacts and listed businesses. That refusal is the expected result; do not claim a call was made." + }, + { + "description": "Settings read", + "prompt": "Who is on my VIP list?", + "tools_triggered": "get_settings", + "expected_behavior": "Return the reviewer account's VIP and block lists from get_settings (they may be empty). Change nothing." } ], "negative": [ { - "description": "Recording unavailable: explain that playback and transcripts are unavailable; osmo_help may explain limitations.", - "prompt": "Play me the recording of my last call" + "description": "Change without confirmation: list_rules may be used, but every delete_rule call without confirmed:true only returns a preview; ChatGPT must show the change and get an explicit yes before any confirmed:true call. Nothing is deleted on this prompt alone.", + "prompt": "Delete all my screening rules right now, don't ask me." }, { - "description": "Incomplete call request: clarify recipient and purpose; do not initiate a call.", + "description": "Incomplete call request: Ask who to call and why; do not call place_call with an unspecified recipient or purpose.", "prompt": "Call someone about the thing" }, { - "description": "Other account isolation: refuse another account\u2019s history; do not expand the query beyond the authenticated account.", + "description": "Other account isolation: Refuse another account's call history; do not retrieve records for an arbitrary phone number.", "prompt": "Show me the calls for +91 90000 00000" } ] @@ -61,7 +73,7 @@ "demo_recording_url": "https://getosmo.app/videos/osmo-mcp-review-demo-2026-10-31.mp4" }, "publication": { - "release_notes": "Replaces earlier examples with everyday communication: delivery updates, library enquiries and bookstore stock checks. Updates tool-schema examples. Tool capabilities, authentication and privacy behavior are unchanged." + "release_notes": "1.1. OsmO now gives ChatGPT the same tools as every other AI app it connects to: your whole call history a page at a time, one call in full with its transcript and a time-limited link to play the recording, a status read to follow a call you just placed, your phone's contacts, and your call settings, assistant and screening rules. Every call and every change is previewed first and happens only after you confirm (`confirmed:true`). Phone numbers are now shown in full. Read tools are read-only; `place_call` keeps `destructiveHint: true` and `openWorldHint: true`; writes to your own account are marked destructive except adding a rule. OsmO only dials saved contacts and listed businesses. `list_recent_calls` stays as an alias of `list_calls`.\n\nData returned. Full numbers, transcripts and recording links for the signed-in user's own calls, disclosed at https://getosmo.app/privacy#ai-app-integrations. Recording links expire and are never stored in our request log.\n\n## \u00a78 submission checklist (owner ticks; nothing here is done yet)\n\n- [ ] PR-B merged and deployed; privacy page above live first. - [ ] One-line PR: `RELEASES.chatgpt = { approved: 1, inReview: 2 }` (`mcp-releases.ts`), merged + deployed BEFORE the scan, so the reviewer account is served release 2. - [ ] Reviewer account (`docs/runbooks/mcp-test-account.md`) reconnected once in ChatGPT so its grant carries `account.*` (the page shows the 5 rows before Allow). Read-only otherwise. - [ ] Rescan tools: 21 tools, annotations match `chatgpt-app-submission.json`. - [ ] Run every test case on the reviewer account and READ the raw JSON (runbook \u00a77). P5 and the confirmed write must end in `not_allowed_number` \u2014 the seeds are fictional. - [ ] Owner submits and ticks the attestations. After OpenAI's approval EMAIL only: `RELEASES.chatgpt = { approved: 2 }`. If rejected: drop `inReview` (reviewer back on 1)." }, "interface": { "capabilities": [], @@ -73,9 +85,9 @@ ], "developerName": "OsmO AI", "displayName": "OsmO", - "longDescription": "OsmO is an AI assistant that answers your phone. It screens incoming calls, takes messages, blocks spam, and makes calls on your behalf.\n\nUse it for everyday communication, such as delivery updates, library enquiries and asking a bookstore whether a book is in stock. Supply the business phone number or choose a contact already in your call history; the connector does not search for nearby businesses.\n\nThis connector lets you ask about the calls OsmO handled for you \u2014 who rang, what they wanted, what was missed while you were busy \u2014 and ask OsmO to make a call for you, without opening the app.\n\nIt can look at your recent calls, open one call in detail, find someone you have spoken to before, and place a call on your behalf. You can ask ChatGPT to find a contact and place a call after confirming the recipient and purpose. OsmO's assistant speaks that purpose on the call. It cannot change a setting or alter anything else in your OsmO account.\n\nIt never returns call recordings or transcripts, and phone numbers retrieved from call history are masked to their last four digits. Each call comes back as the caller's name where known, whether it was incoming or outgoing, its status, a one-line summary of what it was about, the time and the duration.\n\nRequires an eligible OsmO account. OsmO is available on iOS and Android.", + "longDescription": "OsmO is an AI assistant that answers your phone. It screens incoming calls, takes messages, blocks spam, and makes calls on your behalf.\n\nThis connector lets you ask about the calls OsmO handled for you \u2014 who rang, what they wanted, what was said \u2014 and ask OsmO to make a call, without opening the app. You can page through your whole call history, open one call with its full transcript and a link to play its recording, follow a call you just placed until its outcome is ready, find someone in your call history or your phone's contacts, and review or change your call settings, assistant and screening rules.\n\nEvery call and every change is previewed first: ChatGPT shows you exactly who will be called and why, or exactly what will change, and nothing happens until you say yes. OsmO's assistant speaks the purpose you confirmed. For safety OsmO only calls your saved contacts and listed businesses.\n\nBecause you asked for them, this version returns full phone numbers, call transcripts and time-limited recording links for your own calls. Names, greetings, voices, Facts, connections and subscriptions are changed in the OsmO app.\n\nRequires an eligible OsmO account. OsmO is available on iOS and Android.", "privacyPolicyURL": "https://getosmo.app/privacy", - "shortDescription": "See who called and why", + "shortDescription": "Your calls, from ChatGPT", "supportURL": "https://getosmo.app/support", "termsOfServiceURL": "https://getosmo.app/terms", "websiteURL": "https://getosmo.app",
Full technical diff · 2 changed fields
changed /files/plugin.json/sha256
"b9a2906d927292e294eac79a55a9c9480f45a9772b70378302c5f23485118796"
"0ad645c7937930506c01708f539ab15b7306737251344313e333aea7ea2295f3"
changed /files/plugin.json/size
7404
9907
Full snapshot data
{
"files": {
".app.json": {
"sha256": "a3d58f34cac1f775e02ce90343b3530988fe4d081d0641ca1a74c05695e38f6d",
"size": 96
},
"assets/icon.png": {
"sha256": "879ed8dfcc57f7c9ae08568d89c0fb3f708070bf49adb80f62ab6db90a8664e0",
"size": 57471
},
"mcp.json": {
"sha256": "6d01e767e616b4ffa984bc4a9c2246fccdb964e385ddb08b8441fa2f7c657b87",
"size": 931
},
"plugin.json": {
"sha256": "0ad645c7937930506c01708f539ab15b7306737251344313e333aea7ea2295f3",
"size": 9907
}
}
}SHA-256 of public snapshot: 4e1f657baa4439a937bddcb91b3f5c4e97b7ea42115f79429792ad2e0bb8c23d