clasp run [functionName] allows you to execute Apps Script functions remotely.
To use clasp run, you need to complete 5 steps:
- Set up the Project ID in your
.clasp.jsonif missing. - Create an OAuth Client ID of type
Desktop Application. Download asclient_secret.json. clasp login --creds client_secret.json --user <key>with this downloaded file.- Add the following to
appsscript.json:"executionApi": { "access": "ANYONE" }
- Deploy your project as an API Executable if necessary
- Ensure you have upgraded to the latest version
clasp -v
- Add a
projectIdto your.clasp.json. You can find your Project ID via:- Create a GCP project
- Record the
Project IDandProject number. (Example:my-sample-project-191923.and314053285323) - Manually add the
Project IDto your.clasp.jsonfile.{ "scriptId": "...", "projectId": "my-sample-project-191923" }
- Set the
projectIdto your Apps Script project- Open
https://console.developers.google.com/apis/credentials/consent?project=[PROJECT_ID] - Set
Application nametoclasp projectand clicksave. - Run
clasp open-script - In the menu, click
⚙️ Project Settings > Google Cloud Platform (GCP) Project - If the
Project Numberis missing,- Click
Change Project, paste the PROJECT_NUMBER, and clickSet project
- Click
- Open
- Use your own OAuth 2 client. Create one by following these instructions:
clasp open-credentials-setup- Press Create credentials > OAuth client ID
- Application type: Desktop App
- Create > OK
- Download the file (⬇), move it to your directory, and name it
client_secret.json. Please keep this file secret!
- Ensure that the scopes required to run the script are listed in
appsscript.json. - Call
clasp login --user <name> --use-project-scopes --creds client_secret.json- This authorizes the scopes declared in
appsscript.json. - If needed, include default clasp scopes with
--include-clasp-scopes. - If needed, add custom scopes with
--extra-scopes <scopeA,scopeB>.
- This authorizes the scopes declared in
- Add the following to
appsscript.json:"executionApi": { "access": "ANYONE" }
- If you use Google Workspace, enable
Apps Script API- Open
https://console.cloud.google.com/marketplace/product/google/script.googleapis.com?project=[PROJECT_ID] - Press ENABLE button
- Open
After setup, you can remotely execute Apps Script functions from clasp:
clasp pushyour files.- Type
clasp run. You'll be prompted for which function you want to run. Select and press Enter. - The result is displayed in the output.
- You can also run functions directly. i.e.
clasp run helloWorld.
If you get an "Script API executable not published/deployed." error, deploy your script as an API Executable:
- Run
clasp open-script - Click
Deploy > New deployment - Select type ⚙ > API Executable
- Type a
Description - Click
Deploy
Many Apps Script functions require special OAuth Scopes (Gmail, Drive, etc.).
To run functions that use these scopes, you must add the scopes to your Apps Script manifest and clasp login again.
clasp open-scriptFile > Project Properties > Scopes- Add these scopes to your
appsscript.json. - Log in again:
clasp login --user <name> --use-project-scopes --include-clasp-scopes --creds creds.json. This combines your manifest scopes with default clasp scopes in one credential profile. - For additional one-off OAuth scopes, include
--extra-scopesas a comma-separated list with no empty values. clasp run --user <name> sendMail