{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=rajkaria/extension-reach@0.1.0","method":"GET","rel":"https://rote.dev/rels/bootstrap-and-run","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"inspect":{"command":"rote play inspect https://play.modiqo.ai/rajkaria/extension-reach@0.1.0","effect":"read-only"},"installCliOnly":{"effect":"installs the rote CLI, nothing else","href":"https://play.modiqo.ai/install","method":"GET","rel":"https://rote.dev/rels/install-cli","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"run":{"command":"rote play run https://play.modiqo.ai/rajkaria/extension-reach@0.1.0","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/rajkaria/extension-reach@0.1.0 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"An extension's install page shows its permissions once, in a dialog nobody re-reads, and then never again. The browser keeps the answer on disk for ever. This reads it and answers the question the browser stops asking after install day: what can see your bank tab, and is anyone still shipping updates for it. Three families, read independently and with no browser running. Chromium-family browsers keep a manifest per extension and a settings entry per profile saying whether it is enabled, where it was installed from and which hosts you actually granted. Firefox-family browsers keep the same facts in their own store. Safari publishes rather less, and where it publishes nothing that is reported as nothing rather than filled in. Every profile is read separately, so a second Chrome profile is its own row. You get the count, the extensions that can read every page you open, the ones that pair blanket page access with a second power — reading what you type, rewriting requests, seeing every tab — the ones nobody has s","distribution":{"digest":"sha256:6b6fd1da87a75bb13f6c399f628ea3777e89402b81b5032b77a83a191fef237e","mediaType":"application/vnd.modiqo.rote-flow","size":1023271,"verifiedBy":"rote verifies the downloaded archive against this digest before it runs"},"effects":{"credentialsProvidedBy":"runner","credentialsRemainLocal":true,"declaredWrites":[],"publisherReceivesCredentials":false},"id":"https://play.modiqo.ai/rajkaria/extension-reach@0.1.0","inputPolicy":{"omittedValues":"inspect_full_parameters_before_collecting_values_or_consent","optionalWithDefault":"show_default_and_accept_override","optionalWithoutDefault":"omit_unless_supplied","required":"ask","secrets":"collect_locally_outside_conversation"},"links":{"docs":"https://rote.dev","page":"https://play.modiqo.ai/rajkaria/extension-reach@0.1.0","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/rajkaria/extension-reach@0.1.0.json"},"name":"extension-reach","owner":{"kind":"user","slug":"rajkaria"},"parameters":[{"default":"~/daily","description":"Created if missing. Everything this Play writes goes here and nowhere else.","example":"~/daily","input":{"allowCustom":true,"choices":[],"label":"Out dir"},"name":"out_dir","required":false,"type":"string"},{"default":"false","description":"true runs the whole Play against bundled synthetic extension stores for five browsers, so a first run needs nothing installed and no account.","example":"false","input":{"allowCustom":true,"choices":[],"label":"Demo"},"name":"demo","required":false,"type":"string"},{"default":"","description":"Comma separated. Leave empty to use the standard locations for every Chromium-family and Firefox-family browser this machine has.","example":"~/Library/Application Support/Google/Chrome","input":{"allowCustom":true,"choices":[],"label":"Roots"},"name":"roots","required":false,"type":"string"},{"default":"","description":"Comma separated path prefixes for Safari's extension stores. Leave empty for the standard locations.","example":"~/Library/Containers","input":{"allowCustom":true,"choices":[],"label":"Safari roots"},"name":"safari_roots","required":false,"type":"string"},{"default":365,"description":"An extension whose files have not changed in this many days is reported as stale: nobody has shipped it a fix, and it can still read every page you open.","example":365,"input":{"allowCustom":true,"choices":[],"label":"Stale days"},"name":"stale_days","required":false,"type":"integer"},{"default":90,"description":"An installed extension you have not used in this many days is reported as idle, which is the cheapest permission to take back.","example":90,"input":{"allowCustom":true,"choices":[],"label":"Idle days"},"name":"idle_days","required":false,"type":"integer"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/rajkaria/extension-reach@0.1.0 --json","effect":"read-only"},"step":1,"type":"inspect_local_readiness"},{"references":["/parameters"],"step":2,"type":"collect_parameters","whenValuesOmitted":"Run step 1 before collecting inputs or showing defaults; omittedFields are unknown values, not absent defaults or exhaustive choices."},{"references":["/parameters","/requirements","/effects"],"step":3,"type":"review"},{"consentBoundary":"the user approves the exact play and parameter values","references":["/parameters","/requirements","/effects"],"step":4,"type":"obtain_run_consent"},{"action":{"command":"rote play run https://play.modiqo.ai/rajkaria/extension-reach@0.1.0","headlessCommandTemplate":"rote play run https://play.modiqo.ai/rajkaria/extension-reach@0.1.0 <name=value...> --yes"},"preservesAcquisitionBoundaries":["adapter_selection","oauth_dcr","google_discovery","static_token_setup","runtime_security_checks"],"requiresConsent":true,"step":5,"type":"run"}],"producedBy":{"roteVersion":"0.79.0"},"publishedAt":"2026-09-05T20:40:26.654632+00:00","reference":"rajkaria/extension-reach@0.1.0","requested":"rajkaria/extension-reach","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"hostToolRequirements":[{"command":"python3","required":true,"versionRequirement":null}],"localTools":["python3"],"roteCli":{"minimumVersion":"0.91.0"},"sessions":false},"resolution":"latest","schema":"rote.play.v1","stats":{"downloads":2,"installs":0},"steps":{"count":4,"names":["read_chromium","read_firefox","read_safari","report"]},"title":"extension-reach","type":"play","version":"0.1.0","visibility":"public"}