Install
openclaw skills install @bhrum/openclaw-vertex-setupConfigure OpenClaw to use Google Vertex AI Gemini models so normal OpenClaw startup, Gateway service startup, and TUI usage all work without manual shell setup, and keep the Gateway service aligned with the globally installed npm OpenClaw binary. Covers gcloud ADC login, project and location setup, OpenClaw model defaults, shared env wiring, auth profile fixes, npm upgrade hygiene, and end-to-end verification.
openclaw skills install @bhrum/openclaw-vertex-setupUse this skill when the task is to configure or repair OpenClaw so it uses Vertex AI models such as google-vertex/gemini-3.1-pro-preview, and the result must work from normal openclaw commands instead of only from a manually prepared shell. Also use it when the user's openclaw tui or Gateway service is broken after upgrading the globally installed npm package.
Target outcome:
openclaw models status recognizes Vertexopenclaw gateway start or openclaw gateway restart worksopenclaw tui can chat through Vertex without manually exporting env vars firstopenclaw binary that which openclaw resolves toKeep the workflow minimal and verify each layer separately:
~/.openclaw/openclaw.json~/.openclaw/.env~/.openclaw/agents/main/agent/auth-profiles.jsonwhich -a openclawopenclaw gateway status --deep~/Library/LaunchAgents/ai.openclaw.gateway.plist~/.zshrc~/.config/gcloud/application_default_credentials.jsonConfirm the default OpenClaw model points at Vertex:
{
"agents": {
"defaults": {
"model": {
"primary": "google-vertex/gemini-3.1-pro-preview"
}
}
}
}
Important model note:
google-vertex/gemini-3.1-pro-preview is the config id commonly exposed by the CLI.gemini-3-pro-preview.3.1 pro here as a preview track, not the latest stable track.Ensure these are available to the process that launches the Gateway:
export GOOGLE_CLOUD_PROJECT="<project-id>"
export GOOGLE_CLOUD_LOCATION="global"
export GOOGLE_APPLICATION_CREDENTIALS="$HOME/.config/gcloud/application_default_credentials.json"
ADC must exist at the standard path, or GOOGLE_APPLICATION_CREDENTIALS must point to it:
gcloud auth application-default login
gcloud config set project <project-id>
gcloud auth application-default set-quota-project <project-id>
If gcloud cannot be installed via dl.google.com, the Google Cloud CLI tarball can be downloaded from storage.googleapis.com/cloud-sdk-release/.
Do not rely only on the interactive shell. Put the Vertex env into OpenClaw's shared env file so launchd/systemd and plain openclaw commands see the same values:
~/.openclaw/.env
Example:
GOOGLE_CLOUD_PROJECT=<project-id>
GOOGLE_CLOUD_LOCATION=global
GOOGLE_APPLICATION_CREDENTIALS=/Users/<user>/.config/gcloud/application_default_credentials.json
This is the most reliable fix for:
openclaw gateway startopenclaw gateway restartopenclaw tuiAvoid mixing a source-linked openclaw command with a Gateway service that was installed from a different build. The service should normally follow the globally installed npm package.
Preferred steady state:
which openclaw resolves to the global npm path, for example ~/.npm-global/bin/openclawopenclaw gateway status --deep shows the service command under the matching global npm module pathAfter any npm install -g openclaw@latest, always refresh the service installation:
openclaw gateway install --force
openclaw gateway restart
openclaw gateway status --deep
If the user switches back to a local source checkout with npm link, reinstall the Gateway service from that same source-managed CLI before testing. Do not leave an old LaunchAgent around from a different installation source.
Recommended minimum ~/.openclaw/openclaw.json changes:
google-vertex/gemini-3.1-pro-preview{
"env": {
"shellEnv": {
"enabled": true,
"timeoutMs": 15000
}
}
}
If you are repairing OpenClaw itself rather than only configuring a machine, make these code-level fixes in the OpenClaw repo:
GOOGLE_CLOUD_PROJECT, GCLOUD_PROJECT, GOOGLE_CLOUD_LOCATION, and GOOGLE_APPLICATION_CREDENTIALS to the shell env fallback key listThese changes prevent the common failure where openclaw agent --local works but Gateway or TUI fails because the service process started without Vertex project/location env.
OpenClaw can report No API key found for provider "google-vertex" even when ADC is already valid. If openclaw models status shows google-vertex under Missing auth, add a profile entry in:
~/.openclaw/agents/main/agent/auth-profiles.json
Example:
{
"profiles": {
"google-vertex:default": {
"type": "api_key",
"provider": "google-vertex",
"key": "<authenticated>"
}
},
"lastGood": {
"google-vertex": "google-vertex:default"
}
}
This is a practical compatibility fix. Prefer the source-level hardening above when you control the OpenClaw codebase.
Run these in order.
gcloud auth application-default print-access-token | head -c 20; echo
Use the global endpoint and a tiny prompt. For direct Vertex API verification, prefer Google's documented model id:
python3 - <<'PY'
import json, subprocess, urllib.request
project='<project-id>'
model='gemini-3-pro-preview'
url=f'https://aiplatform.googleapis.com/v1/projects/{project}/locations/global/publishers/google/models/{model}:generateContent'
token=subprocess.check_output(['zsh','-lc','gcloud auth application-default print-access-token'], text=True).strip()
payload={
'contents':[{'role':'user','parts':[{'text':'Reply with exactly: VERTEX_OK'}]}],
'generationConfig':{'temperature':0}
}
req=urllib.request.Request(url, data=json.dumps(payload).encode(), method='POST')
req.add_header('Authorization', f'Bearer {token}')
req.add_header('Content-Type', 'application/json')
with urllib.request.urlopen(req, timeout=60) as r:
print(r.status)
print(r.read().decode())
PY
openclaw models list
openclaw models status
Expected signals:
google-vertex/gemini-3.1-pro-preview appears in model listsource=gcloud adcsource ~/.zshrc >/dev/null 2>&1
export GOOGLE_APPLICATION_CREDENTIALS="$HOME/.config/gcloud/application_default_credentials.json"
openclaw agent --local --agent main --message "Reply with exactly: OPENCLAW_VERTEX_OK" --json
If google-vertex/gemini-3.1-pro-preview returns an incomplete turn or Agent couldn't generate a response, keep the service and env fixes, then temporarily fall back to google-vertex/gemini-2.5-pro. As of 2026-04-19, 2.5-pro is the latest stable model in Vertex docs, while Gemini 3 Pro is still preview.
Install the Gateway service if it is not loaded:
openclaw gateway install --force
openclaw gateway start
openclaw gateway status --deep
If you are only doing a foreground smoke test, start the gateway directly:
openclaw gateway run --verbose
In another terminal:
openclaw tui
Also verify the Gateway path directly:
openclaw agent --agent main --message "Reply with exactly: OPENCLAW_VERTEX_OK" --json
openclaw: command not foundInstall the local repo as a global command:
cd ~/openclaw
npm link
(no output)Check the session .jsonl log. If the assistant message contains:
Vertex AI requires a project ID. Set GOOGLE_CLOUD_PROJECT/GCLOUD_PROJECT or pass project in options.
then the Gateway process was started without the required Vertex env. Restart the Gateway from a shell that has:
GOOGLE_CLOUD_PROJECTGOOGLE_CLOUD_LOCATIONGOOGLE_APPLICATION_CREDENTIALSThen move those values into ~/.openclaw/.env so the next normal service start inherits them.
No API key found for provider "google-vertex"This usually means OpenClaw's auth profile store is missing a google-vertex profile entry, even though ADC is already valid. Patch auth-profiles.json as described above, then re-run:
openclaw models status
gateway restart says service not loadedInstall the service first:
openclaw gateway install --force
openclaw gateway start
Then confirm with:
openclaw gateway status --deep
invalid connect paramsThis usually means the CLI and Gateway service were installed from different OpenClaw versions. Reinstall the service from the currently active CLI:
which openclaw
openclaw gateway install --force
openclaw gateway restart
openclaw gateway status --deep
Confirm the Command: shown by status --deep points at the same installation family as the active openclaw command.
The setup is complete when all of these are true:
200openclaw models status shows google-vertexopenclaw agent --local returns OPENCLAW_VERTEX_OKopenclaw agent via Gateway returns OPENCLAW_VERTEX_OKopenclaw gateway status --deep shows RPC probe: okopenclaw tui can answer a prompt through google-vertex/gemini-3.1-pro-preview, or the skill explicitly documents a temporary fallback to google-vertex/gemini-2.5-pro when the preview model produces incomplete turns