The modern developer's workflow is a constant battle against context switching. Imagine reading a dense technical specification or a complex GitHub issue written in a foreign language. The ritual is always the same: highlight a confusing paragraph, copy it, open a new tab, paste it into an AI translator, read the result, and then navigate back to the original page. Even the built-in full-page translation tools offered by browsers often fail here, frequently distorting technical nuances or stripping away the precise context required to understand a specific line of code. This friction is not just a minor inconvenience; it is a cognitive tax that breaks the flow of deep work and slows down the acquisition of information.
The Architecture of Local-First Translation
To solve this friction, the open-source project Hover Trans Port introduces a method of bringing the power of the terminal directly into the browser interface. Rather than acting as a standalone translation service, Hover Trans Port functions as a bridge between the Chrome browser and the AI command-line interfaces (CLIs) that developers already have configured on their machines. Specifically, it integrates with tools like Codex CLI, an OpenAI-based utility for text and code processing, and Claude CLI, the interface for Anthropic's AI models. For a developer who is already authenticated into these tools via their terminal, the extension removes the need for any additional setup or account management.
Technically, the system relies on Chrome's Native Messaging API. This is a specialized communication protocol that allows a browser extension to exchange messages with a native application installed on the user's operating system. In the case of Hover Trans Port, the Chrome extension does not send requests directly to an AI server. Instead, it sends a message to a local helper application. This helper then executes the corresponding CLI command on the system, captures the output from the AI model, and sends it back to the browser. The result is displayed as an inline translation immediately adjacent to the original text, triggered either by hovering over a paragraph or using a specific keyboard shortcut.
To optimize performance and reduce redundant API calls, the tool incorporates a local SQLite database. This lightweight, file-based relational database acts as a translation cache. When a user requests a translation for a specific string of text, the system first checks the SQLite cache. If the translation exists, it is served instantly; if not, the system triggers the CLI and stores the new result for future use. This architecture significantly lowers latency and reduces the cost associated with token usage. Currently, the project is available as an unpacked extension for Chrome on macOS, requiring the installation of a macOS native host installer to enable the communication between the browser and the local helper. The full source code and installation guides are hosted on GitHub.
Shifting the Trust Boundary from Browser to OS
While the convenience of inline translation is the immediate draw, the true innovation of Hover Trans Port lies in its approach to security and authentication. The standard model for AI browser extensions is the API key input field. Users are asked to visit a provider's dashboard, generate a secret key, and paste it into the extension's settings. From a security perspective, this is a precarious arrangement. Browser extensions are frequent targets for vulnerabilities, and storing sensitive API keys—even if encrypted—within the browser's local storage creates an unnecessary attack surface. For many power users, the idea of handing over a high-limit API key to a third-party extension is a non-starter.
Hover Trans Port fundamentally alters this trust boundary by removing the extension's access to credentials entirely. The extension does not store API keys, OAuth tokens, browser cookies, or session tokens. It has no logic for handling authentication because it does not perform the authentication. By delegating the actual AI request to the local CLI, the extension leverages the security model of the operating system. The authentication happens at the OS level, where the developer has already configured their environment variables or config files for Codex CLI or Claude CLI. The browser merely acts as a user interface, sending a request to a local process that already possesses the necessary permissions.
This shift transforms the extension from a client into a proxy. In a traditional cloud-centric model, the browser is the primary actor communicating with a remote server. In the Hover Trans Port model, the local machine is the primary actor, and the browser is simply a window through which the user interacts with their own local tools. This eliminates the need to manage multiple subscriptions or API keys across different browser plugins. If a user updates their AI model or changes their API tier in their terminal, the browser extension automatically reflects those changes without requiring a single update to its settings. It is a decentralized approach to authentication that prioritizes local control over cloud convenience.
This design philosophy resonates with the growing local-first movement in software development. By treating the browser as a sandbox that should not hold sensitive secrets, Hover Trans Port provides a blueprint for how other local AI tools can be integrated into the web experience. It proves that the most secure way to use a cloud service in a browser is to not let the browser talk to the cloud at all, but rather to let it talk to a trusted local agent.
As the ecosystem of local LLMs and CLI-based AI tools expands, the ability to bridge these tools with the web becomes increasingly valuable. While Hover Trans Port is currently limited to macOS and requires a manual installation process, it represents a shift toward a more integrated AI workflow. The transition from a fragmented experience—where the terminal and the browser are two separate worlds—to a unified environment where local power is accessible via a hover action is a significant step forward for developer productivity. By solving the problem of context switching and the anxiety of API key management, the project turns the browser into a seamless extension of the developer's local environment.
This convergence of local system resources and web interfaces suggests a future where the browser is no longer a siloed application, but a flexible UI layer for the powerful tools residing on the user's hardware.




