Privacy Policy

Tethernet — Chrome Extension — Last updated: July 2026

Short version: Tethernet connects your browser to a server running on your own computer. It does not collect, store, or transmit your data to any external server, company, or third party. Everything stays on your machine.

1. Who We Are

Tethernet is a developer tool published by ByteClub. Contact: mike@byteclub.com

2. What This Extension Does

Tethernet creates a local WebSocket connection between your Chrome browser and a server process running on your own machine (localhost). This allows a locally-running AI assistant (such as Claude Code) to read page content, take screenshots, inspect network traffic, and interact with web pages at your direction.

This is a developer tool. It requires manual setup, a locally-running server process, and an explicit consent step before any capability is active. It does nothing on its own.

3. Data Accessed and Where It Goes

Data typeWhen accessedWhere it goes
Page content, DOM structure, textOnly when a developer session is active and a command is issuedYour local machine only (ws://localhost)
ScreenshotsOnly when explicitly requestedYour local machine only
Network request metadata (URLs, headers, status codes, timing)Only during active capture sessions or when passive mode is enabledStored in-memory in the extension; accessible only to your local session
HTTP response bodiesOnly during active debugger-attached capture sessionsYour local machine only
Non-HttpOnly cookiesOnly when explicitly requestedYour local machine only
JavaScript execution resultsOnly when a script is sent from your local sessionReturned to your local machine only
Passive mode network logWhen passive mode is enabled by the userStored in-memory in the extension (ring buffer, max 500 entries); never transmitted externally

4. Data We Do NOT Collect

5. Permissions and Why They Are Required

PermissionWhy it is required
tabsList open tabs, switch between them, and identify the active tab for commands.
storagePersist user consent state and the local server port between browser sessions.
webNavigationEnumerate iframes within a page so developers can inspect them.
webRequestCapture HTTP request metadata (URL, method, headers, status, timing) during developer debugging sessions and passive mode. Listeners are installed but idle — no processing occurs when capture is not active.
cookiesRead and set non-HttpOnly cookies to help debug authentication and session state — equivalent to the DevTools Application panel. HttpOnly cookies remain inaccessible per Chrome's design.
scriptingExecute JavaScript in pages at the developer's direction — equivalent to the DevTools console. Code originates exclusively from the user's local process, never from a remote server.
offscreenMaintain a persistent WebSocket connection. Chrome MV3 service workers are killed after ~30 seconds of inactivity; the offscreen document keeps the connection to localhost alive.
debuggerCapture HTTP response bodies during active capture sessions — the same data visible in the DevTools Network panel. Without this API, response payloads are inaccessible to extensions. The debugger attaches only to the active tab, only while a capture session is explicitly running, and detaches immediately when the session ends. Chrome shows an "automated software" info bar on the recorded tab during this time.
windowsFocus the correct browser window before taking a screenshot when multiple windows are open.
downloadsMonitor download completion events to report filename, size, and MIME type after the user initiates a download. No files are downloaded or modified autonomously.
<all_urls>Content scripts must be injectable on any page because developers work across many different sites. Nothing happens on any page unless the user has connected and issued a command. Chrome automatically blocks injection on chrome://, chromewebstore.google.com, and other sensitive pages.

6. Consent and Control

On first install, an onboarding page opens explaining every capability and its risks — including prompt injection — before any functionality is enabled. The user must check a consent checkbox before the extension activates. Consent can be revoked at any time from the extension popup, which immediately disconnects the session and disables all capabilities.

7. Security Architecture

The WebSocket connection is always ws://localhost:PORT — it never connects to any remote server. The port is entered manually by the user and changes each session. All data exchanged stays on the user's own machine. The extension has no hardcoded remote endpoints.

8. Children's Privacy

Tethernet is a developer tool not intended for users under 13. We do not knowingly collect any information from children.

9. Changes to This Policy

Material changes will be reflected in the "Last updated" date above.

10. Contact

mike@byteclub.com