Everything you wished the Apps Script editor had — code suggestions while you type (cloud or local), errors highlighted before you save, push and pull from GitHub, organize your project in folders, and a theme for every mood.
email = "" assigns instead of comparing. Replace with email === "". Heads up: body isn't defined yet either.Eight tools designed to save you time every day, working together inside the editor you already use.
Suggestions appear as gray text while you type. Press Tab to accept. Write a comment with what you need and the AI completes the function for you.
.gs, .html, .json and .css filesA chat panel right inside the editor. Send the selected text, the open file, or the whole project as context, and get answers you can paste with one click.
Mistakes appear next to the line as you type — no need to save first or run anything. A red dot in the toolbar tells you when the file has issues.
= instead of ===Press Ctrl+F and the native find widget gets a richer toolbar that knows about every file in the project. Hop between files with the keyboard, jump straight to any match, no extra panel.
Group files into folders by typing slashes in the name (e.g. utils/email.gs). The sidebar turns into a real tree, with collapsible folders and color icons by file type.
Type a short prefix and the full block appears. Comes with classics for Apps Script and HTML, plus a built-in editor to save your own.
Connect once and the editor gets a sync panel. Pick which files to push, see the diff, pull updates with one click.
Classics from the VS Code world plus colorful options for every taste. Apply with one click, duplicate to tweak, or build your own from scratch.
When the extension is on, the Apps Script toolbar gets six new buttons. This is what hides behind each.
A button that always shows the active file's name — even when the Apps Script tree highlight doesn't reflect it.
Open Monaco's native find widget with Ctrl+F. The toolbar below the inputs tells you which file you're on and how many files have matches.
Talk to the AI, send context, paste answers with one click. Open with Alt+Shift+C.
@selection, @file, @project commandsPush and pull from any repo without a terminal. Diff per file, file-by-file selection, resumable transfers.
Small tools that save clicks during your day-to-day with Apps Script.
Errors and warnings shown inline at the offending line as you type. No save, no run.
== / != (suggests === / !==)constreturn / throwNaN instead of Number.isNaN()Connect your GitHub account once and the editor gets a sync panel. Sign in with Google to read and write your project files via the Apps Script API, then sign in with GitHub via Device Flow. Pick a repo and a branch and you are ready.
Apps Script lists files flat. We turn that flat list into folders by reading the slashes in the file name, with collapsible groups and a color-coded icon per file type.
utils/email.gs and it nests automatically.gs, .html and .jsonClick the extension icon in Chrome to open the popup. Five tabs: Options, Snippets, Themes, AI and About. Changes apply live.
| Option | What it does | Default |
|---|---|---|
| Enable extension | Master switch. Pauses every feature without uninstalling. | On |
| AI Autocomplete | Inline ghost-text suggestions while you type. Press Tab to accept. | Off |
| Custom folders | Treats / in file names as folders in the file tree. | On |
| Folder color | Color used for folder icons in the file tree. | Neutral grey |
| .gs file color | Color of the icon for Apps Script files. | Google blue |
| .html file color | Color of the icon for HTML files. | Google red |
| .json file color | Color of the icon for JSON files. | Google green |
| Error lens | Shows inline diagnostics at the offending line. | On |
| Option | What it does | Default |
|---|---|---|
| Font family | Pick the editor monospace font: JetBrains Mono, Fira Code, Roboto Mono, Source Code Pro, Geist Mono, IBM Plex Mono and more. | Roboto Mono |
| Font size | Editor font size in pixels (10–48). | 13 |
| Line height | Vertical line spacing in pixels (12–48). | 19 |
| Option | What it does | Default |
|---|---|---|
| IDE Dark Mode | Applies a dark theme to the entire Apps Script interface. | Off |
| Show minimap | High-level code overview on the right side. | On |
| Line numbers | Line numbers on the left margin. | On |
| Word wrap | Wrap long lines so they fit within the editor width. | Off |
| Line highlight | Highlights the line where the cursor is. | On |
| Rulers | Vertical rulers at column 80 and 120. | Off |
| Occurrences highlight | Highlights every occurrence of the word under the cursor. | On |
| Show whitespace | Renders spaces, tabs and other invisible characters. | Off |
| Option | What it does | Default |
|---|---|---|
| Bracket pair colorization | Paints matching brackets with unique colors. | On |
| Quick suggestions | Editor's autocomplete list while typing. | On |
| Auto closing brackets | Closes brackets, quotes and tags as you type. | On |
| Indentation guides | Vertical lines at each indentation level. | On |
| Option | What it does | Default |
|---|---|---|
| Code folding | Gutter to collapse code blocks (functions, objects, regions). | On |
| Smooth scrolling | Animates scroll motion for a more fluid feel. | On |
| Scroll beyond last line | Lets you scroll past the final line. | Off |
| Tab size | Indentation width: 2, 4, 6 or 8. | 2 |
| Cursor style | Line, Block, Underline + thin variants. | Line |
| Cursor blinking | Blink, Smooth, Phase, Expand or Solid. | Blink |
A built-in catalog of useful snippets for JavaScript and HTML / GAS, plus a visual editor to add your own. Triggered by their prefix in Monaco's autocomplete.
| Prefix | What it inserts |
|---|---|
clog | console.log(variable) |
log | Logger.log(message) — Apps Script logger |
gss | Get active spreadsheet and a sheet by name |
getval | Get values from a range (A2:C) |
alert | SpreadsheetApp.getUi().alert(…) |
for | Classic for loop with i++ |
forof | Modern for…of loop |
fe | array.forEach(item => { … }) |
ife | if…else block |
try | try…catch with Logger.log on error |
map | array.map(item => …) |
filter | array.filter(item => …) |
doc | JSDoc comment block with @param and @return |
todo | // TODO: … with current date |
| Prefix | What it inserts |
|---|---|
htmlgas | Boilerplate index.html for HtmlService, with normalize.css |
field | Input wrapped in a label with a placeholder |
btn | Styled button with id and class |
select | Select dropdown with two options |
divc | <div class="container"> block |
table | Table with <thead> and <tbody> and two columns |
incjs | <?!= include("JavaScript"); ?> for HtmlService |
incss | <?!= include("Stylesheet"); ?> for HtmlService |
loader | Loading spinner skeleton |
Snippets support placeholders (${1:name}) and tab navigation. Type a prefix, press Tab, fill the first slot, press Tab again to jump to the next.
Choose any provider you already have a key for, or run a model on your own machine. Your key never leaves your browser — requests go from your machine straight to the provider.
rubencho.dev@gmail.com.
platform.openai.comconsole.anthropic.comaistudio.google.complatform.moonshot.cnbuild.nvidia.comapps.abacus.aiopenrouter.aiPick Custom as provider and point it to your local server. Works with any OpenAI-compatible endpoint.
123411434A small free-text block sent with every request. Use it for project-wide rules: style, formats, libraries to avoid.
The author's pick: qwen2.5-coder-3b-instruct. Fast even on regular laptops, understands .gs, .html, .css and .json well. Five solid options below, ordered from lightest to most capable.
| Model | Size | Strengths | Ollama tag |
|---|---|---|---|
| Qwen2.5 Coder 3B Instruct ★ | ~3 B | Very fast, great quality for its size, strong on JS / HTML / CSS / SQL. | qwen2.5-coder:3b-instruct |
| Stable Code 3B Instruct | ~3 B | Tuned for code completion. Excellent latency for inline ghost-text. | stable-code:3b-instruct |
| Qwen2.5 Coder 7B Instruct | ~7 B | Bigger steps, longer responses, better on tricky refactors. | qwen2.5-coder:7b-instruct |
| Llama 3.1 8B Instruct | ~8 B | Strong general-purpose model that also handles JS / HTML well. Use it for chat and explanations. | llama3.1:8b-instruct |
How to pick: 8 GB RAM and want speed → 3 B models. 16 GB and want better answers → 7 B / 8 B.
Download lmstudio.ai and run the installer.
Discover tab → search Qwen2.5 Coder 3B Instruct → download.
Developer tab → Start Server. Default port 1234.
Provider Custom, URL http://localhost:1234/v1/chat/completions, API key empty.
Download from ollama.com and run the installer.
ollama pull qwen2.5-coder:3b-instruct from a terminal.
Auto-starts on Windows / macOS. On Linux: ollama serve. Default port 11434.
Provider Custom, URL http://localhost:11434/v1/chat/completions, API key empty.
Keep your AI Context short and specific. These two examples work well in real Apps Script projects — copy, adapt and paste.
Classics from the VS Code world plus colorful options for every taste. Apply with one click, duplicate to tweak the colors, or build your own from scratch.
Don't like a color? Duplicate any theme and change anything you want — keywords, comments, background, every detail. Themes courtesy of JeanRemiDelteil / appsScriptColor.
The extension does not have a server. There is no account to create. Your code, your AI keys and your GitHub token live on your machine.
If something else comes up, the GitHub repo has a public issue tracker.
Yes. The extension is free, open source under MIT. The only thing that costs money is the AI itself: you bring your own provider key (OpenAI, Claude, Gemini, etc.) and pay them directly for the usage. We never charge a cent. If you don't want to pay anything, run a local model with LM Studio or Ollama.
You should be familiar with Apps Script. The extension makes things faster and more pleasant for people already writing scripts. It's not a no-code tool, but the AI chat helps a lot when you're stuck.
No. The extension only activates inside the Apps Script editor and runs only the features you turn on. There's a master switch to pause everything if you ever need to.
Never. AI requests go from your browser straight to the provider you chose. GitHub sync goes from your browser straight to GitHub. Apps Script sync goes from your browser straight to Google's API. We don't have a server in the middle.
Pick Custom as the provider in the popup AI tab. Paste the URL of your local server (LM Studio: http://localhost:1234/v1/chat/completions, Ollama: http://localhost:11434/v1/chat/completions). Put the exact model name in the model field and leave the API key empty. From then on every request goes only to localhost.
Yes, as long as your organization allows installing extensions from the Chrome Web Store. Some admins block extensions by policy — in that case ask IT to allow this one.
Today only on Chromium-based browsers (Chrome, Edge, Brave). The Apps Script editor itself runs there, so we focus on that environment.
The panel keeps track of the files that already finished. When you retry, those files are reused without re-uploading or re-downloading, so you don't waste time or hit GitHub's rate limits twice.
Open the popup, go to Snippets or Themes, click the + button. You'll get a visual editor with a preview while you type. Save and the new item appears in the editor immediately.
A few of these features were sparked by other projects. Their ideas helped shape what's here.
The approach for the editor's file tree (parsing slashes into a real folder hierarchy) and the catalog of color themes both come from this extension.
The idea of showing diagnostics inline at the end of the line, with severity colors and counts, is inspired by this VS Code extension.
The approach for reading and writing the project content from outside the editor via the Apps Script API was inspired by this project.
Extending Monaco's native find widget with cross-file navigation (instead of opening a separate search panel) is based on this extension.
Free. No account. No credit card. Install in one click.
Add to Chrome — It's Free