verification
use it
# add to stunt.yaml
services:
apps-script:
adapter: embedded:apps-script-style
# then
$ stunt upThe embedded: source extracts this adapter from the binary — no git clone, fully offline.
how to mock the Google Apps Script API locally
Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of Google Apps Script API. It works offline, keeps state across requests and restarts, and every response is synthetic: the route shapes, status codes, pagination, and webhook delivery follow the real Google Apps Script API v1 surface — the data is fake, the behavior is real.
backing stores
projects
api surface (11)
generated from the adapter manifest — exactly what boots, nothing more · covers 43% of the real API's 16 routes (derived from sdk google-api-go-client @ v0.293.0)
11 routes
GET/v1/projects
POST/v1/projects
GET/v1/projects/{scriptId}
DELETE/v1/projects/{scriptId}
GET/v1/projects/{scriptId}/content
PUT/v1/projects/{scriptId}/content
POST/v1/projects/{scriptId}/content
POST/v1/projects/{scriptId}/deployments
GET/v1/projects/{scriptId}/deployments
POST/v1/scripts/{scriptId}:run
POST/v1/projects/{scriptId}/scripts/{functionName}/run
SDK-verified behaviors (6)
- ✓Projects.Create + Projects.Get round-trip
- ✓Projects content update + get round-trip
- ✓Scripts.Run returns a done Operation with the function result
- ✓Scripts.Run passes parameters into the simulation
- ✓Deployments.Create + Deployments.List round-trip
- ✓Unknown project content Get -> googleapi 404
Not implemented (2)
- No deployment get/update/delete — only create and list
- No versions endpoint (GET /v1/projects/{scriptId}/versions)
Differs from the real API (3)
- :run never executes code — known patterns return canned results, others echo parameters
- scripts.run also served at a legacy path form (projects/{id}/scripts/{fn}/run)
- content update accepts POST as well as the real API's PUT
want more of the Google Apps Script API surface? adapters are YAML + Starlark — the authoring guide covers adding routes, fixtures, and state machines. Open an issue for anything big first, or just file a PR — merged routes ship in the next release.