The system-wide toolbox for translators.
Part of the Supervertaler family, alongside Supervertaler for Trados and Supervertaler for memoQ. Those work inside your CAT tool; Sidekick works everywhere else.
Select text anywhere in Windows — in a CAT tool, a browser, a PDF, an email —
press `, and act on it: look it up across a dozen terminology sources,
run an AI prompt over it, convert its case, wrap it in quotes, or paste a
snippet in its place.
Built in AutoHotkey v2. No dependencies, no runtime, no install step.
| 🪟 One window | ` opens the clipboard and the menu side by side. Arrows cross between them, folders open and close, Alt+1–9 jumps straight to a section, Ctrl+↑/↓ steps between them, and typing filters both panes at once. |
| ⌘ The palette | Ctrl+Alt+Space. One search box over everything — clipboard history, snippets, searches, AI prompts, bookmarks and conversions at once. Type a few letters, press Enter. The menu is still there for browsing. |
| 🌐 QuickTrans | Ctrl+Alt+T. A tab in the same window: translate the selection with several engines at once. Machine translation from MyMemory, Google, Microsoft, ModernMT and DeepL; LLMs from Claude, OpenAI, Gemini, Mistral, DeepSeek, OpenRouter, a local Ollama, or any OpenAI-compatible endpoint you point it at. Press 1–9 to insert one. The menu stays beside it, so you can translate, insert, then run a menu action without leaving. MyMemory needs no API key, so it works before anything is configured; keys and models for the rest are set in Settings → AI providers & keys, which asks each provider which models your key can actually use. |
| 📝 Scratchpad | Ctrl+Alt+N. A third tab in the same window, and a key that lands in it with the caret already at the end of the note, so a thought can be typed the moment it arrives. Plain text, no fields to fill in first, and it saves itself a moment after you stop typing – and again when the window closes. It lives in data\scratchpad.txt, so Notepad, grep and your backups can all read it. |
| 🎚️ Opens where you want it | The plain ` shortcut opens on whichever tab suits you – Clipboard, QuickTrans, Scratchpad, or whichever one you were last on. The Opens on: box sits on the tab strip beside the tabs, not in a settings dialog. Ctrl+Alt+T and Ctrl+Alt+N still go straight to their own tab whatever it says. |
| 🔎 Text size | Ctrl+= and Ctrl+- inside the window, Ctrl+0 back to normal. It grows the text you actually read and write – the note, the QuickTrans source box, the translations – and leaves the clipboard list, the menu tree and the labels the size they are. Remembered between sessions, so the laptop screen and the big monitor each get what suits them. |
| 🔍 Web searches | Select a term, pick a source. IATE, Juremy, JurLex, Van Dale, Linguee, ProZ, Reverso, BabelNet, Wikipedia, Wiktionary, Google Patents and more. Every source follows the language pair you set, so one IATE entry serves every direction. MultiSearch fires a whole batch at once, each in its own tab of a fresh browser window. A language pack is everything for one pair in one click – Dutch ⇄ English ships – and only the pack for the pair you are in is shown. |
| 🤖 AI actions | Run any prompt over the selection: translate, proofread, rephrase, summarise, expand, localise. Provider-agnostic — Claude by default, OpenAI if you prefer — and non-blocking, so the rest of Sidekick keeps working while a request is in flight. |
| 📋 Snippet library | Boilerplate, standard replies, special characters, regex patterns, dictionary citations — inserted at the cursor. |
| 🔤 Text conversions | Upper / lower / title / sentence case, curly quotes, brackets, HTML bold, soft-hyphen removal, straight-to-curly quote conversion. |
| 🔖 Bookmarks | Online and local. Forums, docs, reference sites, folders you keep reopening. |
| 📎 Clipboard manager | Searchable history that survives restarts, pasted straight back into the window you came from. Entries you've already used are ticked and greyed, so you can work down a list of terms without losing your place. Ctrl+Alt+C |
| ⌨️ Keyboard shortcuts | Every built-in key can be changed, given a second key, or limited to one program, and you can attach a key to anything the menu does. A key can also be a quick double tap of Ctrl, Shift or Alt – tap Ctrl twice in memoQ or Trados to confirm a segment, say. All from Keyboard shortcuts…, no editing of ini files. |
Everything is reachable in two keystrokes: ` then an accelerator letter.
- Install AutoHotkey v2 (v2.0 or later — not v1).
- Clone this repository.
- Run
Sidekick.ahk.
On first run, Sidekick copies the starter menu from data.example/ into
data/ and opens with a working set of searches and conversions. From there
you make it yours.
Sidekick requests administrator rights on launch. This is deliberate: without them, its hotkeys are ignored by any window that is itself elevated.
Copy settings.example.ini to settings.ini and add a key:
[AI]
Provider=anthropic ; or: openai
Model= ; blank = the provider's default
Effort=medium ; low | medium | high | xhigh | max (Anthropic only)
[Keys]
anthropic=sk-ant-...settings.ini is gitignored. Switching vendor is one line — the request and
response shapes for each live in lib/ai.ahk, so adding a third provider means
one entry in AI_Providers(), not a rewrite.
Nothing personal lives in the script. The menu is built at run time from
data/menu.json. That file is gitignored, so your snippets, bookmarks,
credentials and client boilerplate stay on your machine — you can fork, share
or publish the code without scrubbing anything first.
To change what's on the menu, open Edit library… (the second item). Add, edit, delete and reorder entries; hit Save & rebuild and the menu updates without restarting.
Each menu entry has a type that decides what it does with your selection:
| Type | What it does |
|---|---|
text |
Types out literal text |
keys |
Sends a key combination, e.g. ^+* |
url |
Opens a web address |
run |
Launches a file or folder |
search |
Copies the selection and opens a URL, with {q} replaced by it and {sl}/{tl} by the language pair |
multisearch |
The same for several URLs, one per line, all opened at once in a new browser window |
ai |
Runs an AI prompt over the selection |
action |
Calls a built-in function |
submenu |
Holds other entries |
heading / separator |
Structure only |
Adding a new terminology source is one search entry:
{
"kind": "search",
"label": "IATE",
"url": "https://iate.europa.eu/search/byUrl?term={q}&sl={sl}&tl={tl}"
}The selection is UTF-8 percent-encoded before substitution, so terms containing
&, ?, + or accented characters work correctly. {sl} and {tl} are the
language pair — set in the QuickTrans tab, in Settings → Language pair…, or
with Swap languages — as two-letter codes; {sl_full} gives the name
(dutch), {sl3} the ISO 639-2/T code (nld), {sl3b} the bibliographic one
(dut), {sl_upper} the capitals. A site with no code in its URL, such as
Van Dale's dictionary ids, takes a by_pair map of "nl-en": url instead.
An AI action is just as short — and every prompt is editable in the same place as your snippets:
{
"kind": "ai",
"label": "Translate (Dutch to English)",
"prompt": "Give ten possible translations, technical to general.",
"effort": "high"
}Optional per-entry overrides: system, model, provider, effort,
maxtokens.
Sidekick.ahk hotkeys, text conversions, local searches
lib/
mainwindow.ahk the backtick window (clipboard + menu)
quicktrans.ahk multi-engine translation of the selection
palette.ahk the search-everything window
menu_builder.ahk builds the menu from data
ai.ahk provider-agnostic AI requests
clipboard.ahk clipboard history
editor.ahk the Library Editor
data.ahk reads and writes the JSON
jxon.ahk JSON parser (third-party)
data/ your content — gitignored
data.example/ generic starter set, shipped
settings.ini API keys — gitignored
- Image clips — the clipboard history is text-only. AutoHotkey has no practical way to thumbnail and persist bitmaps; the on-disk format leaves room for them.
- Streaming AI replies — show the answer as it arrives rather than after the full response lands.
The AI request handling began life in
ChatGPT-AutoHotkey-Utility
by kdalanon, and has since been rewritten as the provider-agnostic layer in
lib/ai.ahk.
JSON parsing uses cJson/Jxon.
By Michael Beijer, Dutch→English patent and technical translator. Related work: Supervertaler · SuperLookup · WordCounter