Metadata-Version: 2.5
Name: anvil-web
Version: 2.0.0b2
Summary: The workcell's web API: the robot, its controllers and the saved workcell over HTTP, built from anvil
License-Expression: Apache-2.0
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: anvil-robotics[sim]<3,>=2.0.0b2
Requires-Dist: fastapi
Requires-Dist: mcap
Requires-Dist: mcap-protobuf-support
Requires-Dist: packaging
Requires-Dist: uvicorn[standard]
Description-Content-Type: text/markdown

# anvil-web

The web app for [Anvil](https://anvil.bot) workcells: bring the robot up, teleoperate it with a Meta Quest, a pair of
leader arms or the keyboard, record episodes and export them to LeRobot, and look back at what the robot did. It drives
Anvil's arms through the `anvil` SDK, [`anvil-robotics`](https://pypi.org/project/anvil-robotics/) on PyPI, and runs
any of them in the sim, MuJoCo standing in for the hardware, so you can try all of it without a robot.

## Try it

On Linux or macOS, with [uv](https://docs.astral.sh/uv/getting-started/installation/):

```sh
curl -LsSf https://astral.sh/uv/install.sh | sh    # once, if you have no uv
uv tool install anvil-web
anvil-web serve
```

Then open http://localhost:8000, pick a robot, and Activate brings it up in the sim. Settings, Software updates it in
place; `anvil-web update` does the same from a terminal.

A workcell from Anvil runs this same package, set up for its hardware with `anvil-web setup`.

## This repository

The source of PyPI's `anvil-web`:

| path | is |
|---|---|
| `web/backend/` | the FastAPI app over `anvil`, and the `anvil-web` command |
| `web/frontend/` | the page it serves, React built with Vite; the wheel carries its build |
| `docs/` | the `anvil` SDK's guides and examples |

To work on it, with uv and [pnpm](https://pnpm.io/installation): `web/dev.sh` serves the page from Vite, reloading as
you edit, over the backend; `web/run.sh` builds the page and serves it as the package does.

Issues are welcome: bugs, questions, and what you would like the web app to do.

## License

Apache-2.0, in `LICENSE`. The `anvil-robotics` package it runs on is Anvil's, under its own terms.
