Skip to content

Grok Build

Image CDN for Grok Build

Grok Build takes TOML like Codex, but scoped to the project — and it expands ${AURA_SECRET_KEY} for you.

$0 forever 20 GB bandwidth 3 GB storage hard stop at quota — never a surprise bill. Compare plans

Add AuraImage to Grok Build

Like Codex this file is TOML, but the env vars get their own [mcp_servers.auraimage.env] table and Grok expands ${VAR} (and ${VAR:-default}) in url, command, args, env, and headers. grok mcp add --scope project writes this file in the current directory; when Grok loads, a project server replaces a user-level one of the same name entirely.

.grok/config.toml
[mcp_servers.auraimage]
command = "npx"
args = ["-y", "@auraimage/mcp-server@latest"]
enabled = true
startup_timeout_sec = 30

[mcp_servers.auraimage.env]
AURA_SECRET_KEY = "${AURA_SECRET_KEY}"

Or from the terminal

bash
grok mcp add --scope project auraimage -- npx -y @auraimage/mcp-server@latest

Verified against the vendor docs on 2026-08-09.

Optimize images with Grok Build

Each prompt is paired with the MCP tool it fires.

  • Audit the images in this repo only — I keep the server scoped to this project.audit_lcp
  • Move every image in src/assets to AuraImage and keep the original filenames. If it stalls halfway, stop and I will run grok mcp doctor.migrate_assets
  • Write alt text for the pricing and checkout pages, and flag any I should redo by hand.generate_alt
  • Build the hero a responsive <picture> at 480, 960, and 1920 — if the server is still cold, raise startup_timeout_sec rather than dropping a size.generate_responsive_tag
  • Preview logo-wide.png as a square avatar and as a wide OG card, using the server from this checkout rather than the user-level one it replaced.smart_crop_preview
grok — ~/dev/acme-storefront
main ~/dev/acme-storefront
24K / 500K
/install-auraimage-app4:38 PM
Thought for 0.6s
I'll scan the project first — framework, image surface, secrets, backend, hosting — then show you one plan and one confirm.4:38 PM
readpackage.jsonNext.js 15.4 · App Router · TypeScript · pnpm 9
grep<img|background-image14 <img> tags · 6 res.cloudinary.com URLs
globpublic/**/*.{png,jpg}23 local images · 18.7 MB total
read.gitignore.env.local ignored · no AURA_* keys anywhere
readvercel.jsonhosting: Vercel → env file convention .env.local
Discovery — acme-storefront
  Framework   Next.js 15 (App Router, TypeScript, pnpm)
  Images      14 <img> tags · 23 files in /public · 6 Cloudinary URLs
  Secrets     no AURA_* keys · .env.local gitignored
  Backend     route handlers — can sign upload tokens
  Hosting     Vercel

Plan
  1. Credentials & env     →  auraimage-api-key
  2. Register MCP server   →  .mcp.json
  3. Install SDK           →  pnpm add @auraimage/sdk
  4. Components            →  <AuraImage /> + <AuraUploader />
  5. Token route           →  app/api/aura/sign/route.ts
4:39 PM
install-auraimage-app
5 steps · 6 writes · nothing runs before this confirm
1/2:selectCtrl+o:yoloCtrl+c:cancel
No Secret Key found. Paste one from the dashboard (Settings → Secret Keys) — it stays masked in this session.4:39 PM
sk_live_0198a4f2…9c1b4:40 PM
fetchauraimage.ai/v1/sign — validate keyvalid · project acme-storefront · key name "prod"
auraimage-api-key
.env.local +AURA_SECRET_KEY=sk_live_0198…9c1b +NEXT_PUBLIC_AURA_PROJECT_NAME=acme-storefront
1/2:selectCtrl+o:yoloCtrl+c:cancel
write.env.local+2 keys · values masked in the log
edit.mcp.jsonmerged "auraimage" server · existing servers untouched
bashpnpm add @auraimage/sdk+ @auraimage/sdk 1.4.2
bashnpx shadcn@latest add https://auraimage.ai/registry/image.jsoncomponents/aura/image.tsx
bashnpx shadcn@latest add https://auraimage.ai/registry/uploader.jsoncomponents/aura/uploader.tsx
Run Write app/api/aura/sign/route.ts
after: import { AuraImage } from '@auraimage/sdk';
after:
after: const aura = new AuraImage({
after: secretKey: process.env.AURA_SECRET_KEY!,
after: projectName: process.env.NEXT_PUBLIC_AURA_PROJECT_NAME!
after: });
after:
after: export async function POST() {
after: const signature = await aura.signUpload({ maxSize: '5mb', allowedTypes: ['image/*'] });
after: return Response.json({ signature });
after: }
AuraImage installed — 6 writes, 0 failures

Wrote
  .env.local           +2 keys (masked)
  .mcp.json            auraimage MCP server
  package.json         @auraimage/sdk 1.4.2
  components/aura/     image.tsx · uploader.tsx
  app/api/aura/sign/   route.ts (+11 lines)

Next
  1. Restart your agent to load the MCP server
  2. audit_lcp — scan for unoptimized images
  3. migrate_assets — 23 local + 6 Cloudinary images detected
  4. auraimage-react — <AuraImage /> patterns

Docs: https://auraimage.ai/docs
4:41 PM

Turn completed in 142.7s.

Grok 4.5 (xhigh) · always-approve

A Cloudinary alternative your agent can wire up itself

CapabilityCloudinary / ImgixAuraImage with Grok Build
Pricing modelMetered per GB and per transformFlat monthly price
EgressBilled$0
AVIFOpt-in configurationServed by default
BlurHash placeholdersBuild it yourselfBundled
ComponentSDK importLands in your repo, yours to edit
InstallManual wiringOne MCP config, then a prompt

Teach Grok Build your image conventions

AGENTS.md at the repo root is the primary convention and Grok Build reads it, alongside every *.md in a .grok/rules/ directory. Use .grok/rules/ when you want Grok-specific guidance that other agents will not pick up. Rules load from the root down to the working directory, with deeper files winning on conflicts.

Path.grok/rules/

Verified against the vendor docs on 2026-08-09.

Questions, answered

The things developers ask before they ship. If something is missing, just email us.

Install it in your side project. Pay when you ship.

$0 forever 20 GB bandwidth 3 GB storage hard stop at quota — never a surprise bill. Compare plans