Skip to content
// docs

Everything runs in your own Google account.

bulldo.gs turns plain-English descriptions into Google Apps Script and ships curated packs of production-grade scripts. Nothing runs on our servers — you paste the code into your own account and approve exactly the permissions it needs. Here's how each piece works.

Gnaw — describe an automation, get a script

Gnaw is the free generator. Type what you want in plain English — “archive promo emails older than a week” — and it returns a complete, commented .gs file you can run today.

  1. 1

    Describe the task

    Open /gnaw, write one or two sentences about the automation you want, and pass the quick human check. Be specific about the trigger (“every Monday”) and the target (“a sheet called Invoices”) — the more concrete the ask, the better the script.

  2. 2

    Generate and read the code

    You get back a watermarked, highlighted Apps Script file. It's short and commented on purpose — read it before running it. Not quite right? Use the change: box to remix it, or fork any saved example from its permalink.

  3. 3

    Copy and open Apps Script

    Hit Copy + open Apps Script. That copies the code to your clipboard and opens a fresh Apps Script project at script.new (Apps Script has no way to pre-fill a project by URL, so the code rides along on your clipboard — just paste).

  4. 4

    Paste, save, authorize, run

    Paste over the default myFunction, save, and click Run. Google shows a one-time consent screen listing the exact permissions the script needs — approve it and the script runs. See Running Apps Script below for the authorization and trigger details.

BullPack — installing a pack

A BullPack is a curated, multi-file project for a recurring job — invoice inbox → sheet, calendar → CRM, weekly digest, and more. Every pack has the same shape, so once you've installed one you know them all:

Config.gs
The only file you edit. A handful of clearly-labelled values — sheet IDs, label names, thresholds.
Main.gs
The orchestrator — the entry point you attach a trigger to. You rarely need to open it.
Tests.gs
A smokeTest() that checks your config, and a dryRun() that shows what it would do without touching anything.
  1. 1

    Buy and download

    Pick a pack on the pack page and check out through Stripe. You get an instant download — a zip of the .gs files plus a README with the worked example. One-time purchase, lifetime updates, 14-day refund.

  2. 2

    Create a project and add the files

    Open script.new (or your Sheet → Extensions → Apps Script), and add one file per .gs in the zip — matching the filenames. Paste each file's contents in.

  3. 3

    Edit Config.gs

    Fill in the values at the top of Config.gs. Every field is commented with what it expects and where to find it. This is the whole setup — you don't touch the other files.

  4. 4

    Smoke-test, then schedule

    Run smokeTest() to confirm your config resolves, then dryRun() to preview the effect safely. When it looks right, add a trigger on Main.gs (see below) and you're done.

Running Apps Script — authorization & triggers

Two things trip people up the first time: the authorization screen and triggers. Both are quick once you know what you're looking at.

Authorization (scopes)

The first time you run a script, Google shows a consent screen. Because these are your own personal scripts (not a verified published app), you'll clickAdvancedGo to project (unsafe) — “unsafe” here just means “not Google-verified”, which is normal for a script you wrote or pasted yourself. The screen lists each permission (scope) the script needs. A Gmail script asks for Gmail; a Sheets script asks for Sheets. If a scope doesn't match what the script claims to do, stop and re-read the code.

Triggers — simple vs. installable

A simple trigger (a function literally named onEdit or onOpen) runs automatically but can't call services that need authorization — so it can't send email or hit another file. An installable trigger is one you add by hand under the clock icon (Triggers) in the editor; it runs with your authorization and can do everything. Most useful automations need an installable trigger.

Time-driven triggers aren't cron

“Every Monday” in Apps Script means “sometime in a one-hour window on Monday” — time-driven triggers are approximate, not exact. Don't build logic that assumes a precise minute. For anything that must be idempotent (like “archive done rows”), the script should be safe to run twice.

Maul

Coming — M3

Maul is an AI inbox bulldozer for Gmail — point it at a backlog, it triages threads by intent, drafts the replies that need one, and archives the rest on your signal. It's in build; docs land with the release. Get notified when it ships.

FAQ

Is Gnaw free? Do I need an account?
Gnaw is free and needs no login. You describe the automation in plain English, pass a quick human check, and get a working Google Apps Script file back. There is no signup, no credit card, and no usage cap for normal use.
Where does my prompt and data go?
Your prompt is sent to bulldo.gs only to generate the script text — we don't ask for, receive, or store the contents of your Gmail, Sheets, or Drive. The generated script runs entirely inside your own Google account under permissions you approve; bulldo.gs is never in the data path once the code is in your editor.
Do I need to know how to code?
No. Gnaw and every BullPack ship readable, commented .gs files. For packs, the only file you normally touch is Config.gs — you fill in a few values (a sheet ID, a label name) and run it. If you can copy, paste, and click Run, you can use it.
Is the generated code safe to run?
Every script is plain, readable Apps Script that runs in your own Google account — no third-party server, no data leaves Google. Read it before you run it (it's short and commented), and Google will show you exactly which permissions it needs the first time you run it. Nothing runs until you approve those scopes.
What permissions (scopes) will Apps Script ask for?
Only the ones the script actually uses. A Gmail script asks for Gmail access; a Sheets script asks for spreadsheet access. The first run shows Google’s consent screen listing each scope. If a script asks for something that doesn’t match what it claims to do, don’t approve it.
What's the difference between Gnaw and a BullPack?
Gnaw generates a single script for one specific task, on demand and for free. A BullPack is a curated, production-grade multi-file project for a recurring job — with a Config file, an orchestrator, and smoke tests — that you buy once and install. Use Gnaw for a quick one-off; use a pack when you want a maintained, tested solution.

Start with a script.

Describe an automation and run it in your own account in a couple of minutes — free, no login.