Sharing the clipboard between your computers
  • Go 90.1%
  • Nix 7%
  • Makefile 1.6%
  • PowerShell 1.3%
Find a file
github-actions[bot] 48ca04bdb0
Merge pull request #173 from labi-le/update-flake
chore: update flake.nix to v3.7.5
2026-08-20 15:55:51 +00:00
.github ci: fix the automerge gate, drop the --auto race 2026-08-07 19:50:13 +03:00
cmd/cli add test\linter fix 2026-07-11 14:24:24 +03:00
docs support copy paths for multiply files x11, wayland 2026-04-06 23:08:31 +03:00
e2e add test\linter fix 2026-07-11 14:24:24 +03:00
internal add test\linter fix 2026-07-11 14:24:24 +03:00
pkg clipboard: add android backend 2026-07-12 16:46:02 +03:00
proto support copy paths for multiply files x11, wayland 2026-04-06 23:08:31 +03:00
.gitignore optimizations 2026-07-11 00:39:42 +03:00
.golangci.yml add linter 2026-01-01 17:12:23 +03:00
.goreleaser.yaml drop armv6/v7 builds 2026-01-15 18:51:22 +03:00
flake.lock chore: update flake.nix to v3.7.5 2026-08-20 15:55:45 +00:00
flake.nix chore: update flake.nix to v3.7.5 2026-08-20 15:55:45 +00:00
go.mod Merge pull request #172 from labi-le/dependabot/go_modules/golang.org/x/image-0.45.0 2026-08-17 01:43:09 +00:00
go.sum Merge pull request #172 from labi-le/dependabot/go_modules/golang.org/x/image-0.45.0 2026-08-17 01:43:09 +00:00
install.ps1 Update install.ps1 2026-01-12 11:25:40 +03:00
LICENSE change to apache 2026-01-08 21:43:25 +03:00
logo.jpg change logo 2026-02-05 16:07:38 +03:00
Makefile add test\linter fix 2026-07-11 14:24:24 +03:00
NOTICE Create NOTICE 2026-01-08 21:53:38 +03:00
README.md docs: link the android app releases, close the android todo 2026-07-26 02:01:01 +03:00
shell.nix optimizations 2026-07-11 00:39:42 +03:00

belphegor

Belphegor is a clipboard manager that allows you to share your clipboard with other devices on the network


Features

  • Encryption
  • P2P
  • Discovering local nodes
  • Image sharing
  • File sharing

Dependencies

  • linux:

    • wayland
      • composer implements ext_data_control_v1 (sway, kde, etc)
      • wl-clipboard
    • X11
      • XFixes
  • macos:

    • 12 or newer
  • windows:

    • 10 or newer (may work on older versions)
  • android:

    • 8.0 or newer
    • 10 or newer + root (magisk/kernelsu) & lsposed for the background clipboard module

Installation

  • Prebuilt binaries

  • Android apk

    which apk
    • belphegor.apk - phones/tablets (arm)
    • belphegor-x86_64.apk - emulators/waydroid (x86_64)
    • belphegor-background-clipboard.apk - optional lsposed module, keeps the sync working while the app is in the background (android 10+)
  • Nix flake

    as profile
    nix profile install github:labi-le/belphegor
    
    import the module
    {
      # inputs
      belphegor.url = "github:labi-le/belphegor";
      # outputs
      overlay-belphegor = final: prev: {
        belphegor = belphegor.packages.${system}.default;
      };
    
      modules = [
        ({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-belphegor ]; })
      ];
    
      # add package
      environment.systemPackages = with pkgs; [
        belphegor
      ];
    }
    
  • windows
    irm https://raw.githubusercontent.com/labi-le/belphegor/refs/heads/main/install.ps1 | iex
    

Build from source

  • Go 1.26
  • git
  • makefile
git clone https://github.com/labi-le/belphegor.git
cd belphegor
make build

Usage

  -c, --connect string            Address in ip:port format to connect to the node
       --discover_delay duration   Delay between node discovery (default 5m0s)
       --file_save_path string     Folder where the files sent to us will be saved (default: Tmp dir)
   -h, --help                      Show help
       --hidden                    Hide console window (for windows user) (default true)
       --install_service           Install systemd-unit and start the service
       --keep_alive duration       Interval for checking connections between nodes (default 1m0s)
       --allow_copy_files          Allow to copy files (default true)
       --max_clipboard_files int   Maximum number of files that can be copied (and announced) in a single copy operation (default 10)
       --max_file_size string      Maximum file size to receive (default "500MiB")
       --max_peers int             Maximum number of discovered peers (default 5)
       --node_discover             Find local nodes on the network and connect to them (default true)
       --notify                    Enable notifications (default true)
   -p, --port int                  Port to use. Default: random
       --read_timeout duration     Write timeout (default 1m0s)
       --secret string             Key to connect between node (empty=all may connect)
       --transport string          Transport protocol: quic, tcp (default "quic")
       --verbose                   Verbose logs
   -v, --version                   Show version
       --write_timeout duration    Write timeout (default 1m0s)

Autostart

sway
exec belphegor
systemd service to install service, you need to have PATH in current ENV, otherwise the notifications will not work
belphegor --install-service

uninstall

systemctl --user disable --now belphegor

Limitations

  • the app can't work properly on gnome
  • when files are copied to the windows clipboard, the file paths aren't copied; the files themselves are downloaded successfully, but they cannot be pasted

Todo

[x] Create github actions for build binary and running tests

[x] Add flake

[x] Add x11 support

[] Upnp (?)

[x] Android app (+ lsposed module for the background clipboard)