OPEN SOURCE · SELF-HOSTED OR MANAGED
ADD AN AGENT
TO YOUR APP
IN MINUTES
Drop a Cursor-style agent into your product. It answers queries, interacts with your app, renders your UI components, and works with users' files.
STEP 01
ADD THE FRONTEND SDK
Install one package and mount one component. You get a complete agent sidebar that already streams, retries, reads files, and matches your product.
$ npm install @astralbeam/sdk+ added 1 package import { AstralBeamChat } from "@astralbeam/sdk/react" export function Sidebar() { return ( <AstralBeamChat title="Acme Assistant" theme={{ light: { "--primary": "#4f46e5", "--radius": "0.75rem", }, dark: { "--primary": "#818cf8", }}} attachments={{ maxFiles: 5 }} /> )}Cursor-style agentic chat
Streaming replies, visible tool calls, and follow-up questions. A React component, or a one-line mount anywhere else.
Managed backend
Model calls, tool orchestration, and file handling run on AstralBeam. Nothing for you to deploy or scale.
Fully customizable
Your title, copy, color scheme, and design tokens, or swap the header and empty state for your own components.
Users' files
Users drop in screenshots, PDFs, spreadsheets, and code. The agent reads them and answers from them.
Sandboxes and artifacts
Give the agent a sandbox to run code against uploaded data. The files it produces arrive as signed downloads.
Resumable streaming
Reload mid-answer and the stream picks up where it left off, on the same device or another one.
IN PROGRESS
STEP 02
IDENTIFY YOUR USERS
Your server already knows who is signed in. Mint a short-lived token that carries the user and their tenant, and the widget picks it up. API keys never reach the browser.
import { createAstralBeamToken } from "@astralbeam/sdk/server" export async function POST(request: Request) { const session = await getSession(request) const token = await createAstralBeamToken({ apiKey: process.env.ASTRALBEAM_API_KEY, user: { id: session.user.id, name: session.user.name, }, tenant: { id: session.org.id, name: session.org.name, }, }) return Response.json({ token })}Conversation history
Every user picks up their own threads, on any device, without you storing a message.
IN PROGRESS
Rate limits
Per-customer and per-user limits, so one tenant can never drain another's budget.
Usage tracking
Tokens, tool calls, and sandbox time, broken down by tenant and by user.
IN PROGRESS
Metered billing
Charge for usage through Stripe, with plans, allowances, and overages.
IN PROGRESS
Observability
One click to send traces to Langfuse, Braintrust, or your OpenTelemetry collector.
IN PROGRESS
Tenant isolation
Organization and tenant boundaries are enforced in the database, not only at the API.
STEP 03
CONNECT TOOLS & WIDGETS
Declare what the agent can do and what it can draw. Tools run in your page against your own state. Widgets render your components inside the reply.
<AstralBeamChat tools={{ refundOrder: defineTool({ description: "Refund an order and notify the customer", parameters: z.object({ orderId: z.string() }), execute: ({ orderId }) => api.refund(orderId), }), }} widgets={{ orderCard: defineWidget({ description: "Show an order's status and total", parameters: z.object({ orderId: z.string() }), render: ({ orderId }) => <OrderCard id={orderId} />, }), }}/>Read user data
Tools run in the page with the user's own session, so the agent sees exactly what they see.
Take actions
Refund, create, assign, send. The agent does the work inside your app, behind your permission checks.
Interactive widgets
Render your own components inside the reply. State stays live in both directions.
Ask before acting
The agent can pause and ask the user a structured question before it commits.
Typed and validated
Zod, Valibot, ArkType, or plain JSON Schema. Input is validated before your code runs.
Your app as an MCP server
Expose the same tools over MCP, so users can drive your app from Claude, ChatGPT, or Cursor.
IN PROGRESS
WORKS WITH YOUR STACK
AstralBeam sits between your app and the providers you already pay for. Swap any of them without touching the widget.
LLM PROVIDERS & GATEWAYS
Bring your own keys. Route through a gateway if you already have one.
- OpenAI
- Anthropic
- OpenRouter
- Vercel AI Gateway
OBSERVABILITY
Every run traced where your team already looks.
- Langfuse
- Braintrust
- LangSmith
- OpenTelemetry
CODING SANDBOXES
Pick a provider in the dashboard. The agent gets a workspace per conversation.
- Docker
- Daytona
- Vercel Sandbox
- Sprites
IDENTITY & BILLING
Your session is the source of truth. Usage rolls up into your billing.
- Any auth provider
- Stripe
OPEN SOURCE FROM DAY ONE
The AstralBeam platform is open source under AGPL-3.0, built on open standards, and modular by design. Read it, fork it, run it, extend it.
SELF-HOST
Run the whole platform on your own infrastructure. Your data never leaves your orbit.
CLOUD
Let us run it for you: managed infrastructure, zero maintenance, always current.
MODULAR
Start with the entire platform, or adopt it incrementally, piece by piece.
OPEN PROTOCOLS
Built on open protocols: AG-UI, MCP, A2A. Swap pieces in and out instead of adopting a proprietary runtime.
READY FOR LAUNCH
Get started with a few lines of code, or come talk to us on Discord.