{"id":13563447,"url":"https://github.com/omniedgeio/omniedge","last_synced_at":"2026-02-16T06:15:15.708Z","repository":{"id":40539370,"uuid":"507467361","full_name":"omniedgeio/omniedge","owner":"omniedgeio","description":"Bringing intranet on the internet with Zero-Config Mesh VPNs.","archived":false,"fork":false,"pushed_at":"2026-02-11T04:32:27.000Z","size":52270,"stargazers_count":882,"open_issues_count":33,"forks_count":54,"subscribers_count":16,"default_branch":"dev","last_synced_at":"2026-02-11T06:54:41.043Z","etag":null,"topics":["industrial-iot","mesh-networks","omninervous","wireguard"],"latest_commit_sha":null,"homepage":"https://connect.omniedge.io","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/omniedgeio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-26T03:23:32.000Z","updated_at":"2026-02-10T19:57:35.000Z","dependencies_parsed_at":"2024-01-14T06:53:28.850Z","dependency_job_id":"2b3aeeef-1210-4c45-a664-bb8114a03640","html_url":"https://github.com/omniedgeio/omniedge","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/omniedgeio/omniedge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omniedgeio%2Fomniedge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omniedgeio%2Fomniedge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omniedgeio%2Fomniedge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omniedgeio%2Fomniedge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/omniedgeio","download_url":"https://codeload.github.com/omniedgeio/omniedge/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/omniedgeio%2Fomniedge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29501751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T05:57:17.024Z","status":"ssl_error","status_checked_at":"2026-02-16T05:56:49.929Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["industrial-iot","mesh-networks","omninervous","wireguard"],"created_at":"2024-08-01T13:01:19.375Z","updated_at":"2026-02-16T06:15:15.689Z","avatar_url":"https://github.com/omniedgeio.png","language":"Rust","funding_links":[],"categories":["Others","Rust"],"sub_categories":[],"readme":"# OmniEdge\n\n\u003e Zero-Config P2P Mesh VPN for AI, Robotics, and Edge Computing\n\n[![Release](https://img.shields.io/github/v/release/omniedgeio/omniedge?style=flat-square)](https://github.com/omniedgeio/omniedge/releases)\n[![Release CLI](https://img.shields.io/github/actions/workflow/status/omniedgeio/omniedge/release.yml?label=CLI%20Build\u0026style=flat-square)](https://github.com/omniedgeio/omniedge/actions/workflows/release.yml)\n[![Release Desktop](https://img.shields.io/github/actions/workflow/status/omniedgeio/omniedge/desktop-release.yml?label=Desktop%20Build\u0026style=flat-square)](https://github.com/omniedgeio/omniedge/actions/workflows/desktop-release.yml)\n[![E2E Tests](https://img.shields.io/github/actions/workflow/status/omniedgeio/omniedge/e2e.yml?label=E2E%20Tests\u0026style=flat-square)](https://github.com/omniedgeio/omniedge/actions/workflows/e2e.yml)\n[![License](https://img.shields.io/github/license/omniedgeio/omniedge?style=flat-square)](LICENSE)\n[![Rust](https://img.shields.io/badge/rust-1.70%2B-orange?style=flat-square\u0026logo=rust)](https://www.rust-lang.org/)\n[![Tauri](https://img.shields.io/badge/tauri-v2-blue?style=flat-square\u0026logo=tauri\u0026logoColor=white)](https://tauri.app/)\n[![OmniNervous](https://img.shields.io/badge/OmniNervous-v0.5.0-green?style=flat-square)](https://github.com/omniedgeio/OmniNervous)\n\u003cbr/\u003e\n[![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macos%20%7C%20windows-blue?style=flat-square)](#supported-platforms)\n[![Discord](https://img.shields.io/discord/1234567890?color=5865F2\u0026label=discord\u0026logo=discord\u0026logoColor=white\u0026style=flat-square)](https://discord.gg/d4faRPYj)\n\n## The Problem\n\nBuilding distributed AI systems is hard. Connecting robots, edge devices, and cloud infrastructure across networks is even harder:\n\n- Your robot fleet can't communicate behind NAT\n- Federated learning nodes need secure, low-latency links\n- Remote debugging AI devices requires complex VPN setup\n- Multi-agent systems need peer discovery without central servers\n- Humanoid robot teleoperation demands deterministic, jitter-free networking\n\n**OmniEdge solves this with a single binary.**\n\n## Why Researchers \u0026 Developers Choose OmniEdge\n\n| Challenge                     | OmniEdge Solution                                      |\n| ----------------------------- | ------------------------------------------------------ |\n| NAT traversal                 | Automatic hole punching + relay fallback, 99%+ success |\n| Symmetric NAT                 | Zero-knowledge relay for hardest NAT types             |\n| Latency-critical AI inference | WireGuard encryption, ~0.3ms overhead                  |\n| Deterministic networking      | 6-Sigma stability (Cpk 2.92) for teleoperation         |\n| Secure model transfer         | End-to-end encrypted mesh                              |\n| Heterogeneous devices         | Single binary for x86, ARM64, RISC-V                   |\n| Air-gapped labs               | Self-hosted nucleus mode (no cloud dependency)         |\n\n## Performance: Industrial-Grade Stability\n\nValidated through [50-run longitudinal testing](https://github.com/omniedgeio/OmniNervous/blob/main/Capability_test/cloud_test_50_run_paper.md) using Process Capability Analysis (Cpk):\n\n| Metric                      | OmniEdge Tunnel    | Raw Internet | Improvement          |\n| --------------------------- | ------------------ | ------------ | -------------------- |\n| **Latency**                 | 54.69ms            | 54.36ms      | +0.3ms overhead      |\n| **Latency Stability (Cpk)** | **2.92 (6-Sigma)** | 6.47         | Near-deterministic   |\n| **Throughput**              | **484.7 Mbps**     | 344.1 Mbps   | **+140.8%**          |\n| **Jitter (StdDev)**         | 0.057ms            | 0.026ms      | Bounded, predictable |\n\n\u003e **What this means**: Cpk \u003e 2.0 indicates industrial-grade process capability. OmniEdge provides deterministic, jitter-controlled networking suitable for real-time robot control and latency-sensitive AI inference.\n\n## Perfect For\n\n### Robotics\n\n- **Humanoid Teleoperation**: Deterministic latency for real-time control loops\n- **Robot Swarms**: Mesh networking for multi-robot coordination\n- **ROS 2 Integration**: Seamless DDS discovery across networks\n- **Remote Debugging**: SSH into any robot without port forwarding\n\n### AI \u0026 Machine Learning\n\n- **Federated Learning**: Secure gradient exchange between edge nodes\n- **Distributed Inference**: Split models across Jetson/Pi clusters\n- **MLOps Pipelines**: Deploy models to edge devices seamlessly\n- **GPU Cluster Access**: Connect to remote training infrastructure\n\n### Research\n\n- **Multi-Agent Systems**: P2P communication for agent coordination\n- **Edge Computing**: Connect fog nodes to cloud transparently\n- **IoT Testbeds**: Instant mesh for sensor networks\n- **Reproducible Experiments**: Consistent networking across trials\n\n## Quick Start (60 seconds)\n\n```bash\n# Install on any Linux device (Jetson, Pi, server)\ncurl -fsSL https://raw.githubusercontent.com/omniedgeio/omniedge/main/scripts/omniedge-install.sh | bash\n\n# Start and connect (interactive login on first run)\nsudo omniedge start\n\n# That's it. Your devices can now reach each other by virtual IP.\n```\n\n## Nucleus Mode Custom Server\n\nWhen running `omniedge start --mode nucleus` or `--mode dual`, the CLI can auto-register a custom user server using the public IP and chosen port. This requires an auth token; if auth is missing or public IP lookup fails, it skips registration and continues.\n\n### OpenWrt Installation\n\n\n```bash\n# Download the package for your architecture (example: aarch64, OpenWrt 24.10)\nwget https://github.com/omniedgeio/omniedge/releases/download/v2.6.0/omniedge_2.6.0_aarch64_generic.ipk\n\n# Install the package\nopkg install omniedge_2.6.0_aarch64_generic.ipk\n\n# Configure via UCI\nuci set omniedge.main.enabled='1'\nuci set omniedge.main.network_id='your-network-id'\nuci commit omniedge\n\n# Start the service\n/etc/init.d/omniedge start\n/etc/init.d/omniedge enable  # Start on boot\n```\n\n## Supported Hardware\n\n| Device                           | Architecture  | Status       |\n| -------------------------------- | ------------- | ------------ |\n| NVIDIA Jetson (Nano/Xavier/Orin) | ARM64         | Tested       |\n| Raspberry Pi 4/5                 | ARM64         | Tested       |\n| Intel NUC / x86 Servers          | x86_64        | Tested       |\n| Apple Silicon (M1/M2/M3)         | ARM64         | Tested       |\n| RISC-V Boards                    | riscv64       | Experimental |\n| OpenWrt Routers                  | x86_64, ARM64 | Tested       |\n\n## Supported Platforms\n\n### CLI (`omniedge-cli`)\n\n| Platform    | Architecture                          | Package Formats                        |\n| ----------- | ------------------------------------- | -------------------------------------- |\n| **Linux**   | x86_64, ARM64, RISC-V                 | `.tar.gz`, `.deb`, `.rpm`, `.AppImage` |\n| **macOS**   | x86_64 (Intel), ARM64 (Apple Silicon) | `.tar.gz`                              |\n| **Windows** | x86_64                                | `.zip`                                 |\n\n### Desktop (`omniedge-desktop`)\n\n| Platform    | Architecture  | Package Formats     |\n| ----------- | ------------- | ------------------- |\n| **Windows** | x86_64        | `.msi`, `.exe`      |\n| **macOS**   | x86_64, ARM64 | `.dmg`              |\n| **Linux**   | x86_64        | `.deb`, `.AppImage` |\n\n### OpenWrt (`omniedge-openwrt`)\n\n| OpenWrt Version     | Architecture | Package Format | Status |\n| ------------------- | ------------ | -------------- | ------ |\n| **24.10.x**         | x86_64       | `.ipk`         | Tested |\n| **24.10.x**         | aarch64      | `.ipk`         | Tested |\n| **25.x (snapshot)** | x86_64       | `.apk`         | Tested |\n| **25.x (snapshot)** | aarch64      | `.apk`         | Tested |\n\n\u003e **Note**: MIPS architecture is not supported due to Rust toolchain limitations.\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                        Your AI Network                          │\n│                                                                 │\n│  ┌──────────────┐    ┌──────────────┐    ┌──────────────┐       │\n│  │ Jetson Orin  │    │  Robot Fleet │    │    Cloud     │       │\n│  │  10.147.1.1  │◄──►│  10.147.1.x  │◄──►│  10.147.1.x  │       │\n│  │  ( Edges )   │    │   (Edges)    │    │   (Edges)    │       │\n│  └──────┬───────┘    └──────┬───────┘    └──────┬───────┘       │\n│         │                   │                   │               │\n│         └───────────────────┼───────────────────┘               │\n│                             │                                   │\n│                   ┌─────────▼─────────┐                         │\n│                   │   OmniEdge Mesh   │                         │\n│                   │    (WireGuard)    │                         │\n│                   │                   │                         │\n│                   │  - E2E Encrypted  │                         │\n│                   │  - NAT Traversal  │                         │\n│                   │  - Relay Fallback │                         │\n│                   │  - 6σ Stability   │                         │\n│                   └───────────────────┘                         │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n## Plugin System (v2.2.0)\n\nOmniEdge now supports a **WASM-based plugin system** that allows extending functionality without modifying the core application.\n\n### Features\n\n| Feature                       | Description                                              |\n| ----------------------------- | -------------------------------------------------------- |\n| **WASM Sandboxing**           | Plugins run in secure WebAssembly sandboxes              |\n| **Event Hooks**               | React to VPN state changes, peer events, network changes |\n| **Capability-Based Security** | Fine-grained permissions per plugin                      |\n| **Hot Reload**                | Install, enable, disable plugins without restart         |\n| **Cross-Platform**            | Single plugin binary works on all platforms              |\n\n### Plugin Capabilities\n\n| Capability        | Description                 |\n| ----------------- | --------------------------- |\n| `network-status`  | Read VPN connection state   |\n| `peer-info`       | Access peer list and status |\n| `event-hooks`     | Subscribe to VPN events     |\n| `http-client`     | Make outbound HTTP requests |\n| `key-value-store` | Persist plugin data         |\n| `notifications`   | Show system notifications   |\n| `logging`         | Write to application logs   |\n\n### Installing Plugins\n\n```bash\n# Via CLI (v2.2.0)\nomniedge plugin list                    # List installed plugins\nomniedge plugin install ./plugin.zip    # Install from ZIP file\nomniedge plugin uninstall \u003cplugin-id\u003e   # Remove a plugin\nomniedge plugin enable \u003cplugin-id\u003e      # Enable a plugin\nomniedge plugin disable \u003cplugin-id\u003e     # Disable a plugin\nomniedge plugin info \u003cplugin-id\u003e        # Show plugin details\nomniedge plugin reload \u003cplugin-id\u003e      # Reload a plugin\nomniedge plugin discover                # Discover plugins in directory\n\n# Via Desktop UI\n# Settings \u003e Plugins \u003e Install Plugin \u003e Select .zip file\n\n# Plugin directory\n# Windows: %APPDATA%\\OmniEdge\\plugins\\\n# macOS:   ~/Library/Application Support/OmniEdge/plugins/\n# Linux:   ~/.local/share/omniedge/plugins/\n```\n\n### Creating Plugins\n\nSee [examples/plugins/hello-world](examples/plugins/hello-world) for a complete example.\n\n```rust\n// Minimal plugin structure\nwit_bindgen::generate!({\n    world: \"omniedge-plugin\",\n    exports: {\n        world: MyPlugin,\n    },\n});\n\nstruct MyPlugin;\n\nimpl Guest for MyPlugin {\n    fn on_load() -\u003e Result\u003c(), String\u003e {\n        Ok(())\n    }\n}\n```\n\n## NAT Traversal (v2.1.0)\n\nOmniEdge automatically handles complex network environments with multi-layer NAT traversal:\n\n### How It Works\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                    NAT Traversal Stack                          │\n├─────────────────────────────────────────────────────────────────┤\n│  1. STUN Detection    → Identify NAT type (Open/Cone/Symmetric) │\n│  2. UDP Hole Punching → Direct P2P for compatible NAT types     │\n│  3. Port Mapping      → UPnP/NAT-PMP to open router ports       │\n│  4. Relay Fallback    → Zero-knowledge relay for symmetric NAT  │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n### NAT Type Compatibility\n\n| Your NAT        | Peer NAT             | Connection Method     |\n| --------------- | -------------------- | --------------------- |\n| Open/Full Cone  | Any                  | Direct P2P            |\n| Restricted Cone | Open/Full/Restricted | Direct P2P            |\n| Port-Restricted | Open/Full Cone       | Direct P2P            |\n| Symmetric       | Open/Full Cone       | Direct P2P (usually)  |\n| Symmetric       | Symmetric            | **Relay** (automatic) |\n\n### Features\n\n| Feature                 | Description                            |\n| ----------------------- | -------------------------------------- |\n| **Auto NAT Detection**  | STUN-based detection on connection     |\n| **Relay Fallback**      | Zero-knowledge relay for symmetric NAT |\n| **Port Mapping**        | UPnP/NAT-PMP/PCP support               |\n| **Encrypted Signaling** | X25519 + XSalsa20-Poly1305             |\n| **IPv6 Dual-Stack**     | Happy Eyeballs (RFC 8305)              |\n\n### Configuration\n\n```bash\n# Check your NAT type and settings\nomniedge status\n\n# Configure NAT traversal\nomniedge config show              # View current settings\nomniedge config relay on          # Enable relay fallback\nomniedge config portmap on        # Enable UPnP/NAT-PMP\nomniedge config ipv6 prefer       # Prefer IPv6 when faster\nomniedge config encrypt on        # Enable encrypted signaling\n```\n\n## Operating Modes\n\n| Mode               | Description           | Use Case                       |\n| ------------------ | --------------------- | ------------------------------ |\n| **edge** (default) | VPN client            | Connect devices to mesh        |\n| **nucleus**        | Signaling server only | Self-hosted relay, no cloud    |\n| **dual**           | VPN + signaling       | Central hub + mesh participant |\n\n```bash\n# Edge mode - Join an existing network\nsudo omniedge start -n \u003cnetwork_id\u003e\n\n# Nucleus mode - Run your own signaling server (air-gapped labs)\nsudo omniedge start --mode nucleus --port 51821 --secret \"YourLabSecret123\"\n\n# Dual mode - Hub node that also participates in mesh\nsudo omniedge start -n \u003cnetwork_id\u003e --mode dual --secret \"YourSecret123456\"\n```\n\n## Transport Modes (v2.5.0)\n\nOmniEdge supports two transport modes for different networking requirements:\n\n| Mode             | Layer              | Interface | Platforms  | Use Case                   |\n| ---------------- | ------------------ | --------- | ---------- | -------------------------- |\n| **L3** (default) | IP (Layer 3)       | TUN       | All        | Standard VPN, IP routing   |\n| **L2**           | Ethernet (Layer 2) | TAP       | Linux only | Bridging, non-IP protocols |\n\n### L3 Mode (Default)\n\nLayer 3 mode operates at the IP level, routing IP packets between peers. This is the default and works on all platforms.\n\n```bash\n# L3 mode (default - no flag needed)\nsudo omniedge start -n \u003cnetwork_id\u003e\n\n# Explicit L3 mode\nsudo omniedge start -n \u003cnetwork_id\u003e --transport-mode l3\n```\n\n### L2 Mode (Linux Only)\n\nLayer 2 mode operates at the Ethernet level, bridging Ethernet frames between peers. This enables:\n\n- **Non-IP Protocols**: ARP, DHCP relay, NetBIOS, STP\n- **MAC Address Visibility**: See actual MAC addresses across the mesh\n- **VLAN Bridging**: Extend VLANs across sites\n- **Legacy Protocol Support**: Protocols that don't use IP\n\n```bash\n# L2 mode (Linux only, requires l2-vpn feature)\nsudo omniedge start -n \u003cnetwork_id\u003e --transport-mode l2\n```\n\n**Requirements**:\n- Linux operating system (TAP devices require Linux kernel)\n- Build with `--features l2-vpn` flag\n\n**Note**: L2 mode is currently in preview. Full OmniNervous L2 module integration is in progress.\n\n## SSH Integration (v2.7.0)\n\nOmniEdge now includes a **built-in SSH server and client**, enabling secure remote access to any device in your mesh network without exposing ports to the internet.\n\n### Features\n\n| Feature | Description |\n|---------|-------------|\n| **Mesh SSH Client** | SSH to any peer by name or virtual IP |\n| **Built-in SSH Server** | Accept SSH connections over the mesh |\n| **SFTP Support** | Secure file transfer to/from peers |\n| **SCP Support** | Copy files with familiar scp syntax |\n| **Session Recording** | Record SSH sessions for audit/compliance |\n| **Fleet Operations** | Execute commands across multiple nodes |\n| **Emergency Access** | Break-glass mechanism for incident response |\n| **Standalone Mode** | Run SSH server without OmniEdge backend |\n\n### SSH Commands\n\n```bash\n# Connect to a peer (by name or virtual IP)\nomniedge ssh user@my-robot           # By peer name\nomniedge ssh user@10.147.1.5         # By virtual IP\nomniedge ssh -p 2222 user@peer       # Custom port\n\n# Execute remote commands\nomniedge ssh user@peer \"uptime\"\nomniedge ssh user@peer \"systemctl status myservice\"\n\n# Interactive SFTP\nomniedge sftp peer                   # Start SFTP session\n\n# Copy files (SCP)\nomniedge scp local.txt peer:/remote/path\nomniedge scp peer:/remote/file.txt ./local/\nomniedge scp -r ./folder peer:/path  # Recursive copy\n```\n\n### Standalone SSH Server\n\nRun an SSH server without the full OmniEdge backend - useful for testing, development, or lightweight deployments:\n\n```bash\n# Default: Private networks only (10.x, 172.16.x, 192.168.x)\nomniedge ssh-server\n\n# Accept from any IP (development/testing)\nomniedge ssh-server --permissive\n\n# Localhost only (127.0.0.0/8)\nomniedge ssh-server --localhost-only\n\n# Custom network allowlist\nomniedge ssh-server --allow-network 192.168.1.0/24\n\n# User mapping (map SSH user to local user)\nomniedge ssh-server --user-map git:admin --default-user guest\n\n# Custom port and host key\nomniedge ssh-server -p 22 --host-key-path /etc/omniedge/host_key\n```\n\n### Use Cases\n\n- **Remote Robot Debugging**: SSH into any robot in your fleet without port forwarding\n- **Secure File Deployment**: Transfer ML models to edge devices via SFTP\n- **Fleet Management**: Execute commands across all nodes simultaneously\n- **Incident Response**: Emergency access with audit logging\n- **Air-Gapped Operations**: Standalone SSH server for isolated networks\n\n## Self-Hosted Mode (Air-Gapped Labs)\n\nRun completely offline with no cloud dependency:\n\n```bash\n# On your central server (e.g., lab gateway)\nsudo omniedge start --mode nucleus --port 51821 --secret \"LabSecret2026!\"\n\n# On edge devices - they discover each other through your nucleus\n# Configure network settings via the dashboard or API\n```\n\n**Use cases:**\n- Secure research environments\n- Industrial robotics with network isolation\n- Defense and government applications\n- Privacy-critical deployments\n\n## CLI Reference\n\n```bash\n# Basic operations\nomniedge start                    # Connect to first available network\nomniedge start -n \u003cnetwork_id\u003e    # Connect to specific network\nomniedge status                   # Check connection status\nomniedge stop                     # Disconnect\n\n# Authentication\nomniedge start -s \u003csecurity_key\u003e  # Non-interactive login (CI/CD)\n\n# Exit node (route traffic through a peer)\nomniedge start -x                 # Run as exit node\nomniedge start -e \u003cpeer_ip\u003e       # Use specific exit node\nomniedge start --no-exit-node     # Disable exit node\n\n# NAT traversal configuration (v2.1.0)\nomniedge config show              # Show current network settings\nomniedge config relay on|off      # Enable/disable relay fallback\nomniedge config relay server \u003curl\u003e # Set custom relay server\nomniedge config portmap on|off    # Enable/disable UPnP/NAT-PMP\nomniedge config ipv6 on|off|prefer # IPv6 settings\nomniedge config encrypt on|off    # Encrypted signaling\nomniedge config reset             # Reset to defaults\n\n# Plugin management (v2.2.0)\nomniedge plugin list              # List installed plugins\nomniedge plugin install \u003cpath\u003e    # Install plugin from ZIP\nomniedge plugin uninstall \u003cid\u003e    # Remove a plugin\nomniedge plugin enable \u003cid\u003e       # Enable a plugin\nomniedge plugin disable \u003cid\u003e      # Disable a plugin\nomniedge plugin info \u003cid\u003e         # Show plugin details\nomniedge plugin reload \u003cid\u003e       # Reload a plugin\nomniedge plugin discover          # Discover plugins in directory\n\n# Version check and upgrade (v2.6.0)\nomniedge version                  # Display version with commit hash\nomniedge version --check          # Check GitHub for updates\nomniedge version --releases       # Show recent release history\nomniedge upgrade                  # Self-update to latest version\nomniedge upgrade --check          # Check only, don't install\nomniedge upgrade --yes            # Skip confirmation prompt\n\n# SSH integration (v2.7.0)\nomniedge ssh user@peer            # SSH to peer by name or IP\nomniedge ssh user@peer command    # Execute remote command\nomniedge sftp peer                # Interactive SFTP session\nomniedge scp file.txt peer:/path  # Copy files to/from peers\nomniedge ssh-server               # Start standalone SSH server\nomniedge ssh-server --permissive  # Accept from any IP\n\n# Advanced modes\nomniedge start --mode nucleus --port 51821 --secret \"...\"  # Signaling server\nomniedge start --mode dual --secret \"...\"                  # Hub + client\n```\n\n## V2 Migration Notice\n\nOmniEdge V2 is a complete rewrite in Rust, replacing the legacy Go/n2n implementation:\n\n| Aspect     | V1 (Legacy)                                                      | V2 (Current)                  |\n| ---------- | ---------------------------------------------------------------- | ----------------------------- |\n| Language   | Go                                                               | Rust                          |\n| Protocol   | n2n                                                              | OmniNervous (WireGuard-based) |\n| License    | GPL-3.0                                                          | Apache-2.0 / MIT              |\n| Repository | [omniedge-legacy](https://github.com/omniedgeio/omniedge-legacy) | This repository               |\n\n## Research \u0026 Citations\n\nUsing OmniEdge in your research? We'd love to hear about it.\n\n```bibtex\n@software{omniedge2026,\n  title = {OmniEdge: Zero-Config P2P Mesh VPN for Edge Computing},\n  author = {OmniEdge Team},\n  year = {2026},\n  url = {https://github.com/omniedgeio/omniedge},\n  note = {Industrial-grade stability (Cpk 2.92) validated through 50-run longitudinal testing}\n}\n```\n\n### Related Publications\n\n- [OmniNervous Protocol Stability Analysis](https://github.com/omniedgeio/OmniNervous/blob/main/Capability_test/cloud_test_50_run_paper.md) - 50-run Cpk validation study\n\n## Built With\n\n- **[Rust](https://www.rust-lang.org/)** - Memory safety, zero-cost abstractions\n- **[WireGuard](https://www.wireguard.com/)** - Modern, audited cryptography\n- **[OmniNervous](https://github.com/omniedgeio/OmniNervous)** - High-performance P2P daemon with NAT traversal\n  - STUN-based NAT detection\n  - Relay fallback for symmetric NAT\n  - UPnP/NAT-PMP/PCP port mapping\n  - Happy Eyeballs (RFC 8305) for IPv6\n- **[Tauri](https://tauri.app/)** - Lightweight desktop apps\n\n## Community\n\n- [Discord](https://discord.gg/d4faRPYj) - Ask questions, share projects\n- [GitHub Issues](https://github.com/omniedgeio/omniedge/issues) - Bug reports and feature requests\n- [Twitter](https://twitter.com/omniedgeio) - Updates and announcements\n\n## License\n\nDual-licensed under [Apache License 2.0](LICENSE-APACHE) and [MIT License](LICENSE-MIT). \n\nUse freely in academic and commercial projects. See [LICENSING.md](LICENSING.md) for details.\n\n---\n\n**Built for the machines that build the future.**\n\n[Website](https://connect.omniedge.io) | [Docs](https://connect.omniedge.io/docs) | [Discord](https://discord.gg/d4faRPYj) | [Twitter](https://twitter.com/omniedgeio)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomniedgeio%2Fomniedge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomniedgeio%2Fomniedge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomniedgeio%2Fomniedge/lists"}