@workos/alto
v0.14.0
Published
Identity and platform access for apps running on Alto.
Maintainers
Keywords
Readme
@workos/alto
Identity and platform access for applications running on Alto. See the application authoring guide for setup and runtime contracts.
AI image generation
Use ai.image() from @workos/alto/ai with AI SDK generateImage for direct
image-model inference. createAltoAI(context).images also starts asynchronous
generations and retrieves their status and image bytes. Enable the browser
routes with withAlto(handler, { images: true }) for a Worker handler, or with
withAltoJobs(handler, { jobs, images: true }) (jobs: {} without jobs) for a
Next, React Router, or TanStack entry, which keeps public routes anonymous. The React entry point
@workos/alto/react exports AltoImage/Image, useAltoImage, and
prefetchAltoImage. Import @workos/alto/styles.css for the shimmer styling.
Generated images are retained for 24 hours, failed status for five minutes, and each output is limited to 20 MiB. Image generation does not accept editing inputs. See the AI gateway image-generation guide for presets, API routes, and cost reporting.
Images
Declare resources.images: [{ binding: "IMAGES" }] in alto.json and use
transformImage from version 0.12.0 or later:
import { transformImage } from "@workos/alto";
const image = await transformImage(env.IMAGES, sourceStream, {
format: "image/webp",
width: 128,
height: 128,
fit: "cover",
quality: 80,
});The input is a ReadableStream<Uint8Array> and the output is a Response.
format is required and accepts image/webp or image/png. Width and height
are optional positive integers, fit accepts cover, and optional quality is
1–100. Fetch or read source bytes in the app and provide a fresh stream for each
output. Return the response to a browser or consume its bytes for storage.
The same helper uses Alto's transformation service in production and an offline native Images binding in local development. See the Images contract for declarations, migration examples, local setup and shared provider limits.
