Skip to content

Governance: macOS Seatbelt process wrapper #803

Closed

Description

@currentbits

Follow-up to #262. The v1 slice (policy matrix, harness evaluator, HMAC audit, profile UI) does not confine unprompted CLIs.

Compile the declared matrix (write scopes, network) into a Seatbelt profile and wrap the local CLI child. Fail closed on path canonicalization. Audit every Seatbelt decision with decidingLayer=seatbelt, including matrix-allow / Seatbelt-deny disagreements. Keep electron/sandbox.js honest.

Linux seccomp is out of scope unless cheap. ssh remotes and WSL are not Seatbelt-wrapped.

Blocked on: #262 v1 landing a compile-able matrix schema.

Activity

  1. added and removed on Oct 16, 2026
  2. currentbits commented on Oct 16, 2026

    @currentbits
    OwnerAuthor

    PR #1656 is up, stacked on #1655 (#262 v1). On macOS, a local thread whose profile has write or network rules runs its CLI under sandbox-exec, for every provider:

    • Writes are confined to the worktree plus allow/ask paths, with deny/block paths carved out.
    • Network rules route egress through a loopback host-filtering proxy; outbound IP is denied otherwise.
    • Kernel and proxy denials are audited as layer: seatbelt, and matrix-allow / Seatbelt-deny disagreements are flagged.
    • Anything that can't be canonicalized refuses the run.

    Verified live with the real Claude CLI. The other CLIs haven't been run live under a profile yet.

  3. currentbits commented on Oct 16, 2026

    @currentbits
    OwnerAuthor

    Landed from Solenta thread "Governance: macOS Seatbelt process wrapper" (PR #1656). Closed on merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions