Skip to main content

The Reboot library

Project description

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="web/ui/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

Project details


Release history Release notifications | RSS feed

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.2.1-py3-none-manylinux_2_34_x86_64.whl (24.3 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

reboot-1.2.1-py3-none-manylinux_2_34_aarch64.whl (24.1 MB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

reboot-1.2.1-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.2.1-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for reboot-1.2.1-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 988cb8d6e84981d35c1bf4c9040eda4181d4d221d0ff1e9a48922b7f50c123de
MD5 85fd9f8f7f9f7a4a8b7e3e593fe610a3
BLAKE2b-256 1fa37c8b5caf625a3f1b87b075b5bf23040a6f7761c797c245822144900999ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reboot-1.2.1-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 bb91ee132940d66c6779c2e5038f2fbf70fd567351c912bf0acf33ba60111860
MD5 c2e60c7bbb4ecf1add60f3dc78b20447
BLAKE2b-256 643ae004b65f1bbef40d8da6051fcff73925fae358a4c3ccf7b00d00bd2c7421

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for reboot-1.2.1-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b54cbf0233f297926ce516d39578efaea47953d113eca7095d4d0f07a1e4b192
MD5 ff6b780662e9305bdb89e1e02743b676
BLAKE2b-256 fd85082fea1aaf65904b2f732c893469cb1d2534dff96ba527ca5575c5afbf55

See more details on using hashes here.

Supported by

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