File Sharing - amitsri/rostyman-releases GitHub Wiki
File Sharing
Rostyman's File Sharing module lets you send files, folders, and chat messages directly to other devices on the same network — no cloud, no internet, no account required. Transfer speeds are limited only by your local network.
Getting Started
Open the File Sharing panel from the left sidebar. The panel has three main sections:
| Tab | What it shows |
|---|---|
| Devices | All discovered devices on your network |
| Groups | Device groups you have created |
| History | All past transfers (sent and received) |
Enable File Sharing
Toggle Enable File Sharing in the File Sharing settings (or from the top of the panel). When enabled, Rostyman starts its local transfer server and begins listening for other devices. The status bar at the bottom of the app shows a sharing icon while active.
Device Discovery (mDNS)
Rostyman uses mDNS (Bonjour) to automatically discover other Rostyman instances on the same Wi-Fi or wired network — no IP addresses needed.
- Turn Auto-Discovery on to broadcast your presence and discover others
- Turn it off to go hidden immediately — other devices see you go offline within seconds
- If mDNS is unavailable (blocked by your network), you can add a device manually by IP address
Each discovered device shows:
- Device name and OS
- Online / Offline status (green dot = last seen within 5 minutes)
- Rostyman version
Stable Device Identity
Rostyman identifies devices by a permanent hardware ID (BIOS UUID on Windows, IOPlatformUUID on macOS, machine-id on Linux) — not by IP address. This means contacts and block lists remain intact even when a device changes IP, reconnects to a different network, or reinstalls Rostyman.
Sending Files
Click Send Files (top-right of the panel or from the Sent Files tab of any device) to open the Send Files dialog:
- Add files or folders — click Add File, Add Folder, or drag and drop
- Select recipients — choose one or more devices from the list
- Optional: set a password — the recipient must enter it to decrypt the files
- Click Send
Progress appears in the panel in real time. The recipient sees an approval request before the transfer starts (see Incoming Transfers below).
Device Chat
Open any device and switch to the Messages tab to chat with that device. Messages are end-to-end via TLS over your local network.
Sending Messages
- Type in the input box at the bottom and press Enter to send
- Type
:shortcodes:like:thumbsup:or:rocket:— they convert to emoji automatically
Emoji Reactions
- Hover over any message to reveal the quick-reaction bar above it
- Click one of the 6 quick picks, or click ➕ to open the full picker (700+ emojis, 7 categories, searchable)
- Your reaction appears as a pill below the bubble — click it again to remove
- Reactions sync to the other device in real time
Message Delivery Status
Each sent message shows a small indicator:
- ⏳ Pending — other device is currently offline; will deliver automatically when they reconnect
- ✓ Sent — left your device
- ✓ Delivered — confirmed received
- ✗ Failed — could not be delivered after retries
Offline Message Queuing
If the other device is offline, your message is queued and delivered automatically when they come back online. Rostyman retries in the background for up to 24 hours.
File Attachments in Chat
Files sent alongside a message appear as an attachment card inside the bubble on both sides once the transfer completes. Click the card to open the file, or click the folder icon to reveal it in your file manager.
Incoming Transfers
When another device sends you files, an approval dialog appears:
- Shows the sender, file names, file sizes, and any attached message
- Click Accept to receive, Reject to decline, or Reject & Block Files to decline and block future transfers from that device
You can change the approval mode in Settings:
- Strict — always ask before receiving (default)
- Auto — accept transfers from all devices without asking
Groups
Groups let you view activity across multiple devices in one place.
Creating a Group
- Click New Group in the Groups tab
- Enter a name
- Select the devices to include
- Click Create Group
Group Tabs
| Tab | What it shows |
|---|---|
| Members | All devices in the group with live online/offline status |
| Messages | Merged read-only timeline of all messages with group member devices, with date separators (Today / Yesterday / date) and emoji reactions |
| Sent Files | All files you have sent to any device in the group |
| Received Files | All files received from devices in this group |
Note: Sending messages directly from the group tab (group broadcast messaging) is coming in a future release. The Messages tab is currently view-only.
Trust, Aliases, and Blocking
Right-click any device (or use the device menu) to:
| Action | What it does |
|---|---|
| Trusted / Not Trusted | Mark a device as trusted |
| Set Alias | Give the device a custom display name |
| Favorite | Pin the device to the top of the list |
| Block File Transfers | Reject all incoming file transfers from this device |
| Block Messages | Reject all incoming messages from this device |
Blocks apply by hardware ID — a blocked device cannot bypass it by changing IP addresses or reinstalling Rostyman.
Transfer History
The History tab shows all past transfers. Click any entry to see the files it contained. Use the Show in Folder button to open the received file's location in your file manager.
Settings
Open Settings → File Sharing to configure:
| Setting | Description |
|---|---|
| Enable File Sharing | Turn the sharing module on or off |
| Download Location | Where received files are saved (default: Downloads folder) |
| Approval Mode | Strict (always ask) or Auto (accept all) |
| Auto-Discovery | Broadcast your presence and find others automatically |
| Discovery Interval | How often to scan for nearby devices (5 s – 1 min) |
Logs
Each device tab has a Logs sub-tab showing a detailed log of all activity with that device — connections, transfers, messages, and errors. Logs can be filtered by level and category, exported to a file, or copied to the clipboard.
Quick Share (Right Panel)
Quick Share is a fast-access panel in the right sidebar for sending files and messages to trusted devices without opening the full File Sharing panel.
Opening Quick Share
Press Ctrl+J (or click the panel icon in the status bar) and select the Quick Share tab from the vertical strip on the right edge of the window.
How to Use
- Add files — drag and drop files onto the panel, or click Add Files to browse
- Select a device — search and pick from your trusted, non-blocked devices. A green dot shows which devices are currently online
- Optional message — attach a text message (supports
:shortcode:→ emoji conversion automatically) - Optional password — check Password protect to encrypt the transfer
- Click Send
Transfer Status
| Status | Meaning |
|---|---|
| Waiting for approval | Recipient has been notified |
| Sending (N%) | Transfer in progress |
| Delivered | Recipient received all files |
| Failed | Transfer could not complete |
File Inbox (Right Panel)
File Inbox shows all incoming file transfer requests. A badge on the tab shows how many pending approvals are waiting.
Opening File Inbox
Press Ctrl+J and select the File Inbox tab from the right panel strip.
Reviewing Requests
Each incoming transfer entry shows:
- Sender name and device
- File names (up to 3 listed, "+N more" for additional files)
- Total file count and size
- Any message attached by the sender
Actions
| Action | When | What it does |
|---|---|---|
| Accept | Pending | Begin receiving the files |
| Reject | Pending | Decline the transfer |
| Reject & Block | Pending | Decline and block all future transfers from that device |
| Dismiss ✕ | Completed / Timed out | Remove the entry |
Password-Protected Transfers
If the sender encrypted the transfer, a password field appears after you click Accept. Enter the passphrase the sender used to decrypt and receive the files.
Progress & Completion
A progress bar tracks the download. Once complete, a Show in Folder link opens the download location. Use Clear Completed to batch-dismiss all finished entries at once.