GUI for “Translate Shell”



Yes, it seems to stop at line breaks.

I noticed that Linguee (DeepL) is now offering a “DeepL Pro” (€20/month). In the comparison table it says that the API access is only available to DeepL Pro users. So I’m wondering why it is working at all…

Unless Translate Shell is circumventing the “regular” API, which then could explain the issues like limitation to one paragraph. Just thoughts.


Thank you. If I go to the free Web-Translator at DeepL you get some more words and paragraphs. I hoped, it would be the same.


Yes, when pasting a multi-paragraph text into the webform it works (up to the limit of 5000 chars). So, maybe a bug with Translate Shell? (I didn’t find anything related in the Issues on GitHub.)


I just opened a ticket for that.


Good point about Deepl free vs pro.
I think that deepl is overpriced, and hopefully the prices will drop. I use it when straightforward alternatives don't give the answer, in which case I use the Translate Shell which you so kindly helped me to implement.
My first step is to try the translate actions of Popclip.
For short texts like sentences, the 'translate' action is superb: very fast; translation appears under the cursor and disappears when the cursor moves.
For longer texts like paragraphs, the 'translate tab' action is very nice.


@Tom @rho
Sometimes I wonder if knowing less about programming (speaking of myself) can paradoxically be an advantage.
Take the translate shell: there are all kinds of prerequisites (install honeydew, bash etc), it requires programming by very talented people and the end product has limitations as discussed above.
I tried an extremely simple alternative and it works very nicely (at least go up to 5,000 words).

  • Use Fluid to create a floating window Deepl app
  • create an extremely simple macro copy text → open deepl app → clear window (Cmd-A → del) → paste text

That being said, I am still greatly appreciative of Tom's help.


I read the ticket and understand: The case is complicated!
(Ich las das Ticket und verstehe: Der Fall ist kompliziert!)


Yes, it seems so. I don’t understand it.

Can you reproduce the issue with the sample text I provided in the ticket?


I suspect this is currently the fastest (working) option for DeepL.


Yes, I tried and it is exactly the same in all three cases.


@rho, @ronald

Only made a handful of tests, but it seems the issues with the missing lines/paragraphs have been solved by the author:

If you have installed Translate Shell via Homebrew HEAD, then you might want to manually update it to the latest commit:

brew reinstall --HEAD translate-shell


It works perfectly now with the reinstall. Fantastic and thank you very much.
May I ask you what line of command I should add at the end to copy the translation to the clipboard?
If you have an iPhone, do you use anything similar which provides a translation (google translate or deepl) in any app or browser?


Not to me; say thanks to the author of Translate Shell.

In the macro, you mean?

Just change the output of the first Shell Script action (the one below the comment “Engine 1 (main)”) from “display in window” to “save to clipboard”:

So, change this:


to this:


Do not change the other two Shell Script actions, which are for the results of the alternate engines (if activated). Otherwise they would overwrite the main result on the clipboard.

But keep in mind, if you send the output from the main engine directly to the clipboard you can no longer compare it to the results of the other engines. (You could however send it to the clipboard as shown, and then display the clipboard in a window.)

After all, getting simultaneously the results from different engines is one of the main features of the macro :wink:

The Linguee app is quite useful. (But it’s the same as the web page.)
Otherwise on the phone I use mostly dictionaries. (I do not work with texts on the iPhone.)


thanks very much for everything, including this last solution


Thank you, now it works for me too.


Update Note

In case you are wondering why the DeepL engine stopped working:

Quoting the developer of Translate Shell (the script the macro is built around) on Github:

Support for DeepL will be abandoned in the next release.

DeepL is using all kinds of inscrutable conventions to prevent HTTP simulations: Such as requiring a redundant whitespace in the request string "method": "LMT_split_into_sentences" ; together with some mysterious server-side timestamp and id verification. Upon receiving an invalid request, it might just block your IP for ages, which makes it very high-maintenance to hack.

It might be possible to find a way, but it won't worth my time; anyway, they might be already watching this repo (which is open-source) for countermeasures, so our asses are broken too easily.

On next occasion I will update the macro and remove all DeepL-related stuff. In its current form it still works fine with the other engines (Bing, Google, etc.).
▸ You can choose the engine by holding down ⌘ while selecting the macro from the palette.

It’s a pity, because DeepL is a very good engine.