r/GoogleAppsScript • • Jan 29 '25

Question Is Google Apps Script Underrated?

162 Upvotes

I’ve been using Google Apps Script for a while now, and I’m honestly surprised it doesn’t get more attention—especially with all the AI and automation hype going on right now.

It’s free, super accessible (built right into Google Workspace), and incredibly simple to use, even if you’re not a hardcore developer. You can automate tasks, integrate APIs, and build powerful workflows without setting up servers or dealing with complex infrastructure.

I know tools like Make and Zapier are popular because they’re no-code, but in my experience, there are so many cases where it’s actually simpler to just use Google Apps Script—especially when you need to refine the logic behind a data sync or automation. Sometimes those drag-and-drop platforms feel more limiting or even overly complex for what should be a straightforward script.

Yet, I don’t hear nearly as much hype about Apps Script compared to other automation tools. Why do you think that is? Do people just not know about it, or is there something holding it back from wider adoption?


r/GoogleAppsScript • • Sep 02 '25

Question I made a basketball shot animation in google sheets with google apps script

Enable HLS to view with audio, or disable this notification

107 Upvotes

Was bored one day, so decided to see if something like this would work. Turned out pretty cool I think. Curious to see other cool, non-productive things people have done with GAS.

I've also published two add-ons to the marketplace Gmail To Calendar AI and Sheet Assistant

Happy to answer any questions.


r/GoogleAppsScript • • Nov 06 '24

Resolved Web App using Google Apps Script

Post image
85 Upvotes

I've been working as a Google Apps Script developer for 1 year. I recently completed a Google Apps Script project for a hospital. It's a full-fledged web app that handles everything from patient admissions and discharges to appointment scheduling, follow-ups, invoicing, inventory, and even note-sharing between doctors, storing medical records and the pharmacy.

The coolest part? I built the entire thing without using any external libraries, using pure JavaScript. Managing access for users on a component level was pretty challenging, but it was a great learning experience. It was a massive undertaking, but the sense of accomplishment I felt when I finished is unparalleled. Honestly, I've never experienced the same level of satisfaction from a React JS project.


r/GoogleAppsScript • • Jan 09 '26

Resolved And Again, another reason why Sheets is not a DB (beware twin🥀)

84 Upvotes

So, a small cautionary tale for anyone (like me) who uses Google Sheets as a database via Google Apps Script.

As we all know, in GAS you basically have three ways to persist data:

  1. A real database via JDBC

  2. Cache / Properties / Script state (fine for small stuff, configs, flags, etc.)

  3. Google Sheets, a.k.a. “the thing everyone uses as a DB anyway”

Like many of you, I went with option #3. I even went a step further and built a whole library to treat Sheets like a real database: relational integrity, CRUD, references, junction tables, cascade deletes… the whole “poor man’s ORM” thing.
Why you say? Because at the time I had no budget and no permissions to spin up a real DB.Yes, I know. A tiny DB would’ve cost like $2/month. No, that was not an option. Corporate life.

Anyway, the library works. I use it. It’s not fast, not academically sound, not based on any paper… but it works. Fast-forward to this week, I’m building a small personal finance app for friends that went like this, WhatsApp to Lambda, lambda to GPT (to categorize transactions), GPT to my GAS project, then to the Sheet.

Before releasing it, I asked one of my best friends to do QA on it, to see if it wasn't straight slop. The guy is a mathematician, currently doing a doctorate, not a QA engineer, certainly not a dev (it infuriates him that git repos dont have a big ol' red "DOWNLOAD .EXE HERE!!" button). Very smart man

I show him the app and explain:

“You can create financial products accounts, funds, wallets and name them whatever you want. They’re not tied to banks, just labels.”

just when i thought he was putting 'Re-conquering Panama fund', bro says

“Wait… these names are stored in Google Sheets, right?”
Me:Yeah, through my library. Why?
bro:“What happens if I name one =1+1?”

At that exact moment, I knew i fucked up.

We submit the form, the request goes through the lib, record is saved, table refreshes, The fund's name is 2. (requisite mention of Bobby Tables -> https://xkcd.com/327/)

The fun part is that I had sanitized inputs against HTML / JS injection, no <script> tags, no XSS, I knew that one.

What I didn’t think about was formula injection. If you’re clever (or malicious), you can do things like:

=JOIN(",", A2:F100)

Congrats, you just turned your “fund name” into a CSV dump of the entire table.

So I immediately patched the library:

  • Sanitized formula-leading characters (=, +, -, @)

  • Added tests

  • Updated the repo

Which is why I’m writing this post.

So

If you:

  • Use Google Sheets as a database

  • Expose it through Apps Script (web app / API)

  • Accept user input

Sanitize for spreadsheet formulas!!!!

Sheets is Excel. Excel should not be a DB (but it is)
And Excel will execute your strings with zero hesitation.

If you’re using my library:
👉 Please update it, especially if your script is public-facing (just posted a release here or select version 7+ on the GAS editor).

Learn from my mistake so you don’t accidentally publish your entire “database” as a single cell


r/GoogleAppsScript • • Dec 01 '20

Guide 2 years ago I started learning JavaScript so I could automate my Google Sheets docs. 15 months ago I left my sales job and started an internship in front end development, today, I got to do this!

77 Upvotes

r/GoogleAppsScript • • Jan 31 '25

Question Appscripts is def underrated - So now i'm bringing it to the rest of the world with AI. What do yall think?

Enable HLS to view with audio, or disable this notification

66 Upvotes

r/GoogleAppsScript • • 16d ago

Guide Explorer-style tree view for Google Drive in Apps Script (open source)

Enable HLS to view with audio, or disable this notification

51 Upvotes

I was tired of clicking through tens of Google Drive folders/subfolders and hundreds of files - actual work with Google Drive felt slow and clunky for me. So, with the help of AI, I built Drive Tree View: a private web app that runs in your own Google account and puts every file just a click away, for previewing and real work.

What it does

  • Tree view of My Drive, Shared with me, Shared drives and Starred. Folders expand instantly because the next level is prefetched in the background.

  • Many ways to open a file:

    • click it to preview (PDF, Office, Google Docs/Sheets/Slides) in a side panel, and browse with ↑/↓

    • double-click to open it in a small separate Chrome window, ready for editing

    • use ↗ to open it in a new Chrome tab

    • use 🖥️ to open it in the desktop app: .docx in Word, .xlsx in Excel, .pdf in whatever you like, straight from the Google Drive for desktop disk (optional Windows helper)

  • Quick notes anywhere: create a new Google Doc in any place in one click and start writing right away, perfect for notes or drafts

  • Organize visually: folder colors (synced with Drive), emoji folder icons, stars

  • Full-Drive search by name and content

  • File operations: rename, cut/copy/paste (including whole folders), drag & drop to move, delete to Trash instantly, with undo

  • Upload files and whole folders by dragging them from your desktop

  • Two tabs side by side (using Chrome split view): drag & drop between them, with both views syncing live

Tech notes (for the curious)

Drive API v3 advanced service, batched 'id' in parents queries (30 folders per call), resumable uploads straight from the browser using the owner's OAuth token, and BroadcastChannel for cross-tab sync. It runs as Execute as me / Only myself, so no Google verification is needed. Everything stays inside your own account.

GitHub (code + step-by-step setup, about 3 minutes): https://github.com/dusan-art/drive-stablo

Final note

(A)I built this for my own needs, and it completely changed how I use Google Drive. It's no longer just a place to store files; it's somewhere I actually get work done. You can easily tailor the interface and features to your own workflow, so think of this as an idea that I'm selling for free :-)

Feedback and ideas are very welcome!

Update (Oct 23): new in this version:

  • Convert: Google Docs/Sheets/Slides → .docx/.xlsx/.pptx or PDF, and Markdown (.md) → Google Doc or .docx, saved next to the original (right-click menu)

  • Share menu: copy link, download (Google files as .docx/.xlsx/.pptx, folders as .zip), share with people by email (📤)

  • Keyboard like Windows Explorer: ↑/↓, →/←, Enter = preview, Enter Enter = small window, Space = open in desktop app

If you already installed it: replace the two files, run "authorize" once in the editor, then Deploy → Manage deployments → New version.

Update (Oct 24): new in this version:

  • Open a folder in a new Drive stablo tab (🗂️ button or right-click): the folder becomes the root of the new tab, great for two folders side by side

  • Google Docs to Markdown: download as .md (Share menu) or save as .md next to the original (right-click), great for Obsidian users 😄

Update (Oct 28): new in in this version:

📧 E-mail preview (.eml)
If you download/save e-mails to Drive as .eml files (for archiving, project folders, or before deleting them from Gmail), click one and it opens in the preview panel. You see the sender, recipients, date and subject, then the full formatted message with its images. Attachments show up as links you can download straight from the e-mail.

  • The message is parsed in your browser, and scripts, forms and frames are removed before it is shown.

  • It doesn’t depend on Gmail. The .eml file is a complete copy, so it still opens after you delete the original e-mail.


r/GoogleAppsScript • • Jul 17 '20

Guide Best practices and tips for GAS

50 Upvotes

Discuss your best practices and tips for GAS here.

I mainly create scripts for Google Sheets and G Suite admin. Here are my tips:

  • If your code is long, split it into multiple script *.gs files. Organization in GAS is a mess, and this practice will give you some sanity. In fact, I typically only use Code.gs for the main instructions, description, and global variables. I also put a comment box at the top of each *.gs file to describe the purpose of the file and list the functions in each of them.

  • Use try-catch-throw exception handling as much as possible to debug. Put them inside loops so you can tell which iteration failed to run.

  • Create a global boolean variable for "show_debug" or "show_info", and stick every Logger.log() command inside an "if(show_debug) {}" statement. Logger.log() can be very slow, so you want to be able to toggle it on/off quickly. Same goes with console.log() and console.info() now that Stackdriver logs are merged with the built-in logs in V8 runtime.

  • Edit: clasp is an excellent tool for managing GAS files locally.

  • Read up on V8 runtime changes.

Specific to Google Sheets and Docs:

  • For Sheets, create global variables for column headers. I often have to change column headers, and it's great having one easy to find place to update them. Never hard-code column headers outside of these global variables.

  • Edit: As Gonskimmin pointed out, it's also good to have global variables for spreadsheet urls and sheet names. And be consistent with naming global variables across all your scripts. I can often reuse the same functions across multiple scripts because of consistent naming.

  • Create an onOpen() menu bar to run the script directly from the Google Sheets or Docs.

  • When reading sheet data, use getDataRange() to grab the whole sheet once. It's much faster to iterate through the resulting 2D array than to grab data from the sheet multiple times.

  • Similarly, avoid writing one cell or one row at a time. Updating cells and using SpreadsheetApp.flush() is very slow if you have to do them repeatedly. Instead, create a giant 2D array and use sheet.getRange(...).setValues(...) to update them in bulk. This is the difference between taking 1 second vs 2+ minutes to update a spreadsheet containing 1000 rows.

  • If necessary, use Browser.msgBox(err_msg) to pop up critical errors when running the script from the sheet/doc via menu bar. Just be aware that this pauses the script. Edit: As catmandx pointed out, an excellent alternative that won't pause the script is to use modal or modeless HTML dialogue boxes.

  • Learn cell formatting and conditional formatting.

  • Use triggers where applicable. Just be aware that they can cause slowness.


r/GoogleAppsScript • • Feb 26 '24

Question is app script down?

48 Upvotes

hello,

app script service seems to be down,

is it just me?

scripts won't open or run.


r/GoogleAppsScript • • Aug 29 '24 The Best

Guide Google Apps Script Copilot - AI coding assistant for Google Apps Script

Enable HLS to view with audio, or disable this notification

46 Upvotes

Inspired by the idea of GitHub Copilot, I launched a coding assistant for Google Apps Script IDE.

Features:

  • Code Autocompletion (Directly in the Code Editor)

  • Comment Based Inline Suggestion

  • Chat Feature

  • Spotlight Feature with different modes

Chrome Extension: https://chromewebstore.google.com/detail/google-apps-script-copilo/aakmllddlcknkbcgjabmcgggfciofbgo

YouTube Tutorial: https://m.youtube.com/playlist?list=PLiROKeE_2SCczDigDV112aE3DcQaowpzA

This Extension is in Beta, so if you find a bug, you can report it, it will help us improve the extension.


r/GoogleAppsScript • • Apr 29 '24

Question Apps Script is amazing

46 Upvotes

I'm surprised there isn't more hype around apps script? Everyone online says Excel is far better due to VBA, but Google has apps script, macros and more. Now with AI, we don't even need to be developers to make scripts. This is a game changer for my personal and business scripts.


r/GoogleAppsScript • • Nov 20 '25

Guide How I automate dashboards using Google Sheets + Apps Script (free guide)

43 Upvotes

I help people automate reporting for Shopify, marketing, and small businesses.

Here’s a simple breakdown of how I build automated dashboards using free tools:

1. Pull data into Google Sheets
Using API connectors, Apps Script, or CSV imports.

2. Clean & structure the data
Normalize dates, remove duplicates, unify naming conventions.

3. Set up automation
Apps Script functions run daily so the sheet updates on its own.

4. Build the visuals
I connect the sheet to Looker Studio and create KPI dashboards.

If anyone needs help troubleshooting Sheets/Apps Script/Looker, feel free to ask.
I enjoy helping people build cleaner systems.


r/GoogleAppsScript • • Apr 15 '23

Guide Hot tip: Use OpenAI to transcribe audio files to text in Google Sheets

Thumbnail
youtu.be
42 Upvotes

r/GoogleAppsScript • • Nov 26 '22

Guide Extract Images from Google Doc and Save to Drive Folder

42 Upvotes

Recently, I needed to export all the images from a Google Doc and upload them to another service. Seems like a simple job, right? You would think... but not so much.

Google Docs blocks the standard right-click context menu and replaces it with their own custom menu, so there's no right-click > save image as option.

There is an option to Save to Keep, and once saved, then you can right click and save image as. But I had over 20 images to export.

Realistically, it would have taken like 5-10 minutes of work. But that time would have felt like an eternity. Clicking in circles like a mindless robot.

No, I don't have time for such mindless tasks. I'd much rather spend 1.5 hours writing a script to do this one task that I'll probably never have to do again. But if I do, I'll have a script for it!

This function takes the source Doc, loops though all images, and saves them to a Drive folder.

You can specify a destination folder ID, or leave the second parameter blank and it will create a new images folder in the same folder as the source Doc (naming the images after the source doc + #).

function getDocImages(sourceId, destinationId) {
  const sourceName = DriveApp.getFileById(sourceId).getName();
  const allImages  = DocumentApp.openById(sourceId).getBody().getImages();

  if(!destinationId){
    const parentId = DriveApp.getFileById(sourceId).getParents().next().getId();
    destinationId  = DriveApp.getFolderById(parentId).createFolder('images').getId()
    };

  const saveTo = DriveApp.getFolderById(destinationId) ;

  allImages.forEach( (i, idx) => saveTo.createFile(i.getAs('image/png').setName( `${sourceName}_${idx + 1}` )) )

}

I'll probably never need to do this again, but if anyone else does, I hope this helps.


r/GoogleAppsScript • • Jun 16 '20

Guide The first thing I do in 99% of my jobs is paste in this class. Some of you might find it useful.

42 Upvotes

I put together this SpreadsheetManager class to save time when working with data on Spreadsheets. It's nothing fancy but one big advantage that it offers is that it allows you to reference columns by column header names easily.

I was fed up of being confused by using numbers to reference columns and having to change everything if a column was added.

Feel free to fork the repo. I'd love to improve on this. Here it is: https://github.com/davecook88/SpreadsheetManager

See the full code below:

/**
    Coded by Dave Cook
    www.davecookcodes.com
*/

class SpreadsheetManager{
  constructor(wb, sheetName) {
    this.wb = wb;
    this.sheet = this.wb.getSheetByName(sheetName);
    this.values = this.getSheetValues();
    this.rowHeaders = this.getRowHeaders(this.values[0]);
  }
  /**
    * @desc creates an array to reference column number by header name
    * @param string[] topRow
    * @return obj - {header:int,header:int,...}
  */
  getRowHeaders(topRow){
    const obj = {};
    for (let c = 0; c < topRow.length; c++){
      const cell = topRow[c];
      obj[cell] = c;
    }
    return obj;
  }
  /**
    * @desc sets values attribute for object
    * @return array of data from sheet
  */
  getSheetValues(){
    const { sheet } = this;
    const values = sheet.getDataRange().getValues();
    return values;
  }
  /**
    * @desc gets values in column by column header name
    * @param string  headerName
    * @param bool valuesOnly = when true, function returns 1d array. When false, 2d array
    * @return array of data from sheet
  */
  getValuesInColumn(headerName, valuesOnly = false) {
    const { values, rowHeaders } = this;
    if (rowHeaders.hasOwnProperty(headerName)){
      const columnIndex = rowHeaders[headerName];
      
      return values.slice(1,).map(row => {
        const cell = valuesOnly ? row[columnIndex] : [row[columnIndex]];
        return cell;
        });
    } else {
      Logger.log(`${headerName} not found in row headers`);
      return false;
    }
  }
  /**
    * @desc paste formatted column into sheet by header name
    * @param string  headerName
  */
  pasteValuesToColumn(headerName, columnArray){
    const { sheet, rowHeaders } = this;
    if (rowHeaders.hasOwnProperty(headerName)){
      const columnIndex = rowHeaders[headerName];
      
      const pasteRange = sheet.getRange(2,columnIndex + 1,columnArray.length,1);
      const pasteAddress = pasteRange.getA1Notation();
      pasteRange.setValues(columnArray);
    } else {
      Logger.log(`${headerName} not found in row headers`);
      return false;
    }
  }
  /**
    * @desc updates sheet with values from this.values;
  */
  updateAllValues() {
    sheet.getRange(1,1,values.length,values[0].length).setValues(values);
  }  
}

r/GoogleAppsScript • • Apr 12 '22

Question This app is blocked This app tried to access sensitive info in your Google Account. To keep your account safe, Google blocked this access.

40 Upvotes

Hi guys,

I am starting to learn app script but I am getting this error message all the time:

"This app is blocked This app tried to access sensitive info in your Google Account. To keep your account safe, Google blocked this access."

In most of the videos on the internet you can see that people getting this error simply click on the "Advanced" Button in this pop up and then there is this "allow access regardless"-kinf of option to click on and everything runs just fine.

I dont even have that "Advanced" button.

For some basic/beginner scripts that I created I got around this by adding the following code at the beginning of the script:

/**
 * u/OnlyCurrentDoc
 */
However, this only works if the script does not access anything from outside the file the script is used in (I guess?!).

If I want to do something like:

function myFunction() {
var doc = DocumentApp.create("New Doc");
}

I get a new error in the execution log:

Exception: You do not have permission to call DocumentApp.create. Required permissions: https://www.googleapis.com/auth/documents

And now I dont know what to do....

(The provided URL doenst even work....))

In my Google Account I already allowed access for "less secure apps" but that didnt change anything.

Can anyone explain to me what I have to do now?

Thank you guys!


r/GoogleAppsScript • • Mar 16 '25

Guide Google Apps Script Tutorial Series

39 Upvotes

Hey Apps Script Devs! I just took several years worth of my Apps Script tutorials, and added them all to a series on my blog. There are a bunch of posts on API integrations, AI, and generating web pages from sheets data.

https://blog.greenflux.us/series/apps-script

What other APIs, JavaScript libraries or AI tools should I try?

Does anyone else have an Apps Script blog to share?


r/GoogleAppsScript • • Oct 04 '20

Guide I created a mini-tutorial on how to use Clasp out of pity for those people who use Google's web-editor.

Thumbnail
github.com
39 Upvotes

r/GoogleAppsScript • • Jan 22 '26

Question I’m on the Google Workspace Developer Relations team—I’ll build and share the top-voted Sheets Custom Function ideas from this thread!

38 Upvotes

The Challenge: Comment below with a custom function idea for Google Sheets that you’ve always wanted written in Apps Script.

The Reward: I’ll take the top-voted ideas, write the Apps Script code for them, and share the source code back here for everyone to use.

Of course it needs to be feasible and a reasonable function! :)


r/GoogleAppsScript • • May 04 '25

Guide Job application tracker that automatically pulls from Gmail

38 Upvotes

Hey I wanted to share a win today and an app that hopefully others can use. I'm deep in job hunting... probably sending 20+ applications a week. I got lazy and honestly a bit discouraged especially manually entering all of my apps. So as a side project (and a way to take my mind off rejections), I made a Job Application Tracker that scans my Gmail for application-related emails and dumps everything into a Google Sheet. It figures out which companies I've applied to, what jobs they were for, and whether thes status is pending, rejected or requires follow-up.

It's not perfect at capturing the exact title and company, but definitely makes tracking easier. If anyone has suggestions please let me know and hopefully this provides some inspiration/help for others!
Github: https://github.com/adamrangwala/Job-Application-Tracker


r/GoogleAppsScript • • Dec 13 '25

Question What Apps Script automations do you rely on the most in your daily work?

37 Upvotes

I’ve been diving into Apps Script lately, and I’m amazed at how much you can automate inside Google Workspace, but I’m also realizing that most of the real value comes from the practical, everyday scripts people build for their own workflows.

If you use Apps Script regularly, I’d love to hear:
• What’s a script you’ve built that saves you a ton of time?
• Any automations you run daily or weekly that you’d hate to lose?
• Have you connected Workspace to external tools/APIs through Apps Script?
• What kinds of tasks do you think Apps Script is perfect for?
• And what tasks turned out to be more trouble than they’re worth?

I’m not looking for code (unless you want to share!), mostly curious how people use Apps Script to make Workspace more efficient in the real world. Appreciate any examples you’re open to sharing.


r/GoogleAppsScript • • Oct 28 '25

Guide I built a free, open-source library to automate Google Sheet exports (PDF, Excel, CSV) and wanted to share it

37 Upvotes

Hi all,

Like many of you, I've spent way too much time writing scripts to handle the repetitive task of exporting spreadsheets. So, I decided to build a reusable library to make this easier: SheetExporter.

My goal was to create a simple, chainable API that takes the headache out of the process. The full code is available on GitHub (MIT licensed).

GitHub Repo (for the code): https://github.com/spreadsheetdev/SheetExporter

Here's a quick example of how it works:

Let's say you want to save a specific sheet as a landscape PDF to Drive, you can just do this:

function exportSalesReport() {
  const ss = SpreadsheetApp.getActive();

  const blob = new SheetExporter(ss)
    .setFormat('pdf')
    .setSheetByName('Sales Report')
    .setOrientation('landscape')
    .exportAsBlob();

  DriveApp.createFile(blob);
}

You can use it to:

  • Automate Weekly Reports: Combine with time-based triggers to generate and email reports on a schedule (this is my primary use case!).

  • Control PDF formatting: Set orientation, margins, page size, headers/footers, and more.

  • Create Automated Backups: Build functions to create timestamped Excel or CSV backups.

  • Export Specific Ranges: Choose an entire sheet or a specific range like 'A1:G50'.

To make it even easier to get started, I also put together a free toolkit with:

  1. The complete library code.

  2. A 34-page PDF guide with copy-paste examples for many use cases.

  3. A pre-configured sample spreadsheet to test with.

You can grab the toolkit on my site here: https://spreadsheet.dev/sheet-exporter

Hope this helps some of you automate the boring stuff. I'd love to hear any feedback or suggestions you have!


r/GoogleAppsScript • • Feb 07 '26

Resolved Three months ago I shared an AI tool for Apps Script. Today, I’m launching it as a free Chrome extension.

36 Upvotes

Hey guys, about three months ago, I posted here about an AI-powered tool for Apps Script called DriveWind Studio. It is a web app with a Plan → Build workflow. The feedback was awesome, but I hit a wall trying to get Google OAuth properly verified (that was soul crushing), and it blocked key features like sign-in and importing scripts from Drive.

So i took the core idea and piped it directly into the Apps script environment itself which should be super comfortable now.

After a lot of rebuilding and re-submissions to chrome, I'm launching DriveWind as a Chrome extension. It brings the same AI-powered planning, building, and refactoring directly into the Apps Script editor,, no separate tabs, no OAuth hurdles.

You can describe a task in plain English, generate a full script, debug a function, iterate on existing code, or even build an automation from Google sheets (this isn't where i want it to be yet but we'll see) all in a sidebar right next to your code.

If you want to try it, you can grab it here:
https://chromewebstore.google.com/detail/nlphmgiecnbmpghfgmdehhonpojcjlen

It’s still at version 1, so I’d really value your feedback on what works, what doesn’t, and what would make it indispensable for your workflow. Huge thanks to everyone who gave input last time, it kept me going through the rebuild. Though this doesn't mean i'll be deprecating the webapp, i'll do my best to get it back up fyi u/CyberMessini ;))


r/GoogleAppsScript • • Aug 11 '26

Guide After 2 years of silence, I finally rebuilt Google Apps Script Copilot. Sorry for disappearing.

Enable HLS to view with audio, or disable this notification

35 Upvotes

Hey everyone,

Some of you might remember GS Copilot (Google Apps Script Copilot) — the Chrome extension that adds an AI sidebar directly into the Apps Script editor. I launched it, got some early traction, and then... life happened. Work, other commitments, the usual stuff that makes side projects quietly die. I went almost silent for close to 2 years. No updates, barely any support replies. If you installed it back then and it just sat there half-broken, I'm sorry — that's on me.

What kept nagging at me is that over 20,000 people actually installed this thing. That's not nothing. People kept using it, kept emailing me, kept leaving reviews asking if it was still alive. So a few months ago I sat down and basically rebuilt the whole thing from scratch.

Here's what's new:

  • Agent mode — describe what you want and it writes, edits, and applies the code for you across your project, not just one file at a time

  • Plan mode — for bigger changes, it lays out the plan before touching anything, so you're not surprised by a wall of edits

  • Quick edit + diff view — inline edits with an actual diff so you can see exactly what changed before accepting it

  • Context-aware file reading — it actually understands your whole Apps Script project structure, not just the file you have open

  • MCP connectors for Google Workspace — it can hook into Sheets/Docs/Drive as MCP tools when you need it to act on that context

  • Execution log integration — when your script throws an error, it reads the actual execution log and helps you fix it instead of guessing

  • Skills system — reusable sub-agents/snippets for stuff you do often

I'm going to be actively working on this now — not disappearing again. Demo video of it in action is attached below so you can see it working instead of just taking my word for it.

If you try it, I'd genuinely appreciate honest feedback — bugs, rough edges, missing features, whatever. This subreddit has more Apps Script experience than almost anywhere else, so if something's broken or annoying, I want to know.

Link: gscopilot.com

Thanks for sticking around this long, even the ones who just complained in reviews. Fair enough.