Deterministic bash command policy checks with a signed, command-bound execution permit.
ShellPermit tokenizes a candidate bash command — quoting, escaping, pipelines, command and process substitution, heredocs, redirections — walks the result, and reports whether it complies with the policy you supply: allowed roots, network egress, destructive operations, privilege escalation, command allow and deny lists. Every segment of a chain is evaluated and the verdict is the worst across them. Detection is structural, so bundled flags, $IFS, base64, unicode look-alikes and quoting games cannot hide a construct from it. On a compliant command it can issue a signed Ed25519 permit, valid for 60 seconds, bound to the sha256 of the canonical command — which collapses quoting and flag order but preserves every operand, so a permit for `rm -rf /tmp/build` can never authorise `rm -rf /`. What it cannot do: it never runs anything and never sees your filesystem, so it cannot resolve a symlink, cannot know which files exist, and cannot see your aliases, shell functions, or PATH. It is defence in depth alongside a sandbox and a least-privilege user, not a replacement for either.
| Route | What it does | Price |
|---|---|---|
POST /v1/guard/shell | Check a bash command against an execution policy and optionally issue a signed permit | $0.015 |
Send the request unpaid to see the live quote. You get HTTP 402 and a PAYMENT-REQUIRED header.
curl -i -sS -X POST https://shellpermit.schemasure.com/v1/guard/shell \
-H 'content-type: application/json' \
-d '{"shell":"bash","command":"rm -rf ./dist && npm run build","policy":{"allowed_roots":["/srv/app"],"cwd":"/srv/app","allow_destructive":true,"allow_network_egress":false},"audience":"executor:acme-prod-01","issue_permit":true}'
eip155:8453).Every response carries a verdict. When this service cannot determine an answer it returns
unknown with evidence explaining why. It never reports an undetermined result as a clean one.