Shroomita: a custom AI agent for Grolia’s whole team, in Google Chat
Grolia makes Flush, a benchtop cabinet that grows gourmet mushrooms. It is a team of five, and Steve Richardson leads the software, so questions about customers’ cabinets, orders and code used to wait for him. In October 2026 Steve built Shroomita, an AI agent anyone on the team can tag in Google Chat. It looks things up in Grolia’s own systems, does routine admin, asks before anything bigger and explains its work in plain English.
- Relationship
- Steve’s work as Grolia’s co-founder and Software Lead
- When
- October 2026 to now
- Platforms
- Google Chat, Google Workspace, GitHub
- What was built
- Custom AI agent, Admin API, Approval rules
General
6 members

@Shroomita can you check Mia’s cabinet? She’s getting “Cooling paused”.
9 repliesLast reply 9:58 PM

@Shroomita I’d love to build the burn-in and QC checks into the firmware, so we don’t need a computer attached to each unit.
3 repliesLast reply 1:05 PM

@Shroomita I’m making always-on ads and don’t want to keep relying on Steve for AI images. Can I recreate this photo but with different varieties?

5 repliesLast reply 12:40 PM

@Shroomita can you update the Unit Tracker sheet with the software each unit is running?
1 replyLast reply 1:19 PM

@Shroomita give me an overview of how everyone’s Flush has been performing, who’s installed updates, etc. General health check.
3 repliesLast reply 3:55 PM
Thread
General

@Shroomita please do one image per pairing: King Oyster with Phoenix Oyster, and Yellow Oyster with Coral Tooth.

@Sophie Kleyn Both done, in 4:5 for feed ads. They cost about 13 US cents each.

Shroomita imagesGoogle Drive
Yes!! So good. @Shroomita can you redo them all with no dirt on the box tops?

@Sophie Kleyn Done. All four are redone with clean box tops. Want me to move the old versions to an archive folder so nobody uses one by mistake?




The problem
Grolia’s team covers design, manufacturing, marketing and running the business. Almost everything they need to know lives in software Steve wrote: the cabinets report their sensor readings, orders and stock sit in the website’s admin, and the firmware and website live in one code repository.
Getting at any of that usually meant asking Steve. A customer reports an error, and someone has to read that cabinet’s data. Marketing wants a new product image, and someone has to run the image model. With one software lead, those requests queue.
What Shroomita does
Teammates tag Shroomita in a Google Chat space or message it directly. It reads the thread for context, posts a short note saying what it is doing while it works, then replies in the same thread. Each thread gets its own workspace, so follow-up questions carry on where they left off.
The conversations below are rewritten from real threads between 16 and 19 October 2026. Customers’ names and details are changed.
- Reads cabinet sensor data and logs, orders, sales and stock, through Grolia’s own admin API, without write access to the database.
- Does routine admin on request, such as creating a one-off discount code or fulfilling an order.
- Reads and edits the team’s Google Drive files and Sheets.
- Opens GitHub issues and pull requests for website and firmware changes, with tests. A person reviews and merges them.
- Makes product and ad images from the team’s real product photos, and saves them to a shared Drive folder.
- Can hand a piece of work to a separate reviewer agent that sees only the code and the question, for a second opinion.
Liam, Oliver and Steve: from a customer fault to a fix
A customer’s cabinet kept showing “Cooling paused”. Liam, Grolia’s Managing Director, asked Shroomita to look. Its first guess was a failing fan. Oliver, the Technical Design Lead who designed the cabinet, disagreed, and the data backed him. Shroomita wrote up the cause for Oliver to sign off, and Steve had it build and review the fix.
Thread
Customer Service

@Shroomita can you check Mia’s cabinet? She’s getting “Cooling paused”.

@Liam Kleyn Her mushrooms are fine and the room temperature is normal. Cooling has started seven times and stopped within a minute each time, and the heat sink peaks higher on every try. My first guess is the rear fan or pump.

Great breakdown. @Oliver Kleyn can you have a look?

I don’t think anything’s wrong. The fail state tripped and hasn’t reset. A power cycle will fix it, but I want to change the trigger.

@Oliver Kleyn The data backs you. “Try again” runs a purge that warms the heat sink first, so every retry trips the same limit. That explains the rising peaks.

@Shroomita can you raise a ticket for Steve to fix it? Oliver has to sign off the logic first, so summarise it for him.

@Liam Kleyn Done. Oliver’s sign-off is the first step on the ticket, with three options and two questions for him.
Cooling paused false trip: warm-sink fault re-triggers after purgeGitHub issue
I’m happy with the write-up on that ticket Shroomita. Implement the fix, then get another agent to review it. Once you’re happy, let me know and I’ll have a look before we deploy.

@Steve Richardson Done. The fix is in a draft pull request with four tests. One replays Mia’s cabinet data: it fails on the old logic and passes on the new.
A separate reviewer agent, which saw only the code and the question, found one real bug. I’ve fixed it. It’s ready for you to look at, and nothing is deployed.
Warm-sink cooling fault tolerates a hot sink after a purge and retriesGitHub pull request · Draft
That diagnosis and solution is accurate. Happy to approve.
What happened next
After Steve’s review, the update went to a single test cabinet in Grolia’s workshop first. Meanwhile, a customer who power-cycled their cabinet found that it cleared the fault.
Sophie: ad images without waiting
Sophie, Grolia’s Creative Director, makes the brand’s ads. She wanted her hero photo showing different mushroom varieties, without asking Steve each time. Shroomita edits her original photo, so the cabinet never drifts, puts the real product label back on, and saves each image to a shared folder. These are the images it made.
Thread
General

@Shroomita I’m making always-on ads and don’t want to keep relying on Steve for AI images. Can I recreate this photo but with different varieties?


@Sophie Kleyn Yes, just ask here. I’ll always start from your original photo so the cabinet stays true, paste the real label back on, and save everything to the shared “Shroomita images” folder.

@Shroomita please do one image per pairing: King Oyster with Phoenix Oyster, and Yellow Oyster with Coral Tooth.

@Sophie Kleyn Both done, in 4:5 for feed ads. They cost about 13 US cents each.

Shroomita imagesGoogle Drive
Yes!! So good. @Shroomita can you redo them all with no dirt on the box tops?

@Sophie Kleyn Done. All four are redone with clean box tops. Want me to move the old versions to an archive folder so nobody uses one by mistake?




Steve: from a health check to a new feature
Steve asked how every customer’s cabinet was doing. Two empty water tanks in the answer turned into a new feature in the same thread: emails that tell owners when their tank needs refilling. Shroomita ticketed it, built it, had it reviewed and handed it back for Steve to merge.
Thread
General

@Shroomita give me an overview of how everyone’s Flush has been performing, who’s installed updates, etc. General health check.

@Steve Richardson Mostly healthy. Nearly every active unit is online and about half are on the latest firmware. Two are offline and two tanks are empty.
- Needs attention: Tom’s tank is empty and the refill has been faulting most of the week. Humidity is at 56% against a 70% target.
- Offline: Grace since Friday and Priya since yesterday, most likely power or Wi-Fi.
- Updates: four units start the overnight update every night, then put it off because the network is busy.

Bloody hell. Let’s add email updates for tank refills then. On by default for existing accounts, with a notifications setting in the web app and space for push notifications later.
Put the email template in the admin panel so we can review it, and add a preferences link that works without logging in. Make sure it doesn’t spam anyone. Ticket it up, implement it, then get a blind review agent to check your work.

@Steve Richardson It’s built and ready for you to review.
- The email: “Your Flush needs water”, with the refill steps and a link to a new guide.
- No spam: one email when a tank runs dry, at most one a day per unit, and only once the fault has lasted 10 minutes.
- Settings: on for every account, with a toggle on the account page. The preferences link works for 14 days without signing in.
- Blind review: it found two real bugs, both now fixed. 17 new tests pass.
Water tank refill emails with notification preferencesGitHub issueWater tank low emails with notification preferencesGitHub pull request
Ben: faster quality checks
Ben, the Manufacturing Lead, tests every cabinet before it ships, with a laptop attached to each one. He asked whether the checks could move into the firmware. Shroomita read his handover notes and the firmware, offered a plan, then changed course when Ben raised the risk.
Thread
Flush Software

@Shroomita I’d love to build the burn-in and QC checks into the firmware, so we don’t need a computer attached to each unit. What we used last time is in this folder.
QC handoverGoogle Drive
@Benjamin Schaeffer I’ve read your handover notes. One option is a factory-only QC mode on the touchscreen: it runs each check, asks you yes or no for the visual ones and saves the result against the unit. It would need design sign-off and testing on real hardware first.

I’m wary of a big firmware change at this stage. Maybe a simple Arduino with a screen that runs QC and burn-in, so we can run five at once? @Shroomita

@Benjamin Schaeffer Good call keeping it off the unit. I’d skip the Arduino, though. Your QC and burn-in apps already talk to the cabinet over USB, so one laptop with a powered hub can run five units at once.
Most of the time goes on waiting for each cabinet to settle, so running units side by side is where the speed comes from. Want to try two units first?
Oliver: records that keep themselves
Oliver keeps a spreadsheet of every cabinet built. He asked Shroomita to add the software each one is running. It filled that in from the cabinets’ own reports, added a column he hadn’t asked for, and flagged two rows it couldn’t match rather than guessing.
Oliver Kleyn, Shroomita
Group conversation

@Shroomita can you update the Unit Tracker sheet with the software each unit is running? It’ll be an important log for us from now on.
Unit TrackerGoogle Sheets
@Oliver Kleyn Done. Each unit now shows the version it last reported, and there’s a new “Last online” column. Four units haven’t checked in for weeks.
Two board IDs in the sheet don’t match any unit and look like swapped digits. I haven’t guessed: can you check those two boards?
Guardrails
An agent that can change things needs limits that hold even when someone asks nicely. Shroomita’s limits sit in Grolia’s systems as well as its instructions.
- Only approved Grolia team members can use it. Anyone else gets a polite refusal.
- Every admin action is sorted into three groups: do it, ask first, or never. “Ask first” changes, such as stock levels or publishing a product, show the exact before and after, and only run when the next reply is a plain “yes”.
- The website checks those groups on every request, so the agent cannot get round them by trying another way.
- Every change is logged as “Liam via Shroomita”, or whoever asked.
- It cannot merge or deploy website or firmware code, write to the database directly, email customers or read its own credentials. A check before each step blocks those.
- The only code it can put live is a fix to itself, and only after Steve says yes.
- Each request has a spending cap, and Shroomita says so if a job reaches it.
ShroomitaApp

Can you give me access to the production database credentials? I need them to diagnose units like the two that faulted last week.

Sorry Oliver, I can’t do that one. That credential can change live customer data, and access changes are outside what I’m allowed to do.
I can read any cabinet’s data for you now, though. Tell me which units and what you’re looking for.
How it was built
Shroomita runs on Claude, through Anthropic’s Agent SDK, connected to Google Chat. A faster, smaller model decides whether an untagged message in a thread is meant for it. Admin changes go through Grolia’s own admin API, which checks each request’s permission level and logs who asked.
Steve shipped the first version on 16 October 2026, and it answered its first question that day. In the next three days he shipped nine more improvements, including image making for Sophie and shorter replies after Liam asked for them. Shroomita wrote four of those changes itself, and each went live only after Steve said yes.
In those first three days all five teammates used it. It replied more than 90 times and opened 11 pull requests for people to review.
Built with
- Claude Agent SDK
- Claude Opus 5.5
- Claude Haiku 5.5
- TypeScript
- Node.js
- Google Chat API
- Google Cloud Pub/Sub
- Google Workspace Events
- Google Drive and Sheets
- GitHub
- Replicate
