Skip to main content

harbor-glovebox

Run a Harbor trial inside a glovebox microVM instead of a shared-kernel container. Each trial boots one hardware-isolated VM behind glovebox's outgoing-traffic filter, and the filter's records land beside the trial's other artifacts.

Status

The harbor-trial live check drives one trial's environment calls on a real microVM in CI, then runs harbor run with Harbor's oracle agent over a one-task dataset through this environment. No run over a published dataset with a model-backed agent has used it yet.

Use

Install the released package:

pip install harbor-glovebox

To run the unreleased code on main instead, install all three packages from the repository at one revision. That needs git on the machine. Set R to the same tag or full commit for all three, since two people who install main on different days get different code. --upgrade --force-reinstall replaces a released glovebox-driver or glovebox-hosts that already satisfies the version pins:

R=git+https://github.com/AlexanderMattTurner/agent-glovebox.git@<tag-or-full-commit>
pip install --upgrade --force-reinstall \
  "glovebox-hosts @ $R#subdirectory=glovebox-hosts" \
  "glovebox-driver @ $R#subdirectory=glovebox-driver" \
  "harbor-glovebox @ $R#subdirectory=harbor-glovebox"

Then run a trial:

harbor run --dataset <dataset> --agent claude-code \
  --env harbor_glovebox.environment:GloveboxEnvironment

The host needs what any glovebox launch needs. glovebox sandbox preflight checks it, and each trial runs that check before it builds anything.

Users

A command runs as the user Harbor names, else the task's [agent].user or [verifier].user. With neither named, it runs as glovebox's de-privileged account, never as the image's own USER. Before that account's first command, it takes over the image's working directory and what the image's USER owned in its home. A task that names the image's own account keeps those files as they are. Every command inherits the image's ENV, as docker exec would carry it. Harbor names root itself for its own setup steps, such as installing the agent. Every command, root's included, sends its traffic through the in-VM filter and then the host filter outside the VM.

What it refuses, and why

  • network_mode = "public". glovebox has no unfiltered mode. Use allowlist and list every host the task needs. Put the agent's model endpoint in Harbor's extra_allowed_hosts.
  • Wildcard and IP allowlist entries. The filter matches hostnames only. Harbor rejects such a task before it starts.
  • A bare top-level name as an allowlist entry, such as com. A public suffix with a dot, such as github.io, is accepted: like every entry, it reaches that one host alone.
  • A download larger than 1 GiB. The guest's archive arrives in the host's memory whole, so the transfer fails rather than grow without bound.
  • A task image that already ships /logs, /tests, /solution or /harbor. The guest's root is read-only, so each of Harbor's fixed trees is a link onto the guest's writable /tmp disk, and the image build refuses to replace a tree the image carries.
  • Multi-container tasks (a docker-compose.yaml in the task's environment directory).

storage_mb is ignored, as Harbor's own Docker environment ignores it.

Metadata

Release files for harbor-glovebox 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for harbor-glovebox 0.2.0
File Size Uploaded Provenance
harbor_glovebox-0.2.0.tar.gz 15.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for harbor-glovebox 0.2.0
File Interpreter ABI Platform
harbor_glovebox-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 30.6 kB

Release files / harbor_glovebox-0.2.0.tar.gz

Download URL harbor_glovebox-0.2.0.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
56e95b4c2230a9841a2f08b4996a093ac90ddae50ccf160f6e578d8b2cad541c
BLAKE2b-256 checksum
How to use checksums
1f7810d64a2021d94d989e7d2e56554cb2deb6eab6c9cbcb9d885e5db6ca3d94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / harbor_glovebox-0.2.0-py3-none-any.whl

Download URL harbor_glovebox-0.2.0-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0a5f275b0987f98c38fb1ec3829f4a12761afa20e93d99721dc4b321d8e9f85e
BLAKE2b-256 checksum
How to use checksums
60c6ed06d68702f10fef007c66fac684f4d51a8c6b39456f06f483b0b596fb74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for harbor-glovebox 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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