What you are building
Once you’ve set this up, Google will quietly do this in the background:
- Gemini (Google’s AI) writes a short 1–2 line magical affirmation for your intention.
- A script turns that text into a sigil seed (a string of unique letters).
- The sigil seed is drawn as an ASCII “letter ring” sigil (monospace art in a circle).
- Your Gmail signature is updated automatically with that sigil.
- Every email you send carries the current spell and sigil.
- Each spell + sigil is logged into a Google Sheet as your private grimoire.
You design the system once. Then it runs without you.
What you need
- A free Gmail account (your normal personal Google/Google Workspace account).
- A laptop or desktop browser.
- About 20–30 minutes the first time.
- No coding knowledge. You will copy and paste.
Step 1 — Create a Google Cloud project for Gemini
First you create the “container” project that will own your Gemini API key.
- Open the project creation page:
https://console.cloud.google.com/projectcreate?pli=1 - Give your project a name (for example Gmail Sigil Spell).
- Leave the organization/other settings at their defaults and click Create.
- Wait until the project is created (you’ll see it appear in the top project selector).
Step 2 — Get your Gemini API key (your “permission slip”)
Gemini is Google’s AI. To let your script talk to Gemini, you need an API key linked to the project you just created.
- Open the Gemini API key page:
https://ai.google.dev/gemini-api/docs/api-key - Sign in with the same Google account you use for Gmail.
- If you see a project selector, choose the project you just created (Gmail Sigil Spell) or click Import project and select it.
- Click Create API key (or Create or view API key).
- Copy the API key and paste it into a safe place (for now, a temporary note is fine).
Important: Do not share this key publicly. Treat it like a password.
Note: The Gemini API is being rolled out gradually. If you don’t see the “Create API key” button, your account or region may not have access yet.
Step 3 — Activate billing for your Gemini project
The sigil script uses very little, but Google still needs a billing account attached to your Gemini project.
- Go to the rate‑limit page:
https://ai.dev/rate-limit - At the top, make sure the correct project is selected (the one you just created).
- Click Set up billing.
- Select your location and agree to the terms.
- Follow the steps to create or link a Google Cloud billing account.
At the end you either see a message like “Your Google Cloud billing account is being processed” or a confirmation that billing is set up and linked.
Cost note: The cost of running this is tiny. Even if you create a new sigil every day, it will be on the order of a few cents per year.
Step 4 — Create a Google Sheet for your spell log
The script logs each generated spell and sigil to a Google Sheet so you have a private record of all your workings.
- Open Google Sheets.
- Create a new blank spreadsheet.
- Give it a name (for example Sigil Spell Log).
- Copy the spreadsheet URL and note the long ID between
/d/and/edit— that is yourSHEET_ID.
Step 5 — Create a Google Apps Script project
Google Apps Script is Google’s built‑in automation tool. We will use it to glue everything together.
- Go to Google Drive.
- Click New → More → Google Apps Script.
- If you don’t see it, click New → More → Connect more apps, search for “Apps Script”, connect it, then try again.
- A new tab opens with the Apps Script editor and a blank project.
- If prompted, agree to the terms by clicking Create script.
Step 6 — Turn on the Gmail “Advanced Service”
This is what allows your script to change your Gmail signature using the official Gmail API.
- In the Apps Script editor, look at the left sidebar and click Services.
- Click the + button next to Services.
- Find Gmail API in the list and add it.
The Gmail API lets the script update your signature using the official method users.settings.sendAs.update.
Step 7 — Show and edit appsscript.json (scopes)
To give the script the right permissions (scopes), you’ll edit the manifest file once.
- In the Apps Script editor, click the gear icon (Project settings).
- Enable Show “appsscript.json” manifest file in editor.
- In the left sidebar, click on appsscript.json.
- Inside the JSON, add the following block (or merge with existing scopes) before the final
}:
,"oauthScopes": [ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/gmail.settings.basic", "https://www.googleapis.com/auth/gmail.settings.sharing", "https://www.googleapis.com/auth/spreadsheets" ]
Then save the file.
Step 8 — Paste the “self‑casting spell” code
Now you’ll paste in the script that matches the current ASCII sigil version.
- In the Apps Script editor, click on the code file (often called
Code.gs). - Select all the code that is already there and delete it.
- Access the script below, copy it and paste it into
Code.gs:
Access the script:
Download the ready-made Apps Script file.
Replace the API key and Sheet ID
- Find
const GEMINI_API_KEY = 'PASTE_GEMINI_API_KEY_HERE';and replace the placeholder with your real API key (keep the quotes). - Find
const SHEET_ID = 'YOUR_SHEET_ID_HERE';and paste in your Sheet ID (the long string from the spreadsheet URL, again keeping the quotes). - Optionally edit the
intentiontext to whatever magical focus you want.
Step 9 — Run it once and approve permissions
Now you will run the script one time so that Google knows it is allowed to do its job.
- Click the disk icon or press Ctrl+S (Windows) / Cmd+S (Mac) to save.
- At the top of the editor, choose the function updateSignatureWithSigil from the dropdown.
- Click the Run ▶ button.
- A Google permissions window will pop up. This is normal:
- You are giving your own script permission to call Gemini on your behalf.
- You are giving it permission to edit your Gmail settings (specifically, your signature).
- You are giving it permission to write to your sigil log spreadsheet.
- If you see a warning like “Google hasn’t verified this app”, click Advanced → Go to project (unsafe) and continue.
- Accept all requested permissions.
Step 10 — Check if your signature changed
Let’s verify that your self‑casting spell is now sitting in your Gmail signature.
- Open Gmail in another tab.
- Click the gear icon (Settings) → See all settings.
- Scroll down to the Signature section.
- You should see your new ASCII sigil ring (made from your sigil letters) in the signature for your main email address.
The script updates the primary “Send mail as” identity. Other identities may not be updateable for personal accounts.
Step 11 — Make it automatic (daily or weekly)
Next, you will put the spell on a schedule so it keeps re‑casting itself.
- Go back to the Apps Script editor tab.
- In the left sidebar, click the clock icon (Triggers).
- Click the + Add Trigger button.
- Set:
- Function to run:
updateSignatureWithSigil - Event source: Time‑driven
- Type of time based trigger: choose Day timer or Week timer
- Optionally choose the time of day.
- Function to run:
- Click Save.
Time‑driven triggers are Google’s official way to run scripts on a schedule (daily, weekly, etc.). Keeping it at daily or weekly also helps avoid hitting Gemini’s rate limits.
Step 12 — (Optional) Add a gentle auto‑reply in Gmail
If you like, you can pair your living sigil with a gentle automatic reply that matches its intention.
- In Gmail, click the gear icon → See all settings.
- In the General tab, scroll down to Vacation responder.
- Turn Vacation responder on, set the start date, and choose an end date or leave it open‑ended.
- Use a subject like “Thank you for your message”.
- In the message box (rich‑text mode), you can use something like:
Thank you for weaving a thread into my inbox.
I read and respond in alignment with timing, capacity, and the intention my work serves, not at the speed of notifications.
If a reply is needed, it will find its way back to you in the right moment. Until then, may your path be steady and your days blessed with small, unlikely opportunities.
Gmail will include your sigil signature beneath this text. Note that the vacation responder only replies once per sender every few days, and it’s designed for “away” messages, so use it as a soft magical auto‑acknowledgement rather than a hard promise of absence.
What will happen from now on
Once everything is set up:
- Every day or week (whatever you chose), the trigger runs
updateSignatureWithSigil(). - Gemini writes a fresh spell line for your chosen intention.
- The sigil seed (unique letters) changes automatically.
- The ASCII sigil ring is regenerated from those letters and set as your Gmail signature.
- Every email you send carries the current version of the spell.
- Each generated spell + sigil is logged to your Google Sheet as a private record of your workings.
No further action is required from you unless you want to change the intention, adjust the schedule, or turn it off.
Troubleshooting (common issues)
“It says I don’t have permission” or “missing scope”
This usually means the script still needs permission to change your Gmail settings or Sheets.
- Make sure you edited
appsscript.jsonand added theoauthScopesblock. - Run
updateSignatureWithSigilagain from the editor and carefully accept all permissions.
“It didn’t update my signature”
- Confirm that the Gmail API is added under Services in Apps Script.
- Make sure you ran
updateSignatureWithSigilat least once manually and approved the permissions. - Check that your Gemini API key is correct (no extra spaces; still inside quotes).
- Check that your
SHEET_IDis the correct spreadsheet ID (not the full URL). - Remember: the script updates the primary “Send mail as” identity. Other identities may not be updateable for personal accounts.
“I get an error about limits, RESOURCE_EXHAUSTED, or error code 429”
This means your project has temporarily hit a Gemini API limit.
- Wait a bit and run the function again later.
- Keep the schedule at daily or weekly so you don’t spam the API with too many calls.
- For more details about 429 and quota behavior, see:
https://cloud.google.com/vertex-ai/generative-ai/docs/error-code-429
“The spell log in Sheets isn’t updating”
- Double‑check that
SHEET_IDmatches the ID of your Sheet (between/d/and/edit). - Make sure your account has access to that Sheet (you’re logged in with the same Google account).
- Re‑run
updateSignatureWithSigiland check the Executions tab in Apps Script for any errors.
Safety and privacy notes
- Your Gemini API key is like a password. Do not paste it into public documents, screenshots, or shared code.
- This setup sends your intention text (for example “Confidence and opportunities flow toward me”) to Gemini so that it can generate a short affirmation. Keep your intentions non‑sensitive and general.
- Gemini and Google process your requests according to their AI and privacy policies. You can read more in the official docs:
https://ai.google.dev/