RuleSpoolfor OpenCode 2
PERMISSION RULE EXPLORER

OpenCode 2 permission explorer

Pick a request. Move a rule. Follow the matches to see why the last one wins.

Source snapshot775d1d0 · 15 Oct 2026 ↗No commands are executed.
REQUESTS ON THE SPOOL

Choose a case

SYNTHETIC EXAMPLE

enters the supplied rules

01 Agent rules

Earlier → later. The last match takes over.

    02 Session rules

    Appended after the agent rules.

      ↓

      03 Saved approvals

      Allow-only. Skipped if any configured result denies.

        THIS REQUEST · SUPPLIED LAYERS—

        ACTUAL RUNTIMENot testedPolicies, hooks & missing layers ↗

        Preparing the example…

        KEEP PULLING THE THREADWhy a specific rule can lose ↗Why “always” is not the last word ↗

        Edit rule

        Edits stay in this browser review. They are never applied to OpenCode.

        Request case

        Use the runtime's actual resource strings. This tool does not parse shell scripts, expand home paths or resolve symlinks.

        Bring a snapshot.

        JSON stays in browser memory. Choose a native ordered Rule[], a resolved debug agents export, or a RuleSpool scenario/review.

        Raw configuration roots are not resolved runtime state. Do not paste API keys or full provider configuration. Input examples ↗

        What does the snapshot include?

        The supplied agent array is evaluated as provided, without adding hidden defaults. This does not certify that it includes every effective agent rule.

        Unchecking a layer removes its draft rules and marks it unknown. Actual policy and plugin evaluation remain untested in every case.

        Follow every match

        The change review

        Same requests and platform, original rules versus your draft. Results describe supplied layers only.

        Exact ordered rules before and after

        The ZIP contains both snapshots, cases, observations, engine, license and a Node replay. It can include sensitive paths or command arguments. Nothing is uploaded.