Meeting transcription happens on-device via your browser's Web Speech API. PencilCard never receives audio, transcript text, or meeting content. What gets said in your meeting stays in your browser.
PencilCard does not collect or store any meeting audio, transcripts, action items, or meeting metadata. All data below is stored locally on your device.
chrome.storage.local.chrome.storage.local. Never transmitted to PencilCard — only to the provider you configure when you request a summary.chrome.storage.local. Used only for the specific export you initiate.pinomeet_db)All meeting sessions, transcripts, action items, summaries, and speaker labels are stored in a local IndexedDB database. This database is sandboxed to the PinoMeet extension, is not accessible by websites or other extensions, and is cleared when you clear browser data for the extension or uninstall it.
chrome.storage.localSettings, BYOK key, export OAuth tokens, and the Firebase auth token are stored here. None of this data is synced to PencilCard.
Transcription uses the browser's built-in SpeechRecognition API. On Chrome, this sends audio to Google's speech-to-text service for processing. PencilCard does not receive your audio or transcription — only the returned text lands in the extension. Google's privacy policy governs how this audio is processed. Transcription is started only when you explicitly click Start in the PinoMeet panel.
Sign-in and Pro subscription verification. No meeting data included.
If you configure a BYOK API key, PinoMeet sends your meeting transcript text to that provider's API under your key when you request a summary or action item extraction. No audio is transmitted. Traffic goes directly from your browser to the provider — not through PencilCard.
When you export transcript text or summaries, PinoMeet calls the relevant service API (Google Docs, Google Calendar, Notion, Slack) using your OAuth token. See Section 6 for full details.
| Permission | Why it is needed |
|---|---|
| storage | Stores settings, BYOK key, export OAuth tokens, and Firebase auth token in chrome.storage.local. Meeting content is in IndexedDB (no manifest permission required for the IndexedDB API). |
| identity | Obtains a Google OAuth token for Firebase sign-in and for Google Docs / Google Calendar export. Not used for continuous account monitoring. |
| tabs | Detects when you navigate to a supported meeting platform (meet.google.com, zoom.us, teams.microsoft.com) to offer the auto-join overlay. Tab URLs are not stored or transmitted. |
| scripting | Injects the PinoMeet overlay into supported meeting platform tabs to surface the transcription controls, live transcript panel, and action item sidebar. The overlay is injected only into meeting platform tabs, not into general browsing. |
| host: meet.google.com, zoom.us, teams.microsoft.com | Required for the content script injection above, scoped to meeting platforms only. |
| host: docs.googleapis.com, calendar.googleapis.com, api.notion.com, slack.com (optional) | Used only when you initiate an export to that service. Not accessed during normal meeting transcription. |
| host: Firebase endpoints | Firebase Identity Toolkit and Firestore for sign-in and subscription tier check. No meeting data transmitted. |
| host: Cloud AI provider APIs (optional) | Used only when you request a summary or action item extraction with a BYOK key configured. |
Action item extraction and meeting summarisation can run via Gemini Nano when it is available (Chrome 127+ with the model downloaded). In this mode, transcript text is processed entirely on-device. No text leaves your browser.
If you configure a cloud API key and Nano is unavailable or you prefer a cloud provider, your meeting transcript text is sent to that provider's API under your key when you explicitly request a summary. PencilCard is not a party to this transmission. The provider's privacy policy governs how they handle transcript text.
PinoMeet supports exporting transcript text, summaries, and action items to third-party services. All exports are initiated explicitly by you — PinoMeet does not auto-export without your action.
PencilCard does not sell, rent, or share meeting data. PencilCard does not operate servers that receive transcript text or audio. External transmissions that may occur:
Meeting History → select session → Delete. Removes the transcript, summary, and action items from IndexedDB permanently.
Settings → Data → Clear all PinoMeet data. Clears IndexedDB and chrome.storage.local.
Visit myaccount.google.com/permissions, find PinoMeet, and click Remove. This revokes export tokens for Google Docs and Calendar.
Email [email protected] to delete your Firebase account record and Firestore subscription data.
Removes all locally stored sessions, transcripts, settings, and auth tokens immediately.
PinoMeet is not directed at children under 13. As no meeting transcript data is transmitted to PencilCard's servers, the extension does not create a personal data profile on any server for users of any age. Audio processed through the Web Speech API is subject to Google's age restriction policies.
We will update this page if PinoMeet's privacy practices change. The current version is always at pencilcard.com/privacy-pinomeet.
We aim to respond within 5 business days.