Skip to content
| Marketplace
Sign in
Visual Studio Code>Machine Learning>WorkTranslatorNew to Visual Studio Code? Get it now.
WorkTranslator

WorkTranslator

WorkTranslator

|
1 install
| (0) | Free
Transform casual communications into professional, HR-appropriate messages while maintaining your authentic voice
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

WorkTranslator

Transform casual messages into polished, audience-appropriate professional communication — powered by your own writing style.

WorkTranslator is a VS Code extension that uses GitHub Copilot's language models to rewrite your informal drafts into clear, professional messages tailored for specific audiences (peers, leadership, team members). It learns your personal writing style from sample documents you provide, so every transformation sounds authentically you. The intent here is to use AI to protect your job for once.


Features

Feature Description
Audience-aware transforms Adapts tone, depth, and vocabulary for peers, leadership, or team
Style learning Analyzes your writing samples to replicate your voice
Formality control Slider from 1 (casual) to 10 (very formal) per transform
Auto-detect audience Infers the best audience from message content
Editor selection support Transform selected text directly in the editor
Side-by-side output View original and transformed text together
Copy / Replace / Regenerate One-click actions on transformed output

Privacy & Data Flow

WorkTranslator sends your draft message and excerpts from your writing samples to the GitHub Copilot language model API for transformation. No data is stored externally — all sample files remain on disk and all processing occurs within your VS Code session. If you enable debug logging, up to 50 characters of input/output may appear in the local output channel.


Getting Started

Prerequisites

  • VS Code ≥ 1.85.0
  • GitHub Copilot extension installed and activated (provides the language model API)

Quick Start

  1. Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P)
  2. Run WorkTranslator: Transform Message
  3. Paste your draft, choose an audience, adjust formality, and click Transform

Adding Writing Samples

For best results, provide examples of your professional writing so the extension can learn your style:

  1. Create a folder in your workspace (default: WritingSamples/)
  2. Add plain-text or markdown files — emails, Slack messages, documents
  3. Optionally include YAML frontmatter for richer metadata:
---
type: email
audience: leadership
context: status-update
date: 2024-01-15
description: Weekly security posture update
---

Your email content here...
  1. Run WorkTranslator: Reload Samples to pick up new files
  2. Run WorkTranslator: Generate Style Profile to rebuild your style profile

Commands

Command Description Default Keybinding
WorkTranslator: Transform Message Open the input panel with auto audience detection Ctrl+Alt+T
WorkTranslator: Transform for Peer Open the input panel pre-set for peers —
WorkTranslator: Transform for Leadership Open the input panel pre-set for leadership —
WorkTranslator: Transform for Team Open the input panel pre-set for team —
WorkTranslator: Transform Selection Transform selected text in the active editor —
WorkTranslator: Reload Samples Reload writing samples from disk —
WorkTranslator: Show Sample Stats Display statistics about loaded writing samples —
WorkTranslator: Generate Style Profile Analyze samples and build a style profile —
WorkTranslator: Show Style Profile Display the current style profile —
WorkTranslator: Show Logs Open the WorkTranslator output channel —

Settings

All settings live under the workTranslator.* namespace. Open Settings (Ctrl+,) and search for "WorkTranslator".

General

Setting Type Default Description
workTranslator.formality number 7 Default formality level (1 = casual, 10 = very formal). Can be adjusted per-transform in the input panel.
workTranslator.defaultAudience string "auto" Default audience type: auto, peer, leadership, or team.
workTranslator.preserveAbbreviations boolean true Keep technical abbreviations (AuthN/AuthZ, CSPM, OAuth, etc.) instead of expanding them.
workTranslator.enableAutoDetect boolean true Automatically detect audience from message content when audience is auto.

Samples & Style

Setting Type Default Description
workTranslator.samplesDirectory string "WritingSamples" Folder containing your writing samples, relative to the workspace root.

LLM / Model

Setting Type Default Description
workTranslator.maxTokens number 2000 Maximum tokens for the LLM response (100–8000). Higher values allow longer output.
workTranslator.temperature number 0.7 LLM creativity/randomness (0–2). Lower = more predictable; higher = more creative.
workTranslator.preferredModelFamily string "" Preferred model family (e.g. gpt-4o, claude-sonnet). Leave empty to use the best available model.

Debugging

Setting Type Default Description
workTranslator.enableLogging boolean false Enable detailed logging to the WorkTranslator output channel.

Architecture

WorkTranslator follows a clean modular architecture:

src/
├── extension.ts          # Lean orchestrator — init, wire, dispose
├── commands/             # Command handlers (one file per domain)
│   ├── index.ts          # Command registration
│   ├── serviceContainer.ts
│   ├── transformMessage.ts
│   ├── transformSelection.ts
│   ├── sampleCommands.ts
│   └── styleCommands.ts
├── core/                 # Business logic
│   ├── llmClient.ts      # VS Code Language Model API wrapper
│   ├── messageProcessor.ts  # Transformation orchestrator
│   ├── promptBuilder.ts  # Dynamic prompt construction
│   └── styleEngine.ts    # Style profile generation
├── data/                 # Data & configuration
│   ├── configManager.ts  # Settings access & validation
│   └── sampleManager.ts  # Writing sample loading & caching
├── types/
│   └── index.ts          # All TypeScript interfaces
├── ui/                   # Webview panels & status bar
│   ├── statusBar.ts
│   ├── inputPanel.ts
│   └── outputPanel.ts
└── utils/
    ├── logger.ts
    └── textAnalysis.ts

Tips for Best Results

  • Provide 4–8 writing samples across different audiences for accurate style learning.
  • Use YAML frontmatter in your samples — it improves audience matching and context selection.
  • Start with the default formality (7) and adjust after seeing a few transformations.
  • Keep drafts under ~500 words — shorter inputs produce tighter, more focused output.
  • Use specific audience commands (Transform for Leadership, etc.) instead of auto-detect when you know your audience.
  • Re-generate if the first result doesn't feel right — LLM output varies between runs.

Troubleshooting

Symptom Cause Fix
"No language models available" GitHub Copilot is not signed in or the extension is disabled Install and sign into the GitHub Copilot extension
Transform produces generic output No writing samples loaded, or style profile not generated Add samples to WritingSamples/, run Reload Samples, then Generate Style Profile
Samples not detected Samples directory setting doesn't match your folder name Check workTranslator.samplesDirectory in Settings
Extension commands not appearing Extension failed to activate Open Output → WorkTranslator for error details; verify npm run compile succeeds
Slow transformations Large maxTokens or complex input Reduce workTranslator.maxTokens (default 2000 is sufficient for most messages)
Output too creative / inconsistent High temperature Lower workTranslator.temperature to 0.3–0.5
Output too rigid / repetitive Low temperature Raise workTranslator.temperature to 0.8–1.0

Enabling Debug Logs

  1. Set workTranslator.enableLogging to true in Settings
  2. Run WorkTranslator: Show Logs to open the output channel
  3. Reproduce the issue — timestamps, prompts, and errors will appear in the log

Development

# Install dependencies
npm install

# Compile
npm run compile

# Watch (auto-rebuild on changes)
npm run watch

# Launch Extension Development Host
# Press F5 in VS Code

# Run tests (compiles first, then launches VS Code Extension Host)
npm test

Testing

The project includes 90 automated tests across four suites:

Suite Tests What's Covered
Type Definitions 7 Error classes, LogLevel enum
Text Analysis 42 All 15 text analysis functions
SampleManager 17 File loading, parsing, filtering, caching
ConfigManager 24 Settings access, defaults, clamping, singleton

Tests run inside a real VS Code Extension Host via @vscode/test-electron to ensure correct interaction with the VS Code API.


License

See LICENSE for details.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft