Skip to content
Built for the Claude Code era

The image CDN your AI agent installs for you.

Upload, transform, and deliver images from a single edge endpoint. AVIF, BlurHash, LCP telemetry — all wired up.p95 · 99 ms$0egress1endpoint

Try it now

  1. 1
    Install the skills bundle
  2. 2
    Then run inside Claude Code, Cursor, or Codex

Available for these agents

Claude CodeClaude Code
CursorCursor
GitHub CopilotGitHub Copilot
Gemini CLIGemini CLI
CodexCodex
ClineCline
Claude CodeClaude Code
CursorCursor
GitHub CopilotGitHub Copilot
Gemini CLIGemini CLI
CodexCodex
ClineCline
Claude CodeClaude Code
CursorCursor
GitHub CopilotGitHub Copilot
Gemini CLIGemini CLI
CodexCodex
ClineCline
Try it now — live demo

Your next image optimization is three seconds away

Drop an image. Every number below is your image, measured right now—not a mockup.

Live upload
  • HMAC-signed · single-use
  • Magic-byte validated
  • Direct-to-R2 · zero egress

Demo uploads land in a public bucket and are pruned after 24h. Don't upload anything sensitive.

Drop an image to see it optimized here.

Width, format, and fit controls light up once your upload finishes. Nothing here is a mockup — everything below reflects your actual file.

0 cities. One endpoint.

Your assets get cached at the closest Cloudflare POP to every visitor — origin only sees the long tail.

AMERAmericas
IAD
ORD
ATL
DFW
LAX
SEA
YYZ
MEX
GRU
EZE
SCL
EUEurope
LHR
AMS
FRA
CDG
ARN
MAD
MXP
MEAMiddle East · Africa
IST
DXB
JNB
APACAsia · Pacific
BOM
SIN
HKG
NRT
ICN
SYD
$ curl -I cdn.auraimage.ai/<project>/hero.jpg·cf-cache-status: HIT·age: 184213·cf-ray: 8a3f2…-FRA

Cloudflare runs 300+ POPs; the 27 above are the colos most of our customer traffic resolves to. Your actual closest POP is determined by Anycast at request time.

Ship in minutes, not days

Two commands. You own the component. No vendor lock-in, no SDK hostage situation.

terminal
# 1. Add via shadcn CLI
npx shadcn@latest add https://auraimage.ai/registry/image.json

# 2. Or install the SDK directly
pnpm add @auraimage/sdk
your-component.tsx
import { AuraImage } from '@/components/ui/aura-image';

export function ProductCard() {
  return (
    <AuraImage
      src="your-project/product.jpg"
      width={800}
      height={600}
      alt="Product photo"
      priority
    />
  );
}

Everything your image layer needs

Six layers of image infrastructure, so you can delete the S3 + Sharp + Lambda stack you never wanted.

URL transformations

Resize, crop, format, and quality via URL params. Face-aware cropping. Edge-cached, on-the-fly.

URL transforms

cdn.auraimage.ai/your-project/photo.jpg?w=800&fit=face&fmt=auto&q=80
?w=120
&fit=face
&fmt=auto
&q=20
ResizeSmart cropFormatVary: Accept

Next-gen formats

Auto-serves AVIF → WebP → JPEG based on Accept header.

Same image · 3 formats

AVIF
87 KB
WebP
210 KB
JPEG
2.4 MB
AVIFWebPJPEG

Triple-stage loading

BlurHash → LQIP → full. Zero layout shift, perfect LCP.

Triple-stage load

1. BlurHash

~0ms

2. LQIP

~80ms

3. Full

~400ms
BlurHashLCP

Edge proxy upload

HMAC-signed tokens, magic-byte validation, direct-to-R2. No egress fees. No server.

Upload flow

Your App
→ AuraImage Edge (HMAC verify)
→ Object storage (zero egress)
✓ Magic-byte validated. No server required.
See it live — upload your own
HMACR2Zero egress

MCP / AI integration

First-class Claude Code and Cursor tools. Audit, migrate, rewrite — AI-native from day one.

Claude Code
> audit_lcp
✓ Found 3 unoptimised images
✓ LCP candidate: hero.jpg (2.4 MB)

> migrate_assets --project=acme
↑ Uploading 3 assets to R2…
✓ Rewrote JSX img → AuraImage

> generate_alt
✓ Alt text generated for 3 images
Claude CodeCursorMCP

Drop-in shadcn components

Two npx commands: <AuraImage /> with triple-stage loading, <AuraUploader /> with drag-drop, paste, queue, and progress. You own the source.

terminal
npx shadcn@latest add https://auraimage.ai/registry/image.json
npx shadcn@latest add https://auraimage.ai/registry/uploader.json
image.tsx
<AuraImage
  src="my-project/image.jpg"
  alt="Product photo"
  width={1200}
  height={800}
  priority
/>
uploader.tsx
<AuraUploader
  project="my-project"
  onUpload={(r) => {
    setUrl(r.url);
    setBlurhash(r.blurhash);
  }}
  maxSize="30mb"
  multiple
/>
shadcn/uiRSCImage + Uploader

Simple, transparent pricing

Start free. Scale when you ship. One plan per account — bandwidth and storage are pooled across all your projects.

Free

For side projects and prototypes.

$0/forever
  • 20 GB bandwidth
  • 3 GB storage
  • Center crop
  • Basic analytics
Start free
Most popular

Lite

For indie devs shipping production apps.

$9/per month
  • 40 GB bandwidth, then $0.50/GB
  • 10 GB storage, then $0.10/GB
  • Face-aware crop
  • Real-time analytics
Get Lite

Pro

For production apps that need headroom and SLA.

$89/per month
  • 500 GB bandwidth, then $0.20/GB
  • 100 GB storage, then $0.06/GB
  • Saliency crop + alt-text AI
  • Priority support + SLA
Get Pro

Questions, answered

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

Ship faster images today

Join the developers using AuraImage to serve next-gen formats, eliminate LCP issues, and let their coding agents manage the image pipeline.