Skip to main content

Watchlight AI Enclave

Run an agent in a box it cannot talk its way out of, and get the evidence your security review asks for — checkable offline, by someone who doesn't trust you.

You hand an agent a repo and a task. It can edit files, call tools, and reach the network. Two questions follow immediately, and neither is answerable after the fact by reading logs the agent could have written:

  • What did it actually try to reach?
  • What was it allowed to do, and who decided?

Enclave runs the agent in an isolated sandbox whose only route out is a recording egress guard, and seals what happened into a hash-chained evidence bundle you can hand to someone who doesn't trust you.

pip install watchlight-enclave
wl-enclave init                          # writes enclave.yaml, scaffolds a policy
wl-enclave keygen                        # one key, once; runs seal signed bundles
wl-enclave run --purpose "Fix PR #412"   # runs the agent in a sandbox
wl-enclave verify runs/<id>/bundle       # checks the evidence, offline
wl-enclave hosts --since 2026-11-03      # what did it actually reach?

That last one is the question a security review opens with, and the answer comes out of verified bundles rather than out of the agent's own logs:

$ wl-enclave hosts --since 2026-11-03
wl-enclave: runs     14 verified
wl-enclave: coverage http_connect only; icmp, raw_tcp, udp had no route and are not recorded

HOST                          PORT  VERDICT TRIES      SENT      RECV  LAST IP
pastebin.com                   443  deny       20         -         -  -
example.com                    443  allow      20   34.4 kB  128.2 kB  172.66.147.243

wl-enclave: 2 host/verdict pair(s) over 40 attempt(s)

If a run's bundle doesn't verify, its hosts are left out of that table and the count above it says so. A short host list is the one way this command could mislead you, so it refuses to be quietly short.

One rule drives the whole design: a bundle must never be able to understate what happened. A bundle that quietly drops records while still looking complete is worse than one that admits a gap. The first gets a reviewer to sign off; the second gets them to ask a question. That's why verify gives four answers instead of two: failed, uncontained, incomplete, ok. Only ok exits 0.

verify needs no account, no network and no Watchlight.

Requirements

Python 3.10+, and a container runtime (Docker or Colima) for run. verify needs neither.

Documentation

Everything lives in the repository: the quickstart, what a bundle proves, the trust boundaries, the control vocabulary, egress coverage, and how to write a driver for a new sandbox.

Documentation: https://docs.watchlight.ai/enclave

Source: https://github.com/watchlight-ai-beacon/watchlight-enclave

Status

Early development, pre-1.0. The CLI, the enclave.yaml schema and how strictly verify reads a bundle can each change in a minor release, and the changelog always says which of the three moved. 1.0 waits on the manifest reaching its final shape.

One limit worth knowing up front. A signature means this bundle is the one that key sealed, and nobody has touched it since. It does not mean this bundle is everything that happened. Whoever holds the key can cut the chain short and re-seal it, which is why the format already carries a cosignatures slot for a witness it doesn't have yet. The repository is blunt about this one and the rest of the known gaps.

License

Apache-2.0. The CLI, the evidence format and its offline verifier are all open. Two compiled dependencies — the Cedar decision engine and the MCP policy enforcement runtime — ship under the Watchlight Developer Edition license, free to use including in production and commercially.

Metadata

Release files for watchlight-enclave 0.2.1

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

Source distribution (sdist)

Source distribution for watchlight-enclave 0.2.1
File Size Uploaded Provenance Actions
watchlight_enclave-0.2.1.tar.gz 159.7 kB With provenance Details for watchlight_enclave-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for watchlight-enclave 0.2.1
File Interpreter ABI Platform Actions
watchlight_enclave-0.2.1-py3-none-any.whl Python 3 none any Details for watchlight_enclave-0.2.1-py3-none-any.whl

Total release size: 239.1 kB

Release files / watchlight_enclave-0.2.1.tar.gz

Download URL watchlight_enclave-0.2.1.tar.gz
Size 159.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4184e5f8da7a8ff8b62c82188011c3fc805af0e173df6f8f4c73ae7bd3c5e5ff
BLAKE2b-256 checksum
How to use checksums
aae4180cc112bda982fbfea249cfa70541eefc231f10e694e3f05034b6c2a9e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Release files / watchlight_enclave-0.2.1-py3-none-any.whl

Download URL watchlight_enclave-0.2.1-py3-none-any.whl
Size 79.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4763c727d856ad6be38c6f7ea9d6fff205cef6fb5ccd665bf21198cd4609c3ff
BLAKE2b-256 checksum
How to use checksums
59f80b06e761ccd98e6e7dbed5879f02bddc881c578467b5e52b88e235dcb0f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Security for watchlight-enclave 0.2.1

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for watchlight_enclave-0.2.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

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.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files Full provenance

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