extensions icon indicating copy to clipboard operation
extensions copied to clipboard

New Extension: LocalSend

Open kud opened this issue 2 weeks ago • 3 comments

New Extension: LocalSend

Description

A comprehensive Raycast extension for LocalSend, enabling seamless file sharing between devices on your local network without needing an internet connection.

CleanShot 2025-12-12 at 23 19 12@2x

What is LocalSend?

LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network. This extension brings full LocalSend functionality to Raycast with additional features.

Features

📤 Send Files & Content

  • Send Files - Select and send any files to discovered devices
  • Send Media - Quick access to send images and videos
  • Send Text - Share text content instantly
  • Send Clipboard - One-click clipboard sharing
  • Send Folder - Share entire folders with a single command

📥 Receive Files

  • Auto-receive - Server starts automatically when you open the Receive view
  • Pending Transfers - Review and accept/reject incoming transfers when Quick Save is off
  • Smart Notifications - See pending transfers in real-time
  • Organized Storage - All files saved to your configured download folder
  • File History - View received files by category (Images, Videos, Documents, Code, Audio, Archives)

🔍 Device Discovery

  • Multicast Discovery - Automatically find LocalSend devices on your network
  • Favorite Devices - Star frequently used devices for quick access
  • Device Details - See device type, model, IP, and connection status
  • Protocol Compliance - Full LocalSend Protocol v2.1 support

📊 Menu Bar Control

  • Quick Save Settings - Toggle between Off, Favorites, or Auto-accept modes
  • Device Information - View your device details and local IPs
  • Quick Actions - Fast access to all send commands
  • Status Indicator - Custom LocalSend icon in your menu bar

🎯 Smart Transfer Management

Pending Transfer System (when Quick Save is Off):

  • Incoming transfers appear in real-time in the Receive view
  • Accept (✓) or Reject (✗) with interactive UI
  • Sender sees "waiting for response" status (matches official apps)
  • HTTP connection stays open until user decision
  • Protocol-compliant implementation

Quick Save Modes:

  • Off - Manual approval for every transfer (most secure)
  • Favorites - Auto-accept from starred devices only
  • On - Auto-accept from everyone (fastest workflow)

Technical Highlights

Modern Codebase

  • 100% Arrow Functions - All React components and utilities
  • TypeScript Strict - Proper interfaces, no any types
  • Async/Await - Modern promise handling throughout
  • Zero Lint Errors - Clean ESLint and Prettier compliance
  • Modern ES6+ - Template literals, destructuring, optional chaining

Protocol Implementation

  • LocalSend Protocol v2.1 - Full compliance
  • HTTP/HTTPS Support - Secure transfers (experimental)
  • Multicast Discovery - UDP broadcast for device discovery
  • Session Management - Proper file transfer sessions
  • Cancellation API - Cancel transfers mid-flight

Smart Features

  • Auto-start/stop - Receive server lifecycle management
  • Favorite Devices - Persistent favorites with LocalStorage
  • Recent Devices - Remember last-used devices
  • Port Flexibility - Default port 53318 (app uses 53317)
  • Concurrent Operation - Run alongside official LocalSend app

How to Use

First Time Setup

  1. Install the extension from Raycast Store
  2. Configure your device name (optional, defaults to computer name)
  3. Set download folder (optional, defaults to ~/Downloads)

Sending Files

  1. Open Raycast and type "Send Files"
  2. Select files to send (supports multiple selection)
  3. Choose the destination device from the list
  4. Confirm and send!

Receiving Files

Automatic Mode (Recommended):

  • Open the "Receive" command
  • Server starts automatically
  • Files appear in the list as they're received

Manual Approval Mode:

  • Set Quick Save to "Off" in the menu bar
  • Incoming transfers appear in "Pending Transfers"
  • Click ✓ to accept or ✗ to reject

Menu Bar

  • Right-click the LocalSend icon for quick actions
  • Change Quick Save mode on the fly
  • View device information and IPs
  • Access all send commands instantly

Compatibility

  • ✅ Official LocalSend apps (Android, iOS, macOS, Windows, Linux)
  • ✅ LocalSend Protocol v2.1
  • ✅ Can run alongside official LocalSend app
  • ✅ Supports multiple Raycast LocalSend extensions simultaneously

Documentation

  • Comprehensive README with quick start guide
  • Feature tables and command reference
  • Troubleshooting section for common issues
  • Security & privacy information
  • Keyboard shortcuts reference

Checklist

  • [x] I read the extension guidelines
  • [x] I read the documentation about publishing
  • [x] I ran npm run build and tested this distribution build in Raycast
  • [x] I checked that files in the assets folder are used by the extension itself
  • [x] I checked that assets used in the README are located outside the metadata folder
  • [x] All lint checks pass (npm run lint)
  • [x] No TypeScript errors
  • [x] Tested with official LocalSend apps (Android, iOS, macOS)
  • [x] Verified protocol compliance
  • [x] Updated CHANGELOG.md

kud avatar Dec 12 '25 01:12 kud