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.",
            ),
        ),
    ),
    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,
            ),
            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

Metadata

Release files for reboot 1.4.1

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.4.1
File Interpreter ABI Platform
reboot-1.4.1-py3-none-manylinux_2_34_x86_64.whl Python 3 none Linux glibc 2.34+ x86-64 Details
reboot-1.4.1-py3-none-manylinux_2_34_aarch64.whl Python 3 none Linux glibc 2.34+ ARM64 Details
reboot-1.4.1-py3-none-macosx_14_0_arm64.whl Python 3 none macOS 14.0+ ARM64 Details

Total release size: 69.0 MB

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

Download URL reboot-1.4.1-py3-none-manylinux_2_34_x86_64.whl
Size 24.3 MB
Tags Linux glibc 2.34+ x86-64 Python 3
SHA-256 checksum
How to use checksums
fe0f3ae507f3b36573f9ae9b7827b38b77b3e502ed632e985eb6bf717ab51720
BLAKE2b-256 checksum
How to use checksums
9e1bbaa5e8094713b23e1d9877ba42b091498cc775af79bdff63efcc09f83bed
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.4.1-py3-none-manylinux_2_34_aarch64.whl

Download URL reboot-1.4.1-py3-none-manylinux_2_34_aarch64.whl
Size 24.2 MB
Tags Linux glibc 2.34+ ARM64 Python 3
SHA-256 checksum
How to use checksums
ee85bc428491a2cdc62ba72678de3895c863e00c37f1193e8f0712d8ea6123c0
BLAKE2b-256 checksum
How to use checksums
697ea1644408ee4f4c981a365e9e91181208282ea53e94a817f49522861a7240
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.4.1-py3-none-macosx_14_0_arm64.whl

Download URL reboot-1.4.1-py3-none-macosx_14_0_arm64.whl
Size 20.5 MB
Tags Python 3 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
0880afdeca6b6377804b3517e4a0154efbd22c6fa49a989c35174077f260c086
BLAKE2b-256 checksum
How to use checksums
115174d32406c1642ed6569604f75e077909069fc6797394a2dcc13c570ff353
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

1.5.0

3 release files

This release

1.4.1 This release

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