Skip to content
Merged
23 changes: 8 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@
[![PyPI](https://img.shields.io/badge/PyPI-openshell-orange?logo=pypi)](https://pypi.org/project/openshell/)
[![Security Policy](https://img.shields.io/badge/Security-Report%20a%20Vulnerability-red)](SECURITY.md)
[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen)](https://docs.nvidia.com/openshell/latest/index.html)
[![Project Status](https://img.shields.io/badge/status-alpha-orange)](https://docs.nvidia.com/openshell/latest/about/release-notes.html)
[![Project Status](https://img.shields.io/badge/status-alpha-orange)](https://github.com/NVIDIA/OpenShell/releases)

> [!IMPORTANT]
> **OpenShell 0.1.0 is coming soon.** [Track progress in the 0.1.0 milestone](https://github.com/NVIDIA/OpenShell/milestone/10), [read the prerelease documentation](https://docs.nvidia.com/openshell/dev/index.html), or [install a prerelease](#prerelease-and-development-builds).
> **New in OpenShell 0.1.0:** a stable release cadence, an improved security model, an expanded extension surface, and new APIs. [Read the 0.1.0 upgrade guide](https://docs.nvidia.com/openshell/latest/upgrade/0-1-0).
OpenShell is the safe, private runtime for autonomous AI agents. It provides sandboxed execution environments that protect your data, credentials, and infrastructure — governed by declarative YAML policies that prevent unauthorized file access, data exfiltration, and uncontrolled network activity.

OpenShell is built agent-first. It ships public agent skills for using and operating OpenShell, plus separate repository-aware workflows for contributors and maintainers.

## Quickstart
## Install OpenShell

### Prerequisites

Expand Down Expand Up @@ -190,20 +190,13 @@ Docker-backed GPU sandboxes auto-select CDI when available and otherwise fall ba

**Requirements:** NVIDIA drivers and the [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) must be installed on the host. The sandbox image itself must include the appropriate GPU drivers and libraries for your workload — the default Ubuntu image does not. See the [BYOC example](https://github.com/NVIDIA/OpenShell/tree/main/examples/bring-your-own-container) for building a custom sandbox image with GPU support.

## Supported Agents
## Running Agents

OpenShell can run Linux agents packaged in OCI images. The default Ubuntu
workload does not bundle agent CLIs. Build or select an image containing your
agent, then authorize its binary paths, service endpoints, and credentials.

| Agent | Integration |
| ----- | ----------- |
| [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | Package Claude Code in a workload image and attach a `claude-code` provider or another endpoint-bearing model profile. |
| [OpenCode](https://opencode.ai/) | Package OpenCode in a workload image and attach its model provider and policy. |
| [Codex](https://developers.openai.com/codex) | Package Codex in a workload image and attach an OpenAI provider and policy. |
| [GitHub Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli) | Package the CLI in a workload image and attach GitHub credentials and policy. |
| [OpenClaw](https://openclaw.ai/) | Use the [NemoClaw](https://github.com/NVIDIA/NemoClaw) blueprint. |
| [Hermes Agent](https://github.com/NousResearch/hermes-agent) | Use the [NemoClaw](https://github.com/NVIDIA/NemoClaw) blueprint. |
agent, then authorize its binary paths, service endpoints, and credentials. See
[Run Your First Agent](https://docs.nvidia.com/openshell/latest/about/run-an-agent)
for the image, provider, and policy workflow.

## Key Commands

Expand Down Expand Up @@ -284,7 +277,7 @@ Agent implementation is human-directed: a user may request a phase directly, or
## Learn More

- [Full Documentation](https://docs.nvidia.com/openshell/latest/index.html) — overview, architecture, tutorials, and reference
- [Quickstart](https://docs.nvidia.com/openshell/latest/get-started/quickstart)detailed install and first sandbox walkthrough
- [Run Your First Agent](https://docs.nvidia.com/openshell/latest/about/run-an-agent)prepare an image, attach providers, and launch an agent
- [GitHub Sandbox Tutorial](https://docs.nvidia.com/openshell/latest/get-started/tutorials/github-sandbox) — end-to-end scoped GitHub repo access
- [Architecture](https://github.com/NVIDIA/OpenShell/tree/main/architecture) — detailed architecture docs and design decisions
- [Roadmap](https://github.com/orgs/NVIDIA/projects/233) — planned work and project priorities
Expand Down
68 changes: 1 addition & 67 deletions docs/_components/CommandTerminal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@
* SPDX-License-Identifier: Apache-2.0
*/

declare const React: unknown;

const rotatingAgents = ["", "claude", "opencode", "codex"];

export function CommandTerminal({ command }: { command: string }) {
return (
<div
Expand All @@ -22,24 +18,6 @@ export function CommandTerminal({ command }: { command: string }) {
overflow: "hidden",
}}
>
<style>{`
@keyframes nc-cycle {
0%,
20% {
opacity: 1;
}
25%,
100% {
opacity: 0;
}
}

@keyframes nc-blink {
50% {
opacity: 0;
}
}
`}</style>
<div
style={{
alignItems: "center",
Expand Down Expand Up @@ -68,51 +46,7 @@ export function CommandTerminal({ command }: { command: string }) {
</div>
<div style={{ minWidth: "max-content", whiteSpace: "nowrap" }}>
<span style={{ color: "#76B900", userSelect: "none" }}>$ </span>
<span>{"openshell sandbox create "}</span>
<span
style={{
display: "inline-block",
height: "1.8em",
minWidth: "12ch",
overflow: "hidden",
position: "relative",
verticalAlign: "top",
}}
>
{rotatingAgents.map((agent, index) => (
<span
key={agent}
style={{
animation: "nc-cycle 12s ease-in-out infinite",
animationDelay: `${index * 3}s`,
inset: "0 auto auto 0",
opacity: 0,
position: "absolute",
whiteSpace: "nowrap",
}}
>
{agent !== "" && (
<span>
{"-- "}
<span style={{ color: "#76B900", fontWeight: 600 }}>
{agent}
</span>
<span
style={{
animation: "nc-blink 1s step-end infinite",
background: "#d4d4d8",
display: "inline-block",
height: "1.1em",
marginLeft: "1px",
verticalAlign: "text-bottom",
width: "2px",
}}
/>
</span>
)}
</span>
))}
</span>
<span>openshell sandbox create</span>
</div>
</div>
</div>
Expand Down
6 changes: 3 additions & 3 deletions docs/about/how-it-works.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
title: "How OpenShell Works"
sidebar-title: "How It Works"
title: "Architecture"
sidebar-title: "Architecture"
description: "Understand the OpenShell architecture, runtime boundaries, gateways, sandboxes, and ecosystem integration points."
keywords: "Generative AI, Cybersecurity, AI Agents, Architecture, Gateway, Sandbox, Providers"
position: 2
Expand Down Expand Up @@ -90,7 +90,7 @@ device plugins without changing the gateway and sandbox contract.
| [Gateways](/sandboxes/manage-gateways) | Authenticated control plane that owns API access, durable state, sandbox lifecycle, settings delivery, authorization, and relay coordination. |
| [Providers](/sandboxes/manage-providers) | Credential and provider records that map logical agent needs to platform or user-managed secrets without exposing raw credentials to the agent process. |
| [Policies](/sandboxes/policies) | Declarative controls for filesystem access, process identity, network egress, L7 rules, credential injection, and runtime policy updates. |
| [Provider-backed Inference](/sandboxes/inference-routing) | Per-sandbox provider attachment, native model endpoints, and endpoint-bound credential injection. |
| [Inference](/sandboxes/inference-routing) | Per-sandbox provider attachment, native model endpoints, and endpoint-bound credential injection. |

## Gateways and Sandboxes

Expand Down
59 changes: 30 additions & 29 deletions docs/about/installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@
# SPDX-License-Identifier: Apache-2.0
title: "Installation"
sidebar-title: "Installation"
description: "Install OpenShell, choose a compute driver, and connect to a gateway."
description: "Install OpenShell, choose a sandbox runtime, and connect to a gateway."
keywords: "Generative AI, Cybersecurity, AI Agents, Sandboxing, Installation, Setup, Gateway, Docker, Podman, MicroVM, Kubernetes"
position: 3
---

Install OpenShell on a local workstation, choose the runtime that runs
your sandboxes, and verify the package-managed gateway configuration.

## Install OpenShell

Install OpenShell with a single command:
Expand All @@ -20,37 +23,35 @@ The script detects your operating system and installs the OpenShell CLI, standal

You can also download release artifacts directly from the [OpenShell GitHub Releases](https://github.com/NVIDIA/OpenShell/releases) page.

### Install a prerelease

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:

```shell
gh auth login
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | \
OPENSHELL_VERSION=pre sh
```

The installer rejects expired candidates, downloads only the artifact required for your platform, and installs with Debian, RPM, or Homebrew. Installed packages retain the candidate's exact version, such as `0.1.0-pre.3`. Prerelease tags do not create entries on the GitHub Releases page.
Use `openshell status` to confirm the CLI can reach the gateway.

The `openshell` package on PyPI provides the Python SDK only. It does not install the `openshell` CLI. Add the SDK to a Python project with:
## Release Cadence

```shell
uv add openshell
```
OpenShell publishes stable versions as coordinated release sets. The default
installer selects the newest stable release, and the `latest` documentation
channel follows that release. Use the same version of the gateway, compute and
credential drivers, supervisors, CLI, and SDK clients together.

Use `openshell status` to confirm the CLI can reach the gateway.
Between stable releases, numbered prereleases such as `0.1.0-pre.3` provide
evaluation checkpoints. Rolling development builds track successful releases
from `main` and use versions such as `0.0.0-dev.<commit-sha>`. Prerelease and
development builds may change before the next stable release; their matching
documentation is published in the `dev` channel.

## Supported Compute Drivers
## Supported Runtimes

OpenShell supports several local compute drivers. Package-managed gateways leave the driver unset by default so the gateway can auto-detect an available driver. Set `compute_driver` in the gateway TOML when you need to pin a specific driver.
OpenShell supports several sandbox runtimes. Package-managed gateways leave the
runtime unset by default so the gateway can auto-detect an available backend.
Set `compute_driver` in the gateway TOML when you need to pin a specific
runtime.

| Compute Driver | How It Is Configured | System Requirements |
| Runtime | How It Is Configured | System Requirements |
|---|---|---|
| Podman | The gateway is configured to create rootless Podman containers through the Podman API socket. | Linux with Podman 5.x, cgroups v2, rootless networking, and an active Podman user socket. |
| Docker | The gateway is configured to create containers through Docker Desktop or Docker Engine. | Docker Desktop or Docker Engine 28.0 or later on the gateway host. |
| MicroVM | The gateway is configured to create VM-backed sandboxes. | Host virtualization support. MicroVM uses Hypervisor.framework on macOS, KVM on Linux, and QEMU for GPU-backed sandboxes on Linux. |

For detailed driver behavior, refer to [Sandbox Compute Drivers](/reference/sandbox-compute-drivers). For gateway and sandbox operations, refer to [Gateways](/sandboxes/manage-gateways) and [Sandboxes](/sandboxes/manage-sandboxes).
For detailed runtime behavior, refer to [Sandbox Runtimes](/reference/sandbox-compute-drivers). For gateway and sandbox operations, refer to [Gateways](/sandboxes/manage-gateways) and [Sandboxes](/sandboxes/manage-sandboxes).

## macOS

Expand Down Expand Up @@ -160,14 +161,6 @@ sudo systemctl restart snap.openshell.gateway

Kubernetes deployments use the OpenShell Helm chart. For step-by-step installation, refer to [Kubernetes Setup](/kubernetes/setup). For chart values and packaging details, refer to the [Helm chart README](https://github.com/NVIDIA/OpenShell/blob/main/deploy/helm/openshell/README.md).

## Next Steps

- To create your first sandbox, refer to the [Quickstart](/get-started/quickstart).
- To run the gateway as a container without the installer, refer to [Running the Gateway as a Container](/about/container-gateway).
- To register, select, and inspect gateways, refer to [Gateways](/sandboxes/manage-gateways).
- To supply API keys or tokens, refer to [Manage Providers](/sandboxes/manage-providers).
- To control what the agent can access, refer to [Policies](/sandboxes/policies).

## Validate a package-managed gateway configuration

Debian and Ubuntu packages validate the selected gateway configuration before
Expand All @@ -194,3 +187,11 @@ Snap replays its effective daemon arguments through preflight and gives a nonemp
`OPENSHELL_GATEWAY_CONFIG` precedence over `SNAP_COMMON/gateway.toml`.
See [Gateway Configuration](/reference/gateway-config#gateway-config-preflight)
for preflight details and manual schema-v1 migration steps.

## Next Steps

- To prepare an image and launch an agent, refer to [Run Your First Agent](/about/run-an-agent).
- To run the gateway as a container without the installer, refer to [Running the Gateway as a Container](/reference/container-gateway).
- To register, select, and inspect gateways, refer to [Gateways](/sandboxes/manage-gateways).
- To supply API keys or tokens, refer to [Manage Providers](/sandboxes/manage-providers).
- To control what the agent can access, refer to [Policies](/sandboxes/policies).
8 changes: 7 additions & 1 deletion docs/about/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ position: 1

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.

<Note>
New in OpenShell 0.1.0 is a [stable release cadence](/about/installation#release-cadence), a stronger [security model](/about/how-it-works), and an expanded [extension surface](/extensibility/extension-negotiation), along with much more.

See our [upgrade guide](/upgrade/0-1-0) for everything that's changed.
</Note>

## Why OpenShell Exists

AI agents are most useful when they can read files, install packages, call APIs, and use credentials. That same access can create material risk. OpenShell is designed for this tradeoff: preserve agent capability while enforcing explicit controls over what the agent can access.
Expand Down Expand Up @@ -54,5 +60,5 @@ OpenShell supports a range of agent deployment patterns.
Explore these topics to go deeper:

- To understand the runtime architecture, refer to [How OpenShell Works](/about/how-it-works).
- To install the CLI and create your first sandbox, refer to the [Quickstart](/get-started/quickstart).
- To prepare an image and launch an agent, refer to [Run Your First Agent](/about/run-an-agent).
- To learn how OpenShell enforces policy controls across protection layers, refer to [Customize Sandbox Policies](/sandboxes/policies).
Loading
Loading