agent37-grok template runs Grok, xAI’s coding agent, on an Agent37 instance: an always-on computer with the same chat API, sessions, files, and URLs as every other template. The image is lean, with no browser and no desktop. Grok runs on your own xAI API key: Agent37 never supplies or bills xAI model usage, and there is no managed-model option on this template, so set your key before the first chat turn.
Create the instance
One call to the hosting API athttps://api.agent37.com, with your xAI API key as instance env:
curl
201 response carries the instance id and its URL, https://{instanceId}.agent37.app, which routes to the gateway on port 3737. The terminal is on port 7681 and the file browser on 8080, each at https://{instanceId}-{port}.agent37.app; see Instance and preview URLs.
Grok reads XAI_API_KEY straight from the environment, so there is no login step: the first turn works as soon as the instance is running. Until a key is set, a chat turn fails with auth_error, and GET /v1/health?agent=grok on the instance URL reports "healthy": false. To connect a Grok subscription account instead of a key, mint a signed URL for the terminal port and run grok login --device-code in the shell; the login persists on the instance volume.
Send the first message
Chat is the instance URL plus a path, with the samesk_live_ key sent as the X-Agent37-Key header. grok is the template’s default agent, so there is no agent field to pass:
curl
"stream": true to receive the turn as Server-Sent Events instead of one JSON body, and reuse the returned session_id to continue the conversation. Grok owns its session store, so start a session by omitting session_id; you cannot bring an unknown id on the first turn. See Send a message and Streaming.
Models
GET /v1/models?agent=grok on the instance lists the models your xAI key can run, the grok-4.x family. With no key set the list is empty. Pass an id as model on a turn, and set reasoning_effort per turn (ultra maps to Grok’s max; non-reasoning models ignore the knob). Usage bills to your xAI account, not your Agent37 wallet, and each turn’s usage reports the real USD cost. See Models.
Connect apps
App integrations work here like on every system template: drive the/v1/integrations endpoints to connect your users’ Gmail, Slack, Notion, and hundreds of other apps, and the platform registers its Composio MCP server with Grok automatically (in ~/.grok/config.toml).
Custom image
To add your own tools, build on the clean base image, which ships Grok and the gateway with no managed integrations, the same pattern ashermes-base: