Legal
Privacy Policy
Operated by Benchcut Logic LLC. Last updated 2026-10-16.
1. Scope
This Privacy Policy explains how Benchcut Logic LLC ("we", "us") collects, uses, and protects information through the myFunction browser extension, the myFunction remote MCP server, and the https://myfunction.dev website (together, the "Service"). It also covers the myFunction Visual Studio Code extension for the declaration library download described in section 3; elsewhere, "the extension" means the browser extension. myFunction is not affiliated with or endorsed by Google.
2. Google account and code data
When you sign in with Google, the extension requests only the openid, email, and profile identity scopes, and we receive your Google account identifier, email address, and profile to manage your account and subscription. myFunction does not request or require Google Apps Script project access scopes (https://www.googleapis.com/auth/script.projects). Language-server diagnostics and autocomplete are produced locally in your browser by the extension. When you request an AI quick fix or JSDoc generation, the extension sends our service an authenticated request whose content is limited to the project's script ID, the file name, the enclosing code snippet, and the diagnostic details. When you ask for a fix from a failed run in the execution log or error toast, the diagnostic details are the error message and the stack locations Apps Script showed, which can include values from your data that the error quoted; we use that content to generate the edit with our AI model provider. We do not request access to unrelated Google services such as Gmail, Drive, or Calendar.
3. What we store
We store your account identifier, email address, and Stripe subscription status. For signed-in accounts without a subscription, we also store a count of AI requests per calendar month to apply the free monthly allowance; it contains no code or diagnostic text. Diagnostics run locally without an account or a session allowance. Legacy diagnostic-window records may remain from earlier versions; they contain operation identifiers and expiry times, not source code or diagnostic findings. We do not keep or store a copy of your Apps Script projects on our servers. To download the Apps Script declaration library, the browser extension and the Visual Studio Code extension request a random library token from the Service and send it with each download. The token expires after 30 days, is not linked to your Google account, and is not stored by the Service; the Service only checks that it is valid and unexpired before sending the library. Feature-use counts from the extension are described in section 5. Account records are retained for as long as your account is active.
4. Error reports
When the extension's background process hits an uncaught error or unhandled promise rejection, it sends an error report to the Service, whether or not you are signed in. The extension also sends a report when an Apps Script page element it relies on, such as the execution log's button row, is missing; that report names the element and contains no page content. Each report contains the error type, the error message, the stack trace, which part of the extension reported it, and the extension version. Before a report leaves your browser, the extension replaces Apps Script project IDs, bearer tokens, token and key values in URL parameters, email addresses, and local user folder names with placeholders, and limits messages to 1,000 characters and stack traces to 4,000. This scrubbing matches known patterns, so a message can still quote a short identifier or value from the code that failed. Reports are not linked to your account: when you are signed in, the request carries your session headers, but we do not record them with the report. We keep reports in our service logs and count them by error type, extension part, and version to find and fix bugs.
5. Extension usage analytics
The extension counts how often you use its features: completions, hovers, signature hints, definitions, diagnostic checks, quick fixes offered and applied, and AI explain and fix requests. For AI fixes it also counts what happened to each one: whether it was prepared or failed and why, the compiler's check of the suggested edit, whether you applied or dismissed it, and whether the problem was gone at the editor's next check. These AI fix counts are grouped by action (fix or JSDoc) and by diagnostic code, such as TS2339. About every 30 minutes it sends the counts it has not sent yet to the Service, whether or not you are signed in. Each batch includes the extension version and a random install ID that the extension creates the first time it sends counts. The install ID is not derived from your Google account or your device; removing the extension deletes it, and a reinstall creates a new one. When you are signed in, the Service also computes a pseudonymous user ID from your Google account identifier with a keyed hash, so counts from your installs can be grouped without sending the account identifier. The counts contain no code, file names, project IDs, diagnostic messages, or email address. We store totals by feature, AI fix outcome and diagnostic code, extension version, and signed-in status without the install ID or user ID, and we send each batch with those IDs to Google Analytics, which processes it for us to report how the extension is used. The Service sends these requests, so Google Analytics does not receive your IP address from them. Google Analytics keeps user-level and event-level data for no more than 14 months. Usage counts are telemetry, not credits, quotas, or a basis for usage billing. In Firefox, the extension sends usage counts only after you allow technical and interaction data collection for it.
6. Website analytics
The https://myfunction.dev website uses Google Analytics to measure visits. When a page loads, Google Analytics sets first-party cookies (such as _ga) and receives your IP address, browser and device details, the page you visited, and the page that linked to it. Google uses this to give us reports about site traffic. You can block these cookies in your browser settings or install the Google Analytics Opt-out Browser Add-on from https://tools.google.com/dlpage/gaoptout.
7. MCP server
When you connect an AI assistant to the myFunction MCP server, you sign in with Google using the same openid, email, and profile scopes, and we store an authorization grant containing your Google account identifier, email address, and name so the assistant can call the server. Each gas_diagnostics call sends the Apps Script code your assistant passes in, such as file names and file contents, to our service. The code is type-checked in memory; we do not write it to storage or send it to an AI model provider. For each Google account we store a count of tool calls per calendar month (UTC) to apply the free and subscription allowances, and we count calls by tool without any account identifier to measure use. When a call fails, we log the error message with your Google account identifier to investigate the failure.
8. Code modification
AI quick fixes generate diff previews before modifying code. When you accept a fix, edits are applied directly to the open file in your browser's Apps Script editor. myFunction never silently or automatically mutates your code.
9. Billing data
Subscription payments are handled by Stripe, our third-party payment processor. Stripe collects and processes payment details (such as card or wallet information) directly; we do not receive or store full payment card numbers. We receive subscription status (active, plan, renewal date) from Stripe to remove the monthly limit on AI quick fixes and JSDoc generation for active subscribers. See Stripe's privacy policy for how it handles payment data.
10. What we do not do
We do not sell your personal information. We do not share your code snippets with third parties except the infrastructure providers strictly necessary to run the Service (for example, hosting and the AI model provider used to generate quick fixes), each bound to process data only on our instructions.
11. Data retention and deletion
You can revoke the extension's Google access at any time from your Google Account permissions page. You can sign out to clear your service session, including its stored token. You can request deletion of your account records, including subscription linkage, by emailing support@myfunction.dev; we will delete this data within a reasonable time except where retention is required for legal, tax, or fraud-prevention purposes.
12. Security
Service communication is encrypted via TLS. Access to production systems is limited to personnel who need it to operate the Service. No method of transmission or storage is perfectly secure, and we cannot guarantee absolute security.
13. Children
The Service is not directed to children under 13, and we do not knowingly collect personal information from them.
14. Changes to this policy
We may update this policy from time to time. Material changes will be reflected by updating the date below.
15. Contact
Questions about this policy, or requests to access or delete your data, can be sent to support@myfunction.dev.