Skip to content

Add read-only host bind mounts to onboarding #8274

Description

@ericksoa

Problem

NemoClaw cannot declare an existing host directory as a read-only sandbox path during onboarding. nemoclaw <name> upload creates a copy, and nemoclaw <name> share mount projects sandbox files onto the host through bidirectional SSHFS. Neither command gives an agent a live, read-only view of an existing host directory.

OpenShell now supports gated Docker and Podman bind mounts through --driver-config-json. Bind mounts are read-only by default and require enable_bind_mounts = true in the selected driver configuration.

Follow-up to #1045. The original NemoClaw attempt in #1189 closed without merging. The SSHFS alternative shipped in #2773.

Accepted scope

Add a NemoClaw onboarding option for one or more read-only host bind mounts on the NemoClaw-managed Docker driver.

Example:

nemoclaw onboard \
  --host-mount /home/user/project:/sandbox/project

The first implementation must not expose read-write host mounts.

Required behavior

  • Accept repeated --host-mount <host-path>:<sandbox-path> values.
  • Require an existing absolute host directory with no symbolic-link path component.
  • Require an absolute normalized sandbox path below /sandbox.
  • Reject duplicate host paths and duplicate sandbox targets.
  • Pass each mount to OpenShell as a Docker bind mount with read_only: true.
  • Enable bind mounts only for the NemoClaw-managed Docker gateway configuration used for this onboarding request.
  • Preserve the declaration for sandbox rebuilds and reject lifecycle operations that cannot reproduce the mount.
  • Report the host exposure before sandbox creation.
  • Document the sandbox-boundary reduction and the difference from upload and share mount.

Validation

  • Unit tests cover parsing, path validation, duplicate rejection, and OpenShell argument generation.
  • Integration coverage verifies the managed gateway opt-in and read-only driver configuration.
  • Documentation build passes.

Upstream capability

Activity

  1. self-assigned this
    on Aug 5, 2026
  2. added
    area: cliCommand line interface, flags, terminal UX, or output
    area: sandboxOpenShell sandbox lifecycle, runtime, config, or recovery
    on Aug 5, 2026
  3. added a commit that references this issue on Aug 12, 2026
    6174550
  4. added
    area: securitySecurity controls, permissions, secrets, or hardening
    and removed on Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area: cliCommand line interface, flags, terminal UX, or outputarea: sandboxOpenShell sandbox lifecycle, runtime, config, or recoveryarea: securitySecurity controls, permissions, secrets, or hardening

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions