Skip to main content

Reboot

Reboot

Build AI Chat Apps — and full-stack web apps — with reactive, durable backends.

License PyPI npm Discord Docs


Reboot is a framework for building reactive, stateful, multiplayer AI chat apps — visual apps that run inside ChatGPT, Claude, VS Code, Goose, and more. It also builds full-stack web apps with reactive backends and React frontends.

With Reboot, you just write business logic — no wiring up databases, caches, queues, or retry loops. State survives failures by default. ACID transactions span multiple states. The React frontend stays in sync in real time. And your backend is automatically an MCP server.

AI Chat Apps

Build visual, interactive apps that run inside AI chat interfaces. Define a Session type as an entry point and your methods automatically become tools the AI can call:

from reboot.api import (
    API, Field, Methods, Model, Reader, Tool,
    Transaction, Type, UI, Writer,
)


class CreateCounterResponse(Model):
    counter_id: str = Field(tag=1)


class UserState(Model):
    pass


class CounterState(Model):
    value: int = Field(tag=1, default=0)


class GetResponse(Model):
    value: int = Field(tag=1)


class IncrementRequest(Model):
    """Request with an amount parameter."""
    amount: int | None = Field(tag=1, default=None)


api = API(
    User=Type(
        state=UserState,
        methods=Methods(
            create_counter=Transaction(
                request=None,
                response=CreateCounterResponse,
                description="Create a new Counter.",
                mcp=Tool(),
            ),
        ),
    ),
    Counter=Type(
        state=CounterState,
        methods=Methods(
            show_clicker=UI(
                request=None,
                path="frontend/mcp/clicker",
                title="Counter Clicker",
                description="Interactive clicker UI.",
            ),
            create=Writer(
                request=None,
                response=None,
                factory=True,
                description="Create the counter at zero.",
                mcp=None,
            ),
            get=Reader(
                request=None,
                response=GetResponse,
                description="Get the current counter "
                "value.",
                mcp=Tool(),
            ),
            increment=Writer(
                request=IncrementRequest,
                response=None,
                description="Increment the counter.",
                mcp=Tool(),
            ),
        ),
    ),
)

Dive in!

Full-stack apps

Build reactive backends with React frontends — great as a full-page extension of your AI chat app, or as a standalone web app.

TypeScript backend support is in alpha: the core of Reboot works in both languages, but some features — including MCP apps, UI methods, the built-in OAuth sign-in flow, and durable agents — are currently Python-only. If you don't have a strong preference, start with Python.

Key features

Automatic MCP server. Session methods are automatically exposed as MCP tools. Other types can opt in with mcp=Tool(). UI methods open React apps in the AI's chat. No glue code.

Durable state by default. States survive process crashes, deployments, and chaos. No external database required.

ACID transactions across states. transaction methods compose atomically across many state instances running on different machines.

Reactive React frontend. Generated hooks keep your UI in sync without manual management of WebSockets, caches, or polling.

Method system. Code is safer to write (and read) with a clear API and methods with enforced constraints: reader (concurrent, read-only), writer (serialized, mutating), transaction (ACID, cross-state), workflow (long-running, durable, cancellable), ui (React app in AI chat). The runtime enforces these guarantees.

API-first, code-generated. Define APIs using Pydantic (Python) or Zod (TypeScript). Reboot generates type-safe client, server, and React stubs.

Documentation

Full documentation at docs.reboot.dev.

Community

Contributions are welcome. Open an issue to discuss substantial changes before sending a pull request.

License

Apache 2.0

Release files for reboot 1.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for reboot 1.5.0
File Interpreter ABI Platform
reboot-1.5.0-py3-none-manylinux_2_34_x86_64.whl Python 3 none Linux glibc 2.34+ x86-64 Details
reboot-1.5.0-py3-none-manylinux_2_34_aarch64.whl Python 3 none Linux glibc 2.34+ ARM64 Details
reboot-1.5.0-py3-none-macosx_14_0_arm64.whl Python 3 none macOS 14.0+ ARM64 Details

Total release size: 72.6 MB

Release files / reboot-1.5.0-py3-none-manylinux_2_34_x86_64.whl

Download URL reboot-1.5.0-py3-none-manylinux_2_34_x86_64.whl
Size 25.5 MB
Tags Linux glibc 2.34+ x86-64 Python 3
SHA-256 checksum
How to use checksums
ac47a95c8f88b6b69a5983bfac5f118d031f102ec707ff9e48aea43e8cf73138
BLAKE2b-256 checksum
How to use checksums
fffecba921f1ab9c91d03ec71e338a4bc3faa672b0768641641ee6186e4f26ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.12

Release files / reboot-1.5.0-py3-none-manylinux_2_34_aarch64.whl

Download URL reboot-1.5.0-py3-none-manylinux_2_34_aarch64.whl
Size 25.4 MB
Tags Linux glibc 2.34+ ARM64 Python 3
SHA-256 checksum
How to use checksums
18ed834274c1442a38b7375d49a0de2c2a8343f09e727827217ed926bc4ced46
BLAKE2b-256 checksum
How to use checksums
7b78f1b4c99d43957a078208cb57a128ff961083c9141d8dfd0d2b3f5128aed5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.12

Release files / reboot-1.5.0-py3-none-macosx_14_0_arm64.whl

Download URL reboot-1.5.0-py3-none-macosx_14_0_arm64.whl
Size 21.7 MB
Tags Python 3 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
805edf950918cf1f97643cd004c2ac03abca9ab1887bc2c859631c8eb4359518
BLAKE2b-256 checksum
How to use checksums
cbc9deadaea6b1ccc89536df04b48b7e2e01567092ef7a46bae4e9561c92a041
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.12

Release history Release notifications | RSS feed

1.6.0

3 release files

This release

1.5.0 This release

3 release files

1.4.1

3 release files

1.4.0

3 release files

1.3.0

3 release files

1.2.1

3 release files

1.2.0

3 release files

1.1.0

3 release files

1.0.4

3 release files

1.0.3

3 release files

0.46.0

3 release files

0.45.2

3 release files

0.44.0

3 release files

0.43.0

3 release files

0.42.0

3 release files

0.40.1

3 release files

0.40.0

3 release files

0.39.0

3 release files

0.38.4

4 release files

0.38.2

4 release files

0.38.1

4 release files

0.38.0

4 release files

0.37.2

4 release files

0.36.0

4 release files

0.35.0

4 release files

0.34.0

4 release files

0.33.1

4 release files

0.33.0

4 release files

0.30.0

4 release files

0.29.5

4 release files

0.29.4

4 release files

0.29.3

4 release files

0.29.2

4 release files

0.28.0

4 release files

0.27.1

4 release files

0.27.0

4 release files

0.26.0

4 release files

0.25.6

4 release files

0.25.5

4 release files

0.25.4

4 release files

0.25.3

4 release files

0.25.2

4 release files

0.25.1

4 release files

0.25.0

3 release files

0.24.0

3 release files

0.23.0

3 release files

0.22.0

3 release files

0.21.0

3 release files

0.19.2

3 release files

0.19.1

3 release files

0.19.0

3 release files

0.18.2

3 release files

0.18.1

3 release files

0.18.0

3 release files

0.17.0

3 release files

0.15.0

3 release files

0.14.0

3 release files

0.13.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page