Practical Builds creates small, focused browser tools with privacy and restraint built into their design. This page explains how our extensions handle permissions, data, network access, and third-party code so users can make informed decisions before installing them.
Last reviewed:
Our approach
Practical Builds aims to keep each extension understandable and narrowly scoped. That means requesting permissions required for a feature, processing information locally when practical, and avoiding unnecessary accounts and backend services.
Our design goals are to avoid collecting browsing history, hidden telemetry, and executable code loaded from remote servers. Exact behavior varies by extension. Review the extension's store listing, privacy information, and product-specific documentation before installing it.
Permissions and reasons
Browser permissions describe capabilities Chrome can make available to an extension. They do not establish that every accessible item is read, stored, or transmitted. The reasons below are based on each reviewed manifest and implementation.
Host access controls where an extension may run. API permissions such as storage, tabs, or scripting control which browser features it may use.
Chrome storage, activeTab, tabs, scripting, webNavigation, and optional HTTP or HTTPS host access granted by the user per site.
Review Queue Sorter permissions reviewed from the current manifest and source
Permission
Why it is required
Can related extension data leave the device?
storage
Stores enabled sites, approved page paths, adapter choices, and sorting, highlighting, watch, and mute rules in Chrome local storage.
No
activeTab and tabs
Identifies the current page during setup and finds configured tabs where the sorter may need to run.
No
scripting
Injects the packaged sorter into a page after the user has enabled that site and exact page path.
No
webNavigation
Reapplies sorting after completed navigation or an in-page history change on an enabled page.
No
Optional HTTP and HTTPS site access
Lets the user grant access to a selected site's origin during setup instead of granting access to every site at installation.
No
“No” means the reviewed extension code does not transmit the related data. It does not describe network activity performed by the website open in the tab. ChatLean preferences use Chrome Sync and may be synchronized by Google when the user has browser sync enabled.
How does Bandwidth Lens handle data?
Extension-specific documentation and store disclosures take precedence over this general portfolio page.
Information inspected
Observes request and response metadata, including hostname, resource type, response Content-Length when available, and request-body size. It retains aggregates, not request-body contents.
Local storage and retention
Stores settings, open-tab URL/title/session totals, and daily hostname-level byte totals in chrome.storage.local. Daily usage older than 35 days is pruned.
Transmission
Observes website requests for measurement. Reviewed code contains no calls to Practical Builds servers or external analytics or API services.
Identity and accounts
Bandwidth Lens does not require an account, and the reviewed records are not associated with a Practical Builds account identity.
Do the extensions include analytics or telemetry?
No analytics or telemetry code was found in the reviewed Bandwidth Lens 1.0.2, ChatLean 1.0.0, or Review Queue Sorter 1.1.0 source. This statement applies to those reviewed versions and will be revisited when the extensions change.
Chrome Web Store aggregate listing statistics are produced by Google and are separate from analytics built into an extension. This marketing website uses hosted forms and security services. No ordinary website analytics script was found in the repository at the review date.
Do the extensions load remote code?
No. The reviewed versions package their executable code with each extension. No reviewed extension loads scripts from a CDN, calls an external application API, or uses eval, new Function, or dynamic remote script injection.
Bandwidth Lens and ChatLean have no third-party runtime libraries in their source. Review Queue Sorter uses build-time development packages, while its installed content script is bundled with the extension. A dependency is not automatically a security issue.
Independent Analysis
Extension Auditor
Bandwidth Lens
Estimates bandwidth used by websites and presents local per-tab and per-site reports.
Third-party analysis is provided for additional context and is not controlled by Practical Builds. Results may change as extensions and analysis methods are updated.
Extension transparency directory
Known Practical Builds extensions and the details currently available for each one.
Published
Bandwidth Lens
Estimates bandwidth used by websites and presents local per-tab and per-site reports.
Permissions
Chrome storage, tabs, webRequest, and host access for all HTTP and HTTPS sites.
Data processing
Observes request and response metadata, including hostname, resource type, response Content-Length when available, and request-body size. It retains aggregates, not request-body contents.
External network access
Observes website requests for measurement. Reviewed code contains no calls to Practical Builds servers or external analytics or API services.
Trims older rendered messages from long AI chat pages while keeping recent context visible.
Permissions
Chrome storage plus host access limited to listed ChatGPT, Claude, Gemini, Perplexity, and Poe domains.
Data processing
Reads the rendered conversation DOM to identify message elements, collapse older elements, and calculate local counts and memory estimates. Reviewed code does not persist message text or conversation content.
External network access
Runs only on the AI chat domains named in its manifest. Reviewed code contains no fetches, external API calls, analytics calls, or requests to Practical Builds servers.
Visually sorts code review and repository list pages using local rules for people, repositories, and keywords.
Permissions
Chrome storage, activeTab, tabs, scripting, webNavigation, and optional HTTP or HTTPS host access granted by the user per site.
Data processing
Reads visible text in repeated page rows to identify repository names, titles, authors, reviewers, and matching keywords, then reorders the existing DOM elements. It does not call repository-provider APIs.
External network access
Runs only after the user grants optional access to a site and enables an exact page path. Reviewed code contains no fetches, external API calls, analytics calls, or requests to Practical Builds servers.
If you believe you have found a security or privacy issue in a Practical Builds product, please contact us with a clear description, reproduction steps, and the affected extension version. Please avoid accessing or retaining data that does not belong to you.
We update this page when permissions or data handling materially change, a backend service is introduced, a new independent analysis becomes available, or another extension is released.