{"id":48375218,"url":"https://github.com/pacanimal/hydra","last_synced_at":"2026-06-01T11:00:47.627Z","repository":{"id":348383057,"uuid":"1197767423","full_name":"PacAnimal/hydra","owner":"PacAnimal","description":"Modern cross-platform software KVM — share keyboard \u0026 mouse across Mac, Windows, and Linux. A spiritual successor to Synergy and Barrier.","archived":false,"fork":false,"pushed_at":"2026-05-28T11:54:27.000Z","size":1015,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-28T12:25:09.662Z","etag":null,"topics":["barrier-alternative","cross-platform","deskflow-alternative","dotnet","input-leap-alternative","keyboard-sharing","kvm","linux","macos","mouse-sharing","raspberry-pi","software-kvm","synergy-alternative","windows"],"latest_commit_sha":null,"homepage":"https://hydra-config.c-net.org/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PacAnimal.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2026-03-31T21:41:47.000Z","updated_at":"2026-05-28T11:52:33.000Z","dependencies_parsed_at":"2026-04-09T01:00:34.280Z","dependency_job_id":null,"html_url":"https://github.com/PacAnimal/hydra","commit_stats":null,"previous_names":["pacanimal/hydra"],"tags_count":120,"template":false,"template_full_name":null,"purl":"pkg:github/PacAnimal/hydra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PacAnimal%2Fhydra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PacAnimal%2Fhydra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PacAnimal%2Fhydra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PacAnimal%2Fhydra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PacAnimal","download_url":"https://codeload.github.com/PacAnimal/hydra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PacAnimal%2Fhydra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33771629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["barrier-alternative","cross-platform","deskflow-alternative","dotnet","input-leap-alternative","keyboard-sharing","kvm","linux","macos","mouse-sharing","raspberry-pi","software-kvm","synergy-alternative","windows"],"created_at":"2026-04-05T18:02:12.852Z","updated_at":"2026-06-01T11:00:47.568Z","avatar_url":"https://github.com/PacAnimal.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hydra\n\n**A modern, cross-platform software KVM** — share one keyboard and mouse across Mac, Windows, and Linux by moving the cursor to the edge of the screen. A spiritual successor to Synergy and Barrier.\n\n[![License: GPL v2](https://img.shields.io/badge/License-GPL_v2-blue.svg)](LICENSE)\n[![Latest release](https://img.shields.io/github/v/release/PacAnimal/hydra)](https://github.com/PacAnimal/hydra/releases/latest)\n[![Downloads](https://img.shields.io/github/downloads/PacAnimal/hydra/total)](https://github.com/PacAnimal/hydra/releases)\n[![Build](https://github.com/PacAnimal/hydra/actions/workflows/build-hydra.yml/badge.svg)](https://github.com/PacAnimal/hydra/actions/workflows/build-hydra.yml)\n\n\u003c!-- TODO: replace with demo GIF — record cursor crossing screens + file transfer toast --\u003e\n\n---\n\n## Why Hydra?\n\n| Feature | Hydra | Synergy 3 | Deskflow | Input Leap | Barrier |\n|---|---|---|---|---|---|\n| Open source | ✅ GPLv2 | ❌ commercial ($29–39) | ✅ GPLv2 | ✅ GPLv2 | ✅ GPLv2 |\n| macOS / Windows / Linux | ✅ | ✅ | ✅ | ✅ | ✅ |\n| **Works across networks / NAT (encrypted relay)** | ✅ | ❌ LAN only | ❌ | ❌ | ❌ |\n| **Network-aware profile switching** | ✅ | ❌ | ❌ | ❌ | ❌ |\n| **Cross-layout keyboard (types 'å' correctly on a US slave)** | ✅ | ❌ | ❌ | ❌ | ❌ |\n| **Headless Linux / Raspberry Pi forwarder (no display server)** | ✅ | ❌ | ❌ | ❌ | ❌ |\n| Cross-machine file transfer | ✅ macOS + Windows | ✅ Windows + macOS | ❌ | ❌ | ❌ |\n| Clipboard sync (text + images) | ✅ | ✅ | ✅ | partial | partial |\n| Active development (2026) | ✅ | ✅ | ✅ | partial | ❌ |\n\n---\n\n## A day in the life\n\n**The commuting laptop.** Walk into the office, dock your laptop, and Hydra activates your Office profile automatically — cursor flows between screens, files copy across with one hotkey. Unplug at 5pm: the dock-detected profile drops. Get home and join the home WiFi: Hydra silently switches to your Home profile, where the same laptop now controls a mini-PC plugged into the TV. At a coffee shop with neither network: Hydra idles silently — there's nothing to connect to.\n\n**The Raspberry Pi as a wireless keyboard.** A headless Pi tucked behind the TV runs Hydra in remote-only mode. Plug any USB keyboard and mouse into it, and they instantly control your Mac across the room — no display server, no Xorg, just evdev and a network cable.\n\n**Typing foreign characters across layouts.** Norwegian master, US slave — type `å` on the master and `å` arrives correctly on the slave, even though the slave's keyboard has no key for it. Hydra resolves characters to Unicode on the master before transmission; dead-key composition (`' + a` → `á`) works the same way. No \"force all machines to use the same layout\" workarounds needed.\n\n**The VPN problem, solved.** Your work laptop is on the corporate VPN; it can't see your personal machine sitting right next to it on the LAN. Drop a Styx container on a cheap VPS, paste the relay config into both machines' `hydra.conf`, and they connect through the relay as if they were on the same network — end-to-end encrypted, no port forwarding, no changes to the VPN.\n\n---\n\n## Install\n\n**macOS (Apple Silicon):**\n```bash\ncurl -L https://github.com/PacAnimal/hydra/releases/latest/download/hydra-osx-arm64.tar.gz | tar xz\n./hydra --install   # installs as a login item, auto-starts on login\n```\n`--install` registers a LaunchAgent, clears the quarantine flag, and starts Hydra immediately. Grant Accessibility permission when prompted: System Settings → Privacy \u0026 Security → Accessibility → enable Hydra. To remove: `./hydra --uninstall`.\n\n**Windows (x64):**\n\nDownload [hydra-win-x64.zip](https://github.com/PacAnimal/hydra/releases/latest/download/hydra-win-x64.zip), extract, then run:\n```\nhydra.exe --install\n```\nThis installs Hydra as a Windows service (auto-start, survives logout). A UAC prompt will appear. To remove: `hydra.exe --uninstall`.\n\n**Linux (x64):**\n```bash\ncurl -L https://github.com/PacAnimal/hydra/releases/latest/download/hydra-linux-x64.tar.gz | tar xz\nchmod +x hydra\n./hydra\n```\n\n**Linux (arm64 / Raspberry Pi):**\n```bash\ncurl -L https://github.com/PacAnimal/hydra/releases/latest/download/hydra-linux-arm64.tar.gz | tar xz\nchmod +x hydra\n./hydra\n```\n\nAll releases are [self-contained](https://github.com/PacAnimal/hydra/releases) — no .NET runtime installation required.\n\n\u003e **Linux with display:** Requires X11 with XInput2. Wayland is not yet supported.\n\n\u003e **Linux headless (no display):** See [Remote-only / Raspberry Pi setup](docs/CONFIGURATION.md#headless-linux-no-display-server).\n\n---\n\n## Quickstart\n\nCreate `hydra.conf` next to the binary on **each machine**.\n\n**Master** (the machine with the physical keyboard and mouse):\n\n```json\n{\n  \"name\": \"laptop\",\n  \"profiles\": [{\n    \"mode\": \"Master\",\n    \"hosts\": [\n      { \"name\": \"laptop\", \"neighbours\": [{ \"direction\": \"right\", \"name\": \"desktop\" }] },\n      { \"name\": \"desktop\" }\n    ]\n  }]\n}\n```\n\n**Slave** (the machine that receives input):\n\n```json\n{\n  \"name\": \"desktop\",\n  \"profiles\": [{ \"mode\": \"Slave\" }]\n}\n```\n\nRun `./hydra` on both machines. Move the cursor past the right edge of the master's screen — it appears on the slave.\n\nFor cross-network setups (different LANs), see [Networking with Styx](docs/CONFIGURATION.md#networking-with-styx). The easiest approach is adding `embeddedStyxServer` to the master's config — no separate server needed.\n\n---\n\n## Config editor\n\nThe easiest way to set up multi-machine layouts, Styx relay configs, and network-aware profiles is the **[Hydra Config Editor](https://hydra-config.c-net.org/)** — a web UI that lets you visually arrange screens and download a ready-to-use `hydra.conf`.\n\n---\n\n## Features\n\n- Seamless cursor transitions in any direction (left, right, up, down)\n- **Multi-monitor support** — multiple local and remote monitors, auto-detected at startup and on connect/disconnect\n- Flexible layout: L-shaped, grids, or any topology\n- **Range-based neighbours** — split edges to route to different hosts by cursor position\n- **Per-screen scale** — control cursor speed on each remote screen\n- Full keyboard forwarding including dead keys and special characters — resolved on the master using its keyboard layout\n- Mouse button and scroll forwarding\n- **Clipboard sync** — text and images synced automatically when switching machines (all platforms)\n- **File transfer** — cross-machine copy/paste of files and folders via hotkey (macOS and Windows)\n- **Media key forwarding** — volume, playback, brightness keys forwarded to the active machine\n- **Screensaver sync** — activating the screensaver on the master locks all connected slaves\n- End-to-end encrypted relay via **Styx** for machines on different networks\n- **Remote-only mode** — use a headless Linux machine (e.g. Raspberry Pi) as a dedicated input forwarder with no local screen\n\n---\n\n## Full documentation\n\n- [Configuration reference](docs/CONFIGURATION.md) — all config fields, screen layout options, network-aware profiles, hotkeys, Styx setup, and building from source\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpacanimal%2Fhydra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpacanimal%2Fhydra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpacanimal%2Fhydra/lists"}