DEV Community

EnderAir
EnderAir

Posted on

How I Built EDR: A CLI Tool to Share Active Project Folders Over LAN & Relay

`Hey DEV community,

If you frequently jump between multiple development machines (like a desktop, laptop, or home server), you know how annoying it can be to move an active project directory around. Zipping files manually is slow, cloud drives sync unwanted node_modules or .git clutter, and pushing temporary branches to GitHub just to pull them on another desk machine feels clunky.

That’s why I built EDR (Ender Air Project Sharer)—a CLI tool built to send active project folders directly between development machines over LAN or across networks using relay codes.


Key Features

  • Relay & LAN Support: Push project folders directly over your local network or globally behind NATs using simple relay codes (Edrnko_ codes).
  • EDR Guard: Includes a pre-transfer safety scanner that inspects directories before sending to prevent accidentally sharing sensitive keys or unwanted binary artifacts.
  • Profiles: Easily save frequently shared project paths with aliases.

Quick Start

Installation

You can install EDR via npm (requires Python 3.11+ on your machine):

bash
npm install -g @enderair/edr

(Standalone binaries for Windows .exe, Mac .dmg, and Linux .deb are also available on our repository.)


How It Works

Option 1: Cross-Network (Relay Mode)

On the sender machine:
bash
edr create sharer . --non-network --idnew
edr start <id>

On the receiver machine:
bash
edr pull Edrnko_<id>

Option 2: Local Network (LAN Mode)

On the sender machine:
bash
edr create sharer . --id myproject
edr start myproject

On the receiver machine:
bash
edr pull <sender-ip>


How It Compares

  • vs. Croc / Magic-Wormhole: Shares similar relay-code ad-hoc capabilities, but adds directory profile aliases and EDR Guard for automated safety checks.
  • vs. Git / GitHub: EDR is not source control—it’s designed for fast, direct folder syncs without committing temporary working code or creating throwaway branches.
  • vs. Rsync / SCP: Eliminates SSH setup and configuration overhead when working across local networks or NATs.

Links & Feedback

We're actively working on EDR and would love to hear your thoughts, feedback, or bug reports! Drop a comment below if you give it a try.
`

Top comments (1)

Collapse
 
ggle_in profile image
HARD IN SOFT OUT

The one where you hit edr start and immediately realize you forgot to remove your .env file from the folder. I felt that in my soul—and I am pretty sure I just heard every security engineer within a five-mile radius collectively gasp. EDR Guard sounds like the therapist I never knew I needed for my reckless file-sharing habits.

Jokes aside, this is genuinely useful. The whole "zip and pray" workflow has been a silent time-sink for years, and I love that you built something that handles both LAN and NAT traversal without making me configure SSH or deal with cloud sync folders. The relay code approach feels like Magic-Wormhole but with actual project awareness, which is a nice step up.

One thing I would love to see—and maybe you already have this planned—is a quick "history" or "recent receivers" list. I sometimes share the same project with multiple people on different machines, and having to type or copy-paste the relay code each time gets old fast. Even a small alias system for frequent destinations would save a surprising amount of mental overhead.

Also, since you already have the Guard scanning for sensitive files, have you considered adding an optional "smart exclude" that automatically skips common heavy folders like node_modules, venv, or .git unless explicitly overridden? That way I do not have to think about what to exclude—the tool just knows what is probably clutter and asks me if I really want to send it. Less thinking, more sending.

Anyway, I am definitely giving this a spin the next time I need to move a half-baked prototype from my laptop to my home server at 2 AM. Thanks for building something that solves a real pain point without overcomplicating it.