You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 73a181d
Browse filesBrowse the repository at this point in the historyBrowse files
docs: streamline README, add policy prover to architecture docs (#3718)
* docs(readme): streamline README and move reference detail to docs
Restructure the README as a short path from overview to quickstart to
further reading. Move prerelease install steps into the installation
guide and telemetry build flags into a new observability page. Fix
broken docs links and outdated runtime and credential descriptions.
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs(readme): describe 0.1.0 as adding new isolation primitives
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs(architecture): add policy prover as a gateway component
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs: describe OpenShell as a runtime for fleets of autonomous AI agents
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs(architecture): describe policy prover as formal verification
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs(architecture): name OpenShell Sandbox in component table
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs(architecture): fold isolation backend into supervisor row
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs(architecture): mention formal verification in overview
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs(run-agent): use the published OpenCode image in the first-agent guide
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs(inference): correct provider examples and readiness
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
* docs(providers): correct Google binding and provider selection
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
* docs(readme): sharpen value prop, how it works, and explore further
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs(run-agent): use example Anthropic profile and add policy advisor step
Import the example Anthropic profile, which now allows OpenCode, instead
of editing it with sed. Add a step that shows how to review and approve
mechanistic policy proposals as the agent needs more access.
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* feat(providers): add OpenRouter example for OpenCode
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs(run-agent): run OpenCode against OpenRouter with a free model
Add an example OpenRouter provider profile scoped to OpenCode and switch
the first-agent guide to it, using a free Nemotron model so readers do
not need OpenRouter credits. Revert the OpenCode binary added to the
example Anthropic profile.
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
* docs(readme): link first-agent guide and add agent skills section
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
---------
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Co-authored-by: Piotr Mlocek <pmlocek@nvidia.com>
Copy file name to clipboardExpand all lines: architecture/README.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# OpenShell Architecture
2
2
3
-
OpenShell runs autonomous AI agents in sandboxed environments with explicit
3
+
OpenShell runs fleets of autonomous AI agents in sandboxed environments with explicit
4
4
policy, credential, identity, and network boundaries. The target architecture is
5
5
built around three stable runtime components: the **CLI**, the **Gateway**, and
6
6
the **Supervisor**.
@@ -29,6 +29,7 @@ flowchart TB
29
29
30
30
subgraph CP["Control Plane"]
31
31
GW["Gateway core"]
32
+
PROVER["Policy prover"]
32
33
DB[("Shared persistence")]
33
34
COMPUTE["Compute"]
34
35
CREDS["Credentials"]
@@ -59,6 +60,7 @@ flowchart TB
59
60
TUI -->|"gRPC / HTTP"| GW
60
61
61
62
GW --> DB
63
+
GW -->|"proposed policy changes"| PROVER
62
64
GW --> COMPUTE
63
65
GW --> CREDS
64
66
GW --> CPIDENT
@@ -89,6 +91,7 @@ flowchart TB
89
91
|---|---|
90
92
| CLI, SDK, TUI | User-facing management surfaces. They talk to the gateway and do not need to know which infrastructure drivers are active. |
91
93
| Gateway | Authenticated control plane, API server, durable state, policy and settings delivery, provider config, supervisor session ownership, and relay coordination. |
94
+
| Policy prover | Gateway-linked formal verification of proposed policy changes. It reports categorical findings (new credentialed reach, new HTTP methods, L7 bypass, link-local reach); any finding blocks auto-approval. The same crate backs the standalone `openshell-prover check` boundary command, which runs on local files without a gateway. See [Security Policy](security-policy.md). |
92
95
| Compute subsystem | Sandbox lifecycle semantics: creation, deletion, watching, reconciliation, and state transitions. Platform provisioning details belong to the compute driver. |
93
96
| Credentials subsystem | Logical provider and credential resolution. Secret storage and platform-native credential access belong to credentials drivers. |
94
97
| Control-plane identity | Authentication and authorization for users, operators, and API clients. External identity verification belongs to identity drivers. |
Copy file name to clipboardExpand all lines: docs/about/architecture.mdx
+6-5Lines changed: 6 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,8 +11,9 @@ position: 2
11
11

12
12
13
13
OpenShell separates control-plane state from sandbox enforcement. The gateway
14
-
owns sandbox state, policy, providers, and access. A compute driver provisions
15
-
the workload and its isolation boundary.
14
+
owns sandbox state, policy, providers, and access, and uses formal verification
15
+
to evaluate proposed policy changes before they are approved. A compute driver
16
+
provisions the workload and its isolation boundary.
16
17
17
18
The trusted supervisor runs outside the workload. `openshell-sandbox` runs
18
19
inside it, owns the agent process, and mediates its network requests. All other
@@ -25,10 +26,10 @@ gateway for configuration, credentials, logs, and interactive sessions.
25
26
|---|---|
26
27
|[Gateway](/how-it-works/gateways/overview)| Checks who you are and remembers everything about your sandboxes. It delivers policy and settings, attaches providers, decides who can do what, and coordinates connections into sandboxes. |
27
28
|[Compute runtime](/how-it-works/sandboxes/runtimes)| Creates the sandbox, starts the supervisor and the workload, sets up the private channel between them, and builds the network fence. It reports status back and cleans up when the sandbox goes away. |
28
-
|[Supervisor](#inside-the-sandbox-boundary)| Lives on the trusted side of the boundary. It checks requests against policy, supplies credentials, resolves DNS, opens approved connections, and keeps the link to the gateway alive. |
29
-
|[Isolation backend](/extensibility/isolation-backends)| Gives the supervisor one consistent way to work with any runtime: confirm the boundary, start the agent, run commands, forward connections, and see network requests. |
30
-
|[`openshell-sandbox`](#inside-the-sandbox-boundary)| Lives inside the boundary with the agent. It owns the agent's processes, knows which program made each request, applies process controls, and forwards TCP and DNS traffic to the supervisor. |
29
+
|[Supervisor](#inside-the-sandbox-boundary)| Lives on the trusted side of the boundary. It checks requests against policy, supplies credentials, resolves DNS, opens approved connections, and keeps the link to the gateway alive. It works with every runtime through one [isolation backend](/extensibility/isolation-backends) interface to confirm the boundary, start the agent, run commands, forward connections, and see network requests. |
30
+
|[OpenShell Sandbox](#inside-the-sandbox-boundary)| Lives inside the boundary with the agent. It owns the agent's processes, knows which program made each request, applies process controls, and forwards TCP and DNS traffic to the supervisor. |
31
31
|[Outer network fence](/security/best-practices#deny-by-default-egress)| Denies all network egress from the workload except its protected connection to the supervisor. Each runtime builds this with its own native tools. |
32
+
|[Policy prover](/how-it-works/policies/prover)| Runs in the gateway and uses formal verification to check each proposed policy change before approval. It flags changes such as new credentialed reach, new HTTP methods, or access to cloud metadata endpoints, and any finding blocks auto-approval. It also ships as the standalone `openshell-prover` command for checking a policy against a boundary in CI. |
32
33
|[Policies](/how-it-works/policies/overview)| Describe what the agent can touch: files, processes, network destinations, API calls, and where provider credentials can go. |
33
34
|[Providers](/how-it-works/providers/overview)| Connect a service name to a stored credential. The supervisor hands that credential out only where policy allows it. |
Copy file name to clipboardExpand all lines: docs/about/installation.mdx
+37Lines changed: 37 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,6 +26,43 @@ openshell status
26
26
27
27
To install a specific release, set `OPENSHELL_VERSION` to a release tag. Release artifacts are also on the [GitHub Releases](https://github.com/NVIDIA/OpenShell/releases) page.
28
28
29
+
## Prerelease and Development Builds
30
+
31
+
Use a prerelease candidate to evaluate an upcoming release, or the rolling development build to test the latest commit on `main`. These builds may change before the next stable release. The matching documentation is published in the [development channel](https://docs.nvidia.com/openshell/dev/index.html).
32
+
33
+
Prerelease packages are retained as GitHub Actions artifacts for 90 days and require an authenticated [GitHub CLI](https://cli.github.com/) session. The `pre` alias installs the latest prerelease:
The installer checks prerelease tags from newest to oldest, selects an unexpired artifact from a successful release run for the current platform, and downloads only that artifact. Installed packages keep the candidate's exact version, such as `0.1.0-pre.3`. Prerelease tags do not create entries on the GitHub Releases page. On Linux, prereleases and explicit release tags use Debian or RPM packages even if `snap` is installed.
42
+
43
+
The rolling [`dev` release](https://github.com/NVIDIA/OpenShell/releases/tag/dev) does not require GitHub authentication:
For Kubernetes, select the corresponding Helm chart version. Helm chart versions omit the leading `v` from release tags:
51
+
52
+
```shell
53
+
# Pin an exact candidate
54
+
helm upgrade --install openshell \
55
+
oci://ghcr.io/nvidia/openshell/helm-chart \
56
+
--version 0.1.0-pre.3
57
+
58
+
# Rolling development build
59
+
helm upgrade --install openshell \
60
+
oci://ghcr.io/nvidia/openshell/helm-chart \
61
+
--version 0.0.0-dev
62
+
```
63
+
64
+
Prerelease charts use exact `<version>-pre.N` versions. Development charts are also published as immutable `0.0.0-dev.<commit-sha>` versions when you need to pin a specific commit.
65
+
29
66
## Supported Runtimes
30
67
31
68
The local gateway auto-detects an available runtime. To pin one, set `compute_driver` in the gateway TOML file. See [Sandbox Runtimes](/how-it-works/sandboxes/runtimes).
Copy file name to clipboardExpand all lines: docs/about/overview.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,12 +3,12 @@
3
3
# SPDX-License-Identifier: Apache-2.0
4
4
title: "Overview of NVIDIA OpenShell"
5
5
sidebar-title: "Overview"
6
-
description: "OpenShell is the safe, private runtime for autonomous AI agents. Run agents in sandboxed environments that protect your data, credentials, and infrastructure."
6
+
description: "OpenShell is the safe, private runtime for fleets of autonomous AI agents. Run agents in sandboxed environments that protect your data, credentials, and infrastructure."
NVIDIA OpenShell is an open-source runtime for executing autonomous AI agents in sandboxed environments with kernel-level isolation. It combines sandbox runtime controls and a declarative YAML policy so teams can run agents without giving them unrestricted access to local files, credentials, and external networks.
11
+
NVIDIA OpenShell is an open-source runtime for executing fleets of autonomous AI agents in sandboxed environments with kernel-level isolation. It combines sandbox runtime controls and a declarative YAML policy so teams can run agents without giving them unrestricted access to local files, credentials, and external networks.
12
12
13
13
<Note>
14
14
New in OpenShell 0.1.0: a [stable release cadence](/about/support-matrix#releases), new [isolation primitives](/about/architecture), and an expanded [extension surface](/extensibility/overview), along with much more.
Copy file name to clipboardExpand all lines: docs/how-it-works/providers/profiles.mdx
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -891,10 +891,11 @@ Each attached provider with a matching profile contributes a provider policy lay
891
891
892
892
Updating a custom provider profile affects every provider instance whose `type` matches that profile ID. Provider instances are not rewritten, and sandbox-authored policies are not modified. Running sandboxes observe the updated provider-derived policy on their next config sync. If a gateway-global policy is active, provider-derived policy layers remain suppressed.
893
893
894
-
The CLI can infer a provider profile from a recognized sandbox command and
895
-
auto-create the provider from profile discovery. Attach a different existing
896
-
provider explicitly with `--provider`, or use `openshell sandbox provider
897
-
attach` after creation.
894
+
Name a provider with `--provider` when creating a sandbox. If no provider has
895
+
that name and it matches an imported profile ID, the CLI can create the
896
+
provider from local profile discovery. The trailing sandbox command does not
897
+
select a provider. Use `openshell sandbox provider attach` to add an existing
0 commit comments