Skip to content

Project modules

Quarshell is split across 20 independent Go module repositories plus client, documentation, deployment, and workspace repositories. Go APIs are pre-stable: module tags stay in 0.x until the project declares an API stable. The list below describes each repository's responsibility; it does not claim complete OpenShell parity. See compatibility status for implementation gaps.

Go modules

Module Responsibility
quarshell-cli cautem command line, gateway selection, sandbox lifecycle, policy commands, interactive terminal, completions, installer and bundled local Gateway.
quarshell-core Shared domain types, defaults, policy schema and evaluation primitives, host matching, resource admission, and OpenShell compatibility helpers.
quarshell-policy Bounded policy parsing, validation, typed evaluation inputs and policy composition for sandbox/runtime components.
quarshell-prover Symbolic and solver-backed policy containment and risk analysis.
quarshell-providers Built-in provider profile catalog and composition of provider requirements into effective policy.
quarshell-credentials Credential storage backends and token grant/refresh primitives; secret values stay outside sandbox filesystems.
quarshell-proto Pinned OpenShell protobuf schemas and generated Go, gRPC, Connect and TypeScript bindings.
quarshell-spi Public service-provider contracts for compute, credentials, isolation and extensions.
quarshell-driver Compute Backend SPI plus Docker, Podman and experimental Kubernetes implementations.
quarshell-driver-vm MicroVM lifecycle, worker, guest agent, image import, networking, terminal and recovery. Some OpenShell VM behaviors remain partial.
quarshell-driver-mxc Reserved independent boundary for the Windows MXC driver. Its OpenShell behavior has not yet been ported.
quarshell-gateway Gateway API and RPC server, authentication, sandbox/workspace orchestration, state, policies, providers, service routing and backend composition.
quarshell-sdk Go client for Gateway RPC: typed resources, sandbox operations, streaming, identity and session helpers.
quarshell-proxy Sandbox egress enforcement, CONNECT and application-layer mediation, credential rewriting, policy advisor and audit events.
quarshell-runtime Sandbox/guest init, hardening, secrets support, runtime helpers and sandbox image sources.
quarshell-isolation Host-side Linux process isolation and admission primitives, including supported cgroup/seccomp/Landlock paths.
quarshell-supervisor Host-side process execution, PTY sessions, lifecycle state and supervisor reporting.
quarshell-display GUI sandbox and password-protected noVNC helper integration.
quarshell-slogx Structured logging helpers for log/slog, trace correlation, redaction, live level control and bounded payload dumps.
quarshell-telemetry Independent telemetry module boundary. The OpenShell telemetry pipeline is not implemented there yet.

Other repositories

Repository Responsibility
quarshell-python Python client SDK for Gateway operations over the OpenShell RPC contract.
quarshell-ui Browser console for OIDC login and Gateway workspace, sandbox, policy and provider management.
quarshell-deploy Helm chart and platform packaging assets for deployments.
sandbox.dev English and Russian user guides, architecture, compatibility and migration status, built with MkDocs.
quarshell-workspace Cross-module checkout, version pins, task orchestration, integration checks and migration plans. It does not contain the product module source.

How a request flows

flowchart LR
    cli["cautem CLI"] --> sdk["Go / Python clients"]
    ui["Browser UI"] --> api["Gateway API / OpenShell RPC"]
    sdk --> api
    api --> gw["Gateway orchestration and state"]
    gw --> spi["Compute SPI"]
    spi --> docker["Docker / Podman"]
    spi --> vm["MicroVM"]
    gw --> providers["Providers and credentials"]
    gw --> policy["Core policy and prover"]
    docker --> proxy["Egress proxy"]
    vm --> runtime["Guest runtime and supervisor"]
    proxy --> policy

The dependency direction is intentional: clients call the Gateway; Gateway maps protocol requests to domain contracts and registered backends; backends use their engine/runtime integrations. UI code does not import CLI internals, and Gateway does not import the CLI or browser UI.

Current implementation status

  • Docker and Podman are the primary container backends; Podman support depends on the host socket and feature set described in the provider guide.
  • Kubernetes is experimental and must be validated against a target cluster.
  • VM support is in active OpenShell parity work; consult the remaining-work register before relying on a specific lifecycle path.
  • MXC and telemetry are independent module boundaries with unported behavior.
  • Public Go module APIs are pre-stable and versioned v0.x.y.