Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/llms-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,12 @@ jobs:
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add llms.txt llms-full.txt
git commit -m "chore(llms): regenerate llms.txt and llms-full.txt"
git add llms.txt llms-full.txt ':(glob)*/llms.txt'
git commit -m "chore(llms): regenerate llms.txt files"
git push

- name: Fail if llms.txt was stale
if: steps.check.outcome == 'failure'
run: |
echo "::error::llms.txt / llms-full.txt were out of date. A regeneration commit was pushed to this PR — please review it and re-run CI."
echo "::error::llms.txt files were out of date. A regeneration commit was pushed to this PR; please review it and re-run CI."
exit 1
2 changes: 1 addition & 1 deletion README.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ The site deploys from `main`. Every pull request gets a Docs7 preview link and a

## llms.txt

`llms.txt` and `llms-full.txt` are generated from `docs.json` and the MDX files. Don't edit them by hand. After changing pages, run:
`llms.txt`, `llms-full.txt`, and each product's `<product>/llms.txt` are generated from `docs.json` and the MDX files. Don't edit them by hand. After changing pages, run:

```sh
cd llms && npm install && npm run build
Expand Down
25 changes: 25 additions & 0 deletions blob/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: "Upstash Blob"
sidebarTitle: "Overview"
description: "S3-compatible object storage with TypeScript, Python, and Go SDKs and direct browser uploads."
---

Upstash Blob is S3-compatible object storage. The TypeScript, Python, and Go SDKs each have a `Bucket` client and an upload handler for your server, and `@upstash/blob` has React hooks that upload from the browser straight to storage.

## Start here

- [Quickstart](/blob/overall/quickstart): create a bucket, upload a file from the browser, and read it back.
- [Pricing & Limits](/blob/overall/pricing)

## Sections

- [Bucket](/blob/bucket/connecting): connect, then write, read, delete, and cache objects.
- [Browser Uploads](/blob/uploads/upload-handler): the upload handler and client, constraints, large files, and abandoned uploads.
- SDKs: [TypeScript](/blob/sdks/ts/overview), [Python](/blob/sdks/py/overview), and [Go](/blob/sdks/go/overview) references.
- [Recipes](/blob/recipes/overview): profile pictures, product images, site assets, AI images, attachments, video, private documents, exports, and FastAPI with React.
- [Reference](/blob/reference/types): types, errors, and how signing works.

## For AI agents

- [/docs/blob/llms.txt](https://upstash.com/docs/blob/llms.txt) lists every Blob page.
- Append `.md` to any page URL for its Markdown, for example [/docs/blob/overall/quickstart.md](https://upstash.com/docs/blob/overall/quickstart.md).
69 changes: 69 additions & 0 deletions blob/llms.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Upstash Blob

> S3-compatible object storage with TypeScript, Python, and Go SDKs and direct browser uploads.

Every Upstash Blob page, grouped by sidebar section. Links point to the Markdown version of each page; drop the `.md` suffix for HTML. The index of all Upstash docs is https://upstash.com/docs/llms.txt. Search them with GET https://upstash.com/docs/api/search?q=<query>.

## Get Started

- [Upstash Blob Quickstart](https://upstash.com/docs/blob/overall/quickstart.md): Create a bucket, upload a file straight from the browser, and read it back.
- [Pricing & Limits](https://upstash.com/docs/blob/overall/pricing.md): What Upstash Blob costs, and where the current limits are listed.

## Bucket

- [Connecting](https://upstash.com/docs/blob/bucket/connecting.md): Build a bucket client from the bucket token, on any platform, and reach storage through an S3 client.
- [Writing](https://upstash.com/docs/blob/bucket/writing.md): put, unique paths, metadata, conditional writes, copy and move, and signed upload URLs.
- [Reading](https://upstash.com/docs/blob/bucket/reading.md): get, info, exists and list, public URLs, and signed read URLs on a private bucket.
- [Deleting](https://upstash.com/docs/blob/bucket/deleting.md): Delete one path, a list or a prefix, and clear out incomplete multipart uploads.
- [Caching](https://upstash.com/docs/blob/bucket/caching.md): immutable, revalidate and no-store, where each one can be set, and what a CDN keeps.

## Uploads

- [Upload Handler](https://upstash.com/docs/blob/uploads/upload-handler.md): Mount the upload route, authorize the upload before anything is signed, and record the file once it lands.
- [Constraints](https://upstash.com/docs/blob/uploads/constraints.md): Max size, content types and byte sniffing, enforced on your server before anything is signed.
- [Abandoned Uploads](https://upstash.com/docs/blob/uploads/abandoned-uploads.md): Sweep the incomplete multipart uploads and pending rows left behind by uploads that never finished.

## Browser Client

- [Upload Client](https://upstash.com/docs/blob/uploads/upload-client.md): useUpload, useServerUpload and uploadHooks, for uploading from the browser straight to storage.
- [Large Files](https://upstash.com/docs/blob/uploads/large-files.md): Multipart uploads from the browser, with progress, pause, resume, retries and cancel.

## SDKs > TypeScript

- [TypeScript SDK](https://upstash.com/docs/blob/sdks/ts/overview.md): Install @upstash/blob, pick an entrypoint, and build a Bucket client on Node, Workers or any fetch runtime.
- [Bucket API](https://upstash.com/docs/blob/sdks/ts/bucket.md): Every Bucket method in @upstash/blob: put, get, info, list, copy, move, del, signed URLs and multipart cleanup.
- [Upload Handler](https://upstash.com/docs/blob/sdks/ts/upload-handler.md): uploadHandler in TypeScript: options, callback arguments, uploadRoute(), and mounting it in Next.js, Hono, SvelteKit, Remix and Workers.
- [Errors](https://upstash.com/docs/blob/sdks/ts/errors.md): BlobError in TypeScript: BlobError.is(), the fields it carries, and throwing one from an upload handler.

## SDKs > Python

- [Python SDK](https://upstash.com/docs/blob/sdks/py/overview.md): Install upstash-blob, pick Bucket or AsyncBucket, and build a client for your server.
- [Bucket API](https://upstash.com/docs/blob/sdks/py/bucket.md): Every Bucket method in upstash-blob: put, get, stream, info, list, copy, move, delete, signed URLs and multipart cleanup.
- [Upload Handler](https://upstash.com/docs/blob/sdks/py/upload-handler.md): UploadHandler and AsyncUploadHandler in Python: options, callback arguments, UploadRoute, and mounting on FastAPI, Django and Flask.
- [Errors](https://upstash.com/docs/blob/sdks/py/errors.md): BlobError in Python: the fields it carries, to_dict(), raising one from an upload handler, and what raises something else.

## SDKs > Go

- [Go SDK](https://upstash.com/docs/blob/sdks/go/overview.md): Install blob-go, build a Bucket client, and configure retries, telemetry and an S3 client.
- [Bucket API](https://upstash.com/docs/blob/sdks/go/bucket.md): Every Bucket method in blob-go: Put, Get, Info, List, Copy, Move, Delete, signed URLs and multipart cleanup.
- [Upload Handler](https://upstash.com/docs/blob/sdks/go/upload-handler.md): NewUploadHandler in Go: options, callback arguments, UploadRoute, and mounting it on net/http.
- [Errors](https://upstash.com/docs/blob/sdks/go/errors.md): *blob.Error in Go: matching codes with errors.As, errors.Is and HasCode, its fields, its JSON, and what is returned as a plain error.

## Recipes

- [Blob Recipes Overview](https://upstash.com/docs/blob/recipes/overview.md): Pick a recipe by the shape of your data, and the three rules that run under all of them.
- [Profile Pictures](https://upstash.com/docs/blob/recipes/avatars.md): One picture per user, overwritten in place, uploaded from the browser, with the old one out of the cache.
- [Product Images](https://upstash.com/docs/blob/recipes/product-images.md): Several ordered images per product, uploaded from the browser and rendered from your own rows.
- [Site Assets and CMS Media](https://upstash.com/docs/blob/recipes/site-assets.md): Editor uploads for a CMS, and site assets written by a deploy script.
- [AI-Generated Images](https://upstash.com/docs/blob/recipes/ai-images.md): Keep what a model generated, before the provider's temporary URL expires.
- [File Attachments](https://upstash.com/docs/blob/recipes/attachments.md): Several files per thread, uploaded from the browser as multipart, one row per attachment.
- [Video Uploads](https://upstash.com/docs/blob/recipes/video.md): Multi-gigabyte video uploaded straight from the browser, with progress and resume.
- [Private Documents](https://upstash.com/docs/blob/recipes/private-documents.md): One document per owner on a private bucket, handed out through short-lived signed URLs.
- [Generated Exports](https://upstash.com/docs/blob/recipes/exports.md): A background job builds the file, and the download link stops working after a day.
- [FastAPI + React Uploads](https://upstash.com/docs/blob/recipes/fastapi-react.md): A FastAPI backend serving useUpload from @upstash/blob/react: direct browser uploads, one row per file, signed in users only.

## Reference

- [Types](https://upstash.com/docs/blob/reference/types.md): Size, Duration, CacheOption, the record types, and the phases an upload moves through.
- [Errors](https://upstash.com/docs/blob/reference/errors.md): BlobError codes, what reaches the browser, and the platform body limits behind a 413.
- [How Signing Works](https://upstash.com/docs/blob/reference/signing.md): What the bucket token signs, how the direct upload handshake works, and what the browser gets to see.
27 changes: 27 additions & 0 deletions box/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
title: "Upstash Box"
sidebarTitle: "Overview"
description: "Secure, isolated cloud containers with a built-in AI agent."
---

Every Upstash Box is a secure, isolated cloud container with an AI agent built in. Each box has its own filesystem, shell, git, network stack, and runtime. You send prompts or commands, the box runs them, and you get structured results back.

## Start here

- [Quickstart](/box/overall/quickstart): get an API key, install the SDK, create a box, and run your first task.
- [Box Basics](/box/overall/how-it-works): architecture, billing, and lifecycle.
- [Use Cases](/box/overall/use-cases)
- [Pricing & Limits](/box/overall/pricing)

## Sections

- [Basics](/box/overall/agent): the agent, custom agents and harnesses, git, shell, live sessions, filesystem, and snapshots.
- [Lifecycle](/box/overall/preview): public URLs, schedules, keep alive, and ephemeral boxes.
- [Security](/box/overall/security): secrets, network policy, and attached headers.
- [Browser](/box/overall/browser/overview): a cloud browser with tabs, page reading, AI actions, live view, recordings, and CDP.
- [Guides](/box/guides/remote-development): end-to-end setups for coding agents, frameworks, and agent platforms.

## For AI agents

- [/docs/box/llms.txt](https://upstash.com/docs/box/llms.txt) lists every Box page.
- Append `.md` to any page URL for its Markdown, for example [/docs/box/overall/quickstart.md](https://upstash.com/docs/box/overall/quickstart.md).
81 changes: 81 additions & 0 deletions box/llms.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Upstash Box

> Secure, isolated cloud containers with a built-in AI agent.

Every Upstash Box page, grouped by sidebar section. Links point to the Markdown version of each page; drop the `.md` suffix for HTML. The index of all Upstash docs is https://upstash.com/docs/llms.txt. Search them with GET https://upstash.com/docs/api/search?q=<query>.

## Introduction

- [Upstash Box Quickstart](https://upstash.com/docs/box/overall/quickstart.md)
- [Box Basics](https://upstash.com/docs/box/overall/how-it-works.md)
- [Upstash Box Use Cases](https://upstash.com/docs/box/overall/use-cases.md)
- [Pricing & Limits](https://upstash.com/docs/box/overall/pricing.md)

## Basics

- [Agent](https://upstash.com/docs/box/overall/agent.md)
- [Git](https://upstash.com/docs/box/overall/git.md)
- [Shell](https://upstash.com/docs/box/overall/shell.md)
- [Live Sessions](https://upstash.com/docs/box/overall/live-sessions.md)
- [Filesystem](https://upstash.com/docs/box/overall/files.md)
- [Snapshots](https://upstash.com/docs/box/overall/snapshots.md)

## Basics > Custom Agents

- [How to Add a Custom Agent](https://upstash.com/docs/box/overall/custom-agent.md)
- [Pi](https://upstash.com/docs/box/overall/custom-harness/pi.md)
- [Gemini](https://upstash.com/docs/box/overall/custom-harness/gemini.md)
- [Copilot CLI](https://upstash.com/docs/box/overall/custom-harness/copilot.md)
- [Aider](https://upstash.com/docs/box/overall/custom-harness/aider.md)
- [Goose](https://upstash.com/docs/box/overall/custom-harness/goose.md)
- [Amp](https://upstash.com/docs/box/overall/custom-harness/amp.md)
- [CrewAI](https://upstash.com/docs/box/overall/custom-harness/crewai.md)
- [Pydantic AI](https://upstash.com/docs/box/overall/custom-harness/pydantic-ai.md)

## Lifecycle

- [Public URLs](https://upstash.com/docs/box/overall/preview.md)
- [Upstash Box Schedules](https://upstash.com/docs/box/overall/schedules.md)
- [Keep Alive](https://upstash.com/docs/box/overall/keep-alive.md)
- [Ephemeral Box](https://upstash.com/docs/box/overall/ephemeral-box.md)

## Security

- [Security & Secrets](https://upstash.com/docs/box/overall/security.md)
- [Network Policy](https://upstash.com/docs/box/overall/network-policy.md)
- [Attach Headers](https://upstash.com/docs/box/overall/attach-headers.md)

## Browser

- [Browser](https://upstash.com/docs/box/overall/browser/overview.md)
- [Tabs & Navigation](https://upstash.com/docs/box/overall/browser/tabs.md)
- [Reading Pages](https://upstash.com/docs/box/overall/browser/reading-pages.md)
- [AI Actions](https://upstash.com/docs/box/overall/browser/ai-actions.md)
- [Live View](https://upstash.com/docs/box/overall/browser/live-view.md)
- [Recordings](https://upstash.com/docs/box/overall/browser/recordings.md)
- [Connect over CDP](https://upstash.com/docs/box/overall/browser/connect.md)
- [Cookbook](https://upstash.com/docs/box/overall/browser/cookbook.md): Runnable browser examples grouped by use case. Each one is self-contained: paste it, run it, read the output.

## Guides

- [Remote Development Environment for AI Coding Agents](https://upstash.com/docs/box/guides/remote-development.md): Turn an Upstash Box into a remote development environment. Your app runs in the cloud, you open it in your browser, and your coding agent does the work.
- [Host Hermes Agent in a Cloud Sandbox and Connect from Hermes Desktop](https://upstash.com/docs/box/guides/hermes-setup.md): Host the Hermes agent by Nous Research in a keep-alive Upstash Box and use it from Hermes Desktop on your machine over SSH.
- [Run Hermes Agent's Terminal in Upstash Box](https://upstash.com/docs/box/guides/hermes-plugin-setup.md): Use the Upstash Box plugin for Hermes Agent to run its terminal, code execution and file tools in a box, while Hermes itself stays on your machine.
- [Host T3 Code in a Remote Sandbox](https://upstash.com/docs/box/guides/t3-code-setup.md): Run T3 Code in an Upstash Box and open it from any browser or phone. The box sleeps when you are away and wakes when you open the URL again.
- [Run a Next.js App in a Cloud Sandbox with a Public URL](https://upstash.com/docs/box/guides/nextjs-setup.md): Scaffold a Next.js app inside an Upstash Box, run the dev server, and open it from any browser through a public URL, all with the Box SDK.
- [Build an AI Code Review Agent for Pull Requests](https://upstash.com/docs/box/guides/code-review-agent.md): Build an AI code review agent with Upstash Box that clones a repo, inspects the pull request diff, and returns structured findings with severity and suggested fixes.
- [Sandbox Backend for LangChain Deep Agents](https://upstash.com/docs/box/guides/langchain-deep-agents.md): Use langchain-upstash-box as a Deep Agents sandbox backend, so the agent's shell and file tools run in an isolated Upstash Box instead of on your machine.
- [Playwright Web Scraping with a Cloud Browser](https://upstash.com/docs/box/guides/web-scraping-playwright.md): Scrape JavaScript-heavy sites with the managed Chromium in Upstash Box. Extract structured data through the SDK, then connect Playwright over CDP.
- [Run a Browser Use Agent on a Daily Schedule](https://upstash.com/docs/box/guides/browser-use.md): Run a Browser Use agent inside Upstash Box and schedule it with cron. The example agent reads Hacker News every morning and saves a report to the box.
- [Vercel AI SDK Code Interpreter and Shell Tools](https://upstash.com/docs/box/guides/ai-sdk-setup.md): Give Vercel AI SDK agents a cloud sandbox to run Python, JavaScript, and shell commands, manage files, and share app previews with Upstash Box.
- [Run TanStack AI Coding Agents in a Cloud Sandbox](https://upstash.com/docs/box/guides/tanstack-setup.md): Run TanStack AI coding agents like Claude Code, Codex, and OpenCode inside Upstash Box with the native @tanstack/ai-sandbox-upstash-box provider.
- [Vercel Eve Sandbox for Isolated Code Execution](https://upstash.com/docs/box/guides/eve-setup.md): Use @upstash/agentkit-eve to run Vercel Eve agent code in Upstash Box, with deny-all egress, setup baked into a snapshot, and one box per session.
- [Run Pi Agent Tool Calls in a Remote Sandbox](https://upstash.com/docs/box/guides/pi-setup.md): Use the @upstash/box-pi extension to run every Pi tool call in an Upstash Box, while the agent and your model API keys stay on your machine.
- [Self-Host an Always-On OpenClaw Agent in the Cloud](https://upstash.com/docs/box/guides/openclaw-setup.md): Install OpenClaw in a keep-alive Upstash Box over SSH, open its dashboard from your machine, and restart it automatically with an init script.
- [Run Herdr Coding Agents in Isolated Cloud Sandboxes](https://upstash.com/docs/box/guides/herdr-setup.md): Use the Upstash Box plugin for Herdr to run coding agents from a Git worktree in their own box, then apply their changes locally as a reviewed patch.
- [Self-Hosted Sandboxes for Claude Managed Agents](https://upstash.com/docs/box/guides/claude-managed-agents.md): Use Upstash Box as a self-hosted sandbox for Claude Managed Agents. Claude runs on Anthropic's side, and each session's bash commands and file edits run in its own box.
- [Self-Hosted Sandboxes for the OpenAI Agents API](https://upstash.com/docs/box/guides/openai-agents-api.md): Use Upstash Box as a self-hosted sandbox for the OpenAI Agents API. The agent runs on OpenAI's side, and each session's commands run in its own box.
- [Run Box Agents on Neon AI Gateway Models](https://upstash.com/docs/box/guides/neon-ai-gateway.md): Run Claude Code, Codex, and OpenCode in Upstash Box on Neon AI Gateway models, with one Neon credential and Neon prepaid credits.
- [In-App Coding Agent with CopilotKit](https://upstash.com/docs/box/guides/copilotkit.md): Add a CopilotKit chat to your Next.js app where each user talks to a coding agent running in their own Upstash Box, next to its shell and files.
- [Run Your Test Suite in a Cloud Sandbox with Crabbox](https://upstash.com/docs/box/guides/crabbox-setup.md): Use the Crabbox CLI to run your test suite in a clean Upstash Box from your local machine.
- [Run Orca Workspaces in Upstash Box](https://upstash.com/docs/box/guides/orca-setup.md): Use the Upstash Box plugin for Orca to run each workspace and its coding agents in its own box, reached over SSH.
Loading
Loading