Crates.io | jocalsend |
lib.rs | jocalsend |
version | 1.6.180339 |
created_at | 2025-08-10 20:47:19.662534+00 |
updated_at | 2025-08-22 19:28:56.54375+00 |
description | A TUI for LocalSend |
homepage | |
repository | https://git.kittencollective.com/nebkor/joecalsend |
max_upload_size | |
id | 1789284 |
size | 861,111 |
LocalSend is, in its words, "a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection." It comes in the form a Flutter/Dart cross-platform GUI application that runs on both mobile and desktop devices. Using it on mobile is very nice, but the desktop experience is a bit lacking in zazz.
JocalSend is an implementation of the LocalSend protocol that uses Ratatui to provide an interactive terminal-based application, and is compatible with the official app.
Install with cargo install jocalsend
(requires Rust); tested on Linux, it
will probably work on Macs but if you're on a Mac, you probably have AirDrop. It's also available in
nixpkgs, and so if you're a NixOS user, nix-shell -p jocalsend
will do what you expect.
As with the official app, JocalSend can be used to send and receive files and text from other LocalSend instances on your local subnetwork. Most of the modes have the following keybindings available:
M
-> go back to the main screenS
-> go to the sending screen, defaulting to sending filesR
-> go to the receiving screen to approve or deny incoming transfersL
-> go to the logging screen where you can adjust the log levelC
-> clear the list of local peers and re-discover themH
or ?
-> go to help screenESC
-> go back to the previous screenQ
-> exit the applicationWhen in the sending screen, the following are available
TAB
-> switch between content selection and peer selectionT
-> enter text directly to send, ESC
to cancel/
-> fuzzy filename search, use ESC
to stop inputting textWhen in the receiving screen, use A
to approve the incoming transfer request, or D
to deny it.
Finally, it will also accept commandline arguments to pre-select a file or pre-populate text to send:
$ jocalsend -h
A terminal implementation of the LocalSend protocol
Usage: jocalsend [OPTIONS]
Options:
-f, --file <FILE> File to pre-select for sending
-t, --text <TEXT> Text string to send
-h, --help Print help
-V, --version Print version
JocalSend has a file-picking widget for selecting files to send:
but there's no preview available on the receiving side:
JocalSend supports entering text directly:
and on the receiving side in the official app, you see
The main screen shows incoming transfer requests:
hit r
to enter the "receiving" screen to approve or deny:
If the incoming transfer request is plain text, JocalSend will show a preview in both the main screen and in the receiving screen: