diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..16804e3c --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,24 @@ +files: ^computer-use-demo/ +default_stages: [pre-commit, pre-push] +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v2.3.0 + hooks: + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.6.7 + hooks: + - id: ruff + name: Run `ruff` to autofix lint errors + args: [--fix-only] + - id: ruff + name: Run `ruff` to format code + entry: ruff format --force-exclude + - id: ruff + name: Run `ruff` to lint code + - repo: https://github.com/RobertCraigie/pyright-python + rev: v1.1.384 + hooks: + - id: pyright diff --git a/computer-use-demo/README.md b/computer-use-demo/README.md index c31739ea..8ef5cbc9 100644 --- a/computer-use-demo/README.md +++ b/computer-use-demo/README.md @@ -48,6 +48,7 @@ Once the container is running, open your browser to [http://localhost:8080](http The container stores settings like API key and custom system prompt in `~/.anthropic/`. Mount this directory to persist these settings between container runs. Alternative access points: + - Streamlit interface only: [http://localhost:8501](http://localhost:8501) - Desktop view only: [http://localhost:6080/vnc.html](http://localhost:6080/vnc.html) - Direct VNC connection: `vnc://localhost:5900` (for VNC clients) @@ -94,6 +95,7 @@ docker run \ ``` ### Vertex + You'll need to pass in Google Cloud credentials with appropriate permissions to use Claude on Vertex. ```bash @@ -112,11 +114,13 @@ docker run \ -p 8080:8080 \ -it computer-use-demo ``` + This example shows how to use the Google Cloud Application Default Credentials to authenticate with Vertex. You can also set `GOOGLE_APPLICATION_CREDENTIALS` to use an arbitrary credential file, see the [Google Cloud Authentication documentation](https://cloud.google.com/docs/authentication/application-default-credentials#GAC) for more details. ## Screen size + Environment variables `WIDTH` and `HEIGHT` can be used to set the screen size. For example: ```bash @@ -137,6 +141,7 @@ We do not recommend sending screenshots in resolutions above [XGA/WXGA](https:// Relying on the image resizing behavior in the API will result in lower model accuracy and slower performance than implementing scaling in your tools directly. The `computer` tool implementation in this project demonstrates how to scale both images and coordinates from higher resolutions to the suggested resolutions. ## Development + ```bash ./setup.sh # configure venv, install development dependencies, and install pre-commit hooks docker build . -t computer-use-demo:local # manually build the docker image (optional) @@ -151,4 +156,5 @@ docker run \ -p 8080:8080 \ -it computer-use-demo:local # can also use ghcr.io/anthropics/anthropic-quickstarts:computer-use-demo-latest ``` + The docker run command above mounts the repo inside the docker image, such that you can edit files from the host. Streamlit is already configured with auto reloading. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..d9ed5fba --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,4 @@ +[tool.pyright] +venvPath = "computer-use-demo" +venv = ".venv" +useLibraryCodeForTypes = false \ No newline at end of file