Luna 🌙
Cross-platform remote & local workflow workstation
Luna is a high-performance, cross-platform desktop application designed to streamline your remote and local workflows. Browse SSH/SFTP servers and S3-compatible object stores side-by-side with your local filesystem, with a powerful terminal (SSH or local shell) just a tab away.
---
✨ Key Features
🖥️ High-Performance Terminals
- Hardware Acceleration: Powered by xterm.js using WebGL and Canvas renderers for low-latency rendering.
- Advanced Layouts & Presets: Supports vertical and horizontal split panes, dynamic resizing, and saving/restoring workspace layout presets.
- Broadcast Input: Broadcast commands to multiple active terminal tabs simultaneously.
- Automation & Snippet Vault: Store reusable command snippets in a searchable Snippet Vault and record automated terminal keypress sequences with the Macro Recorder.
- Session Audit & Shell History: Index command history for fast search and export detailed session audit logs in JSON, HTML, or plain text formats.
- Built-in CLI Reference: Access interactive, searchable CLI command reference documentation directly inside the terminal workstation.
- Session Recovery: Long-lived session management in the main process preserves scrollback buffers, cursor states, and tab setups through renderer reloads or window refreshes (e.g., Cmd+R).
- Reliable Reconnection: Automatically re-establishes dropped SSH sessions according to your ssh.autoReconnect preference, with clear status feedback if a manual reconnect attempt fails.
- Custom Themes: Dynamically maps terminal color palettes directly onto the React application UI for unified styling.
🔌 SSH Port Forwarding & Tunnel Manager
- Full Tunneling Support: Configure and manage Local, Remote, and Dynamic (SOCKS5 proxy) SSH tunnels.
- Live Status Monitoring: Monitor active tunnels, port bindings, and forwarding status directly from the interactive Status Bar.
- Explicit Public Binds: A bind is certified as loopback by address, never by hostname, so a doctored /etc/hosts entry cannot turn a local forward into a publicly reachable one without the opt-in.
📁 SFTP File Manager & Folder Sync
- Folder Synchronization: Perform directional or bidirectional directory synchronization between local and remote paths with conflict detection.
- Visual File Operations: Drag-and-drop file transfers, directory creation, deletion, and renaming over remote SSH channels.
- Enhanced Inline File Editor: Open, view, search, word-wrap, live-tail, and edit local or remote files (code, config scripts, logs) directly inside FilePreview.
- Enhanced Accessibility: Fully optimized keyboard navigation (e.g., Space to toggle multi-row selection) and standard-compliant ARIA attributes. Split-pane and sidebar handles are focusable separators that resize with the arrow keys, and transfer progress is exposed as a labelled progressbar.
- Safety Guards: Protective recursion depth limits and warning thresholds to prevent accidental bulk deletions.
- Corruption-Safe Downloads: Downloads write to a temporary file and are atomically renamed into place, preventing partial or corrupted files if a transfer is interrupted.
🪣 S3 Object Storage Browser
- Multi-Provider Support: Seamlessly connect to AWS S3 and any S3-compatible APIs (MinIO, Cloudflare R2, Backblaze B2, etc.).
- Pagination & Safety Limits: Intelligently paginates massive buckets, offering user alerts to prevent application hangs or memory limits.
- Presigned URLs: Generate temporary access URLs for object sharing with customizable expiration times.
🔒 Enterprise-Grade Security & Credential Tools
- IPC Payload Validation: Enforces strict payload validation and input sanitization across all main-process IPC service handlers to protect internal services.
- IPC Resource Limits: Rate limiters and session caps on S3, SSH, and credential IPC channels bound resource usage from a chatty or compromised renderer, and a single-instance lock prevents concurrent processes from racing database or credential writes.
- Built-in Password Manager: Generate strong passwords with configurable complexity and securely manage stored credentials, with optional 1Password and Bitwarden CLI lookups on macOS, Windows, and Linux.
- OS-Protected Credentials: Integrates with system keychains (Keychain Services on macOS, Credential Manager on Windows, Gnome Keyring/libsecret on Linux) to prevent credential leakage. On Linux the backend actually in use is inspected: a basictext keyring encrypts with a hardcoded key and is reported as unprotected rather than counted as OS-backed.
- Non-Destructive Key Handling: A locked or access-denied keyring is a hard, recoverable error — Luna reports a locked state, leaves the encrypted master key byte-for-byte intact instead of regenerating it, and asks you to unlock and restart. Credential rows that cannot be decrypted are retained for re-entry, never deleted.
- Tamper Protection: Actively audits and alerts the operator of corrupted or unauthorized credential modifications on disk.
- Hardened Desktop Runtime: Electron fuses disable ELECTRONRUNASNODE, NODEOPTIONS, and --inspect, and the app loads only from the asar; top-level navigation is allowlisted to the bundled renderer; the database (with its WAL/SHM siblings) and the encrypted key file are created owner-only; and file writes open with ONOFOLLOW so the path cannot be swapped for a symlink after validation.
- No Third-Party Assets At Runtime: Inter and JetBrains Mono ship inside the app as woff2 subsets, so both Content-Security-Policy definitions are 'self'-only and no launch makes a CDN request.
- Clear Visibility: Alerts the user immediately via toast notifications if the workspace falls back to unencrypted plaintext or memory-only keys due to missing OS libraries.