Completions
Members, parameters, and enum values across Apps Script services, ranked in context.
Chrome extension for the Apps Script editor
myFunction adds two things to the editor you already use: a language server that understands your code and the Google services it calls, and a review-first assistant that proposes complete project changes and writes nothing until you approve.
01 — In the editor
Completions, diagnostics, hover docs, signature help, navigation, and targeted quick fixes. Fixes update the editor model like any code action.
Diagnostic → quick fix → you apply
02 — Across the project
Reads your saved project through the official Apps Script API and returns a complete file-level proposal. Nothing is written until you approve.
Request → proposal → review → approve
01 — Language server
Reading a Spreadsheet range inside a loop costs one service call per iteration. The language server flags it and offers a supported code action: read the range once with getValues(), then index the resulting array.
Quick fixes update the current editor model. Saving, running, testing, and deploying stay where they always were—with you.
function tagStaleOrders() { const sheet = SpreadsheetApp.getActiveSheet(); const range = sheet.getRange(2, 4, 100, 1); for (let row = 1; row <= 100; row++) { const status = range.getCell(row, 1).getValue(); if (status === "pending") flag(row + 1); }}Spreadsheet range read inside a loop: one API round trip per iteration.
Inside the editor
Members, parameters, and enum values across Apps Script services, ranked in context.
Type errors, API misuse, and supported performance problems as you type.
Signatures, parameter types, return types, and service documentation at the cursor.
Overloads and argument positions while you write a call.
Move from a call to its definition across the files in the open project.
Targeted editor code actions for supported diagnostics. You apply or dismiss them.
Types for SpreadsheetApp, GmailApp, CalendarApp, and the other Apps Script services are generated from a runtime introspection dump plus a curated signature corpus—not maintained as simplified handwritten stubs.
02 — Review-first assistant
For larger changes, the assistant reads the saved project through the official Apps Script API and returns one complete, reviewable proposal. Every project write remains yours.
Before applying, myFunction fetches the project again. If the saved state changed, the write is refused rather than merged over newer work.
“Move the order-sync retry logic out of Code.gs into its own file and use it from both entry points.”
Retry.gs — new filefunction withRetry(fn, attempts) { for (let i = 0; i < attempts; i++) { try { return fn(); } catch (error) { Utilities.sleep(500 * (i + 1)); } }}Code.gs for (let i = 0; i < 3; i++) { try { push(order); break; } } withRetry(() => push(order), 3);Leave unapproved and nothing is written.
Review and approval
Apps Script projects run against live spreadsheets, mailboxes, and calendars. Project writes are visible in full, applied only on approval, and refused when the base has moved.
Describe a project change: a refactor, an extraction, or a new entry point.
The assistant reads the saved project through the official Apps Script API and returns complete target files.
Inspect the complete project diff, affected files, and the project state used as its base.
On approval, myFunction re-fetches the project and writes only when the base still matches. Without approval, nothing is written.
Inspect before approving
Deliberate limits
Install for Chrome
Public store links will appear here with the first public build. The language server attaches when you open a project at script.google.com; assistant access is requested separately when you use it.