Lemonade is a remote utility tool. (copy, paste and open browser) over TCP.
Lemonade is a remote utility tool designed to enable clipboard synchronization, file transfers, and browser operations over TCP. It allows users to copy text from one system and paste it on another, open URLs remotely in a browser, and transfer files between devices connected via a network.
Remote URL opening in the target machine's browser.
File transfer capabilities through command-line operations.
Configuration options for line endings, IP filtering, and host settings.
Secure setup with SSH port forwarding support for enhanced security.
Audience & Benefit:
Ideal for system administrators, developers, and IT professionals managing multiple devices or remote environments. Lemonade simplifies workflows by enabling seamless data transfer between systems, eliminating the need for manual copying or file-sharing tools.
Install Lemonade via winget to start enhancing your cross-device operations with this efficient remote utility tool.
For example, you use a Linux as a virtual machine on Windows host.
You connect to Linux by SSH client(e.g. PuTTY).
When you want to copy text of a file on Linux to Windows, what do you do?
One solution is doing cat file.txt and drag displayed text.
But this answer is NOT elegant! Because your hand leaves from the keyboard to use the mouse.
Another solution is using the Lemonade.
You input cat file.txt | lemonade copy. Then, lemonade copies text of the file to clipboard of the Windows!
In addition to the above, lemonade supports pasting and opening URL.
Usage
Usage: lemonade [options]... SUB_COMMAND [arg]
Sub Commands:
open [URL] Open URL by browser
copy [text] Copy text.
paste Paste text.
server Start lemonade server.
Options:
--port=2489 TCP port number
--line-ending Convert Line Ending(CR/CRLF)
--allow="0.0.0.0/0,::/0" Allow IP Range [Server only]
--host="localhost" Destination hostname [Client only]
--no-fallback-messages Do not show fallback messages [Client only]
--trans-loopback=true Translate loopback address [open subcommand only]
--trans-localfile=true Translate local file path [open subcommand only]
--help Show this message
On server (in the above, Windows)
$ lemonade server
Client (in the above, Linux)
# You want to copy a text
$ cat file.txt | lemonade copy
# You want to paste a text from the clipboard of Windows
$ lemonade paste
# You want to open an URL to a browser on Windows.
$ lemonade open 'http://google.com'
trans-loopback is a flag of translation loopback address.
trans-localfile is a flag of translation localfile.
Detail of trans-loopback and trans-localfile are described Advanced Usage.
Advanced Usage
trans-loopback
Default: true
This option works with open command only.
If this option is true, lemonade translates loopback address to address of client.
For example, you input lemonade open 'http://127.0.0.1:8000'.
If this option is false, server receives loopback address.
But this isn't expected.
Because, at server, loopback address is server itself.
If this option is true, server receives IP address of client.
So, server can open URL!
trans-localfile
Default: true
This option works with open command only.
If this option is true, lemonade translates path of local file to address of client.
For example, you input lemonade open ./file.txt.
If this option is false, server receives ./file.txt.
But this isn't expected.
Because, at server, ./file.txt doesn't exist.
If this option is true, server receives IP address of client. And client serve the local file.
So, server can open the local file!
line-ending
Default: "" (NONE)
This options works with copy and paste command only.
If this option is lf or crlf, lemonade converts the line ending of text to the specified.
Alias
You can use lemonade as a xdg-open, pbcopy and pbpaste.
For example.
$ ln -s /path/to/lemonade /usr/bin/xdg-open
$ xdg-open 'http://example.com' # Same as lemonade open 'http://example.com'
Secure TCP Connection
Lemonade doesn't provide encryption and authorization.
However we can use SSH Port forwarding for the purpose.
lemonade server
$ lemonade server -allow 127.0.0.1 &
$ ssh -R 2489:127.0.0.1:2489 user@host