RossetaRosseta is a Visual Studio Code extension for editing Markdown prompts, agents, and skills in the language you understand while keeping a canonical version in another language on disk. Open a Markdown file, select the Rosseta Stone icon, and work in the localized editor. When you save, Rosseta translates the complete Markdown blocks that changed and writes them back to the canonical file. Unchanged blocks are preserved. InstallationRosseta requires Visual Studio Code 1.95 or later.
Recommended first setup: Google GeminiGoogle Gemini is the recommended provider for getting started because the Gemini API offers a free tier with enough capacity for initial use in many cases. Available models, rate limits, regional availability, and pricing can change, so review the current Gemini API pricing before relying on it for regular or high-volume work. Create a Gemini API keyGoogle AI Studio is Google's console for creating and managing Gemini API keys.
Treat the API key like a password: never add it to a repository, Markdown file, screenshot, or shared settings file. Rosseta stores provider keys in Visual Studio Code Secret Storage rather than in workspace settings. If you restrict the key in Google Cloud, allow the Generative Language API (Gemini API); Google AI Studio only displays unrestricted keys or keys restricted to that API. Google currently states that content submitted through its free tier may be used to improve its products. Review the data-use column on the official pricing page and use a suitable paid plan or another provider when the documents require different handling. Using Rosseta
For example, changing one word in a paragraph causes the full paragraph to be translated again so that grammar and context remain coherent. Unchanged paragraphs are copied from the canonical document without another provider request. The control center is global and is not associated with the last Markdown file you opened. It reports whether each provider has a stored credential without revealing the credential itself, and it lets you replace or remove an old key. Providers and model fallbackRosseta supports the native APIs of:
OpenAI, Anthropic, and Gemini each have their own API key and model selection. The control center selects the primary model. To configure several models, run Rosseta: Select translation models from the Command Palette and select them in priority order. Rosseta tries the first model and moves to the next one if an attempt fails. Provider requests use HTTPS and the official OpenAI, Anthropic, or Google Gemini endpoints. A workspace cannot redirect Rosseta to a custom endpoint. Use GitHub Copilot instead of an API keyRosseta can use the Language Model API built into VS Code to access models supplied by GitHub Copilot:
Rosseta never receives or stores a GitHub token. VS Code and GitHub Copilot manage authentication, consent, model availability, and request execution. Copilot use remains subject to the limits and billing rules of the account's Copilot plan; using an existing subscription does not make model requests unlimited. Markdown preservationRosseta parses Markdown into blocks and compares the localized editor with the snapshot from which it was created. On save:
If a provider changes or removes protected structure, Rosseta cancels the save instead of risking corruption of the canonical file. Security and privacy
CommandsThe following commands are available from the Command Palette:
TroubleshootingThe Stone icon is not visibleMake sure the active editor is a file whose extension is exactly The control center opens instead of the localized editorRosseta needs a selected provider, a stored API key for OpenAI, Anthropic, or Gemini, and at least one selected model. GitHub Copilot does not require an API key in Rosseta, but it must be installed, signed in, available to the current account, and granted access when VS Code asks. Complete the highlighted configuration and save it. Rosseta also returns to the control center when a stored credential is rejected or the selected model is no longer available. Model refresh or translation failsRead the native notification first and use its suggested action, such as Replace API Key, Refresh Models, or Retry. For more information, select Show Details and inspect the Rosseta output channel. Common causes include an invalid or restricted key, exhausted quota, rate limits, network connectivity, unavailable models, and provider-side failures. The canonical file changed outside RossetaReopen the localized editor before continuing. Rosseta prevents a save when the source snapshot is stale so that external edits are not overwritten. CreditsThe editor action uses the Stone icon from Lucide, available under the ISC license. |