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.

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

reboot-1.3.0-py3-none-manylinux_2_34_x86_64.whl (24.3 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

reboot-1.3.0-py3-none-manylinux_2_34_aarch64.whl (24.2 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

reboot-1.3.0-py3-none-macosx_14_0_arm64.whl (20.5 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

File details

Details for the file reboot-1.3.0-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for reboot-1.3.0-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e03658188c0e85362b1fb8bfdf4b1fe9f6fd047fae198d3e2467b4969fcca8e3
MD5 548f57eaf5e80a253bb9d63e1643f45b
BLAKE2b-256 101afe683d0eab72f4e64d95ce6715add5b2d376d879e71275c7e260755222b5

See more details on using hashes here.

File details

Details for the file reboot-1.3.0-py3-none-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for reboot-1.3.0-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 7bfca0237482d5cdf2078430e745000821a8f38d5e341e75e61b956d80d6c4b5
MD5 e596a257e6f290658deaa2a437e4c103
BLAKE2b-256 85a1880489a5eed6f153e96580f264aaac0a02928fd47e7d89f31ab52de0e565

See more details on using hashes here.

File details

Details for the file reboot-1.3.0-py3-none-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for reboot-1.3.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d9dfa184eb3ca1b8afff6a2b1a7b98b1371e2a06b0ce279fa4bb32064b8c4446
MD5 1fa5068cfe323134b44ffbc44104cf8c
BLAKE2b-256 8792ba5c67b5eabadaa220f9998e05a63d57eef0e76d302082607547b66716bd

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page