A native messaging host application for the Browser's External Editor extension.
- Linux
- Windows (MinGW binaries*)
- macOS (tested on 10.15.6 and 15.3.1)
- FreeBSD
Note
Windows builds are cross-compiled using MinGW. Linux builds might also be cross-compiled using Docker.
- Available via SourceForge or the GitHub Releases page.
- FreeBSD Port
- RPM packages available via Copr.
Download the latest .pkg file from the release links above. Then run the following (replace the filename with your actual download):
sudo spctl --master-disable
sudo installer -pkg ./beectl-1.3.7-3.x86_64.Release.pkg -target /
sudo spctl --master-enableNote
Gatekeeper is temporarily disabled due to the lack of an official Apple Developer certificate. This project is not signed with an Apple-issued certificate to avoid the $99/year developer fee.
Enable the repository and install:
sudo dnf copr enable ruslan-osmanov/beectl
sudo dnf install --refresh beectlAlternatively, manually install the RPM:
rpm -Uvh --nodeps beectl-<VERSION>.<ARCH>.Release.rpmInstall the package:
dpkg -i beectl-<VERSION>.<ARCH>.Release.debBeeCtl is available as a Nix flake for reproducible builds on NixOS and systems with Nix package manager.
On NixOS, you don't need to manually link manifests. Add the package to your configuration and configure your browser.
In your flake.nix or configuration.nix:
{ pkgs, ... }: {
# 1. Add the package (assuming you added the flake to your inputs)
environment.systemPackages = [ pkgs.beectl ];
# 2. Configure Firefox to find the native messaging host
programs.firefox.nativeMessagingHosts.packages = [ pkgs.beectl ];
# Note: Chromium-based browsers may also require specific configuration
# depending on your setup.
}If you are using the Nix package manager on another Linux distribution, install the package using:
nix profile install github:rosmanov/bee-host --extra-experimental-features "nix-command flakes"After installation, create symbolic links for browser manifests. This is required because:
- Browsers expect manifests in specific standard locations (
~/.mozilla/native-messaging-hosts/, etc.) - Nix installs packages to isolated read-only paths in
/nix/store/ - The symlinks bridge these two locations
For Firefox:
mkdir -p ~/.mozilla/native-messaging-hosts
ln -sf ~/.nix-profile/lib/mozilla/native-messaging-hosts/com.ruslan_osmanov.bee.json \
~/.mozilla/native-messaging-hosts/com.ruslan_osmanov.bee.jsonFor Chrome:
mkdir -p ~/.config/google-chrome/NativeMessagingHosts
ln -sf ~/.nix-profile/etc/opt/chrome/native-messaging-hosts/com.ruslan_osmanov.bee.json \
~/.config/google-chrome/NativeMessagingHosts/com.ruslan_osmanov.bee.jsonFor Chromium:
mkdir -p ~/.config/chromium/NativeMessagingHosts
ln -sf ~/.nix-profile/etc/chromium/native-messaging-hosts/com.ruslan_osmanov.bee.json \
~/.config/chromium/NativeMessagingHosts/com.ruslan_osmanov.bee.jsonNote
You only need to create these symlinks once. They point to ~/.nix-profile/ which Nix automatically updates when you upgrade, so the manifests will always reference the current version.
nix profile upgrade '.*bee.*' --refresh --extra-experimental-features "nix-command flakes"The manifests will automatically point to the new version - no need to recreate the symlinks.
If you prefer to avoid manual manifest setup, download the TGZ package and extract to your home directory:
tar xzf beectl-<VERSION>-<RELEASE>.<ARCH>.Release.TGZ -C ~/.local --strip-components=1Then create symlinks as shown above, replacing ~/.nix-profile/ with ~/.local/.
For the x86_64 (amd64) and i686 (32-bit) architectures, download the latest .exe file from the release links above. The installer will automatically register the host with the browser.
For arm64, there is no native Windows build available. However, you can use the i686 version on Windows 10 or the amd64 version on Windows 11, which will run in emulation mode.
Note
It is possible to build the application for arm64 natively, but, at the time of writing, there is no official support for this architecture in the Windows build scripts.
Cross-compilation for arm64 is not yet implemented because the MinGW toolchain does not support it. Building for arm64 natively on Windows is possible but requires a Windows ARM64 machine
with build tools installed, which is not available in the maintainer's CI/CD environment.
Run the downloaded installer. It will automatically register the host with the browser.
In the "Install Options" dialog, choose either of the following options:
- "Add beectl to the system PATH for all users" (recommended)"
- "Add beectl to the system PATH for the current user"
Click "Next" and accept the default destination folder.
Next, accept the default start menu folder "BeeCtl" unless you want to change it. Click "Next".
Please leave both components checked:
- "application"
- "config"
Click "Next" and then "Install".
sudo rpm -e beectlsudo apt purge beectlThe project uses CMake and platform-specific toolchains located in CMake/Toolchain-*.cmake. The default compiler is GCC for Linux and MinGW-GCC for Windows.
To cross-compile for different platforms, you can use the build-cross.sh script. This script requires Docker to be installed and configured:
./build-cross.sh./build-linux-amd64.sh -b Release./build-linux-i386.sh -b Release./build-win-i686.sh -b ReleaseCustom toolchains can be used as follows:
./build.sh /path/to/custom-toolchain.cmake -b ReleaseToolchains for other CPU architectures can be added on request.
By default, ./build.sh builds a debug version if -b is not specified. Example:
./build.sh all -b DebugThis will iterate over all Toolchain-*.cmake files in the CMake directory.
To cross-compile for all platforms, you can use:
./build-cross.sh -b DebugThe build scripts (build.sh, build-cross.sh and others) automatically generate CPack configuration files.
To manually create a package, you can run:
make packageCPack will generate a package appropriate to your current platform (e.g., RPM, DEB, NSIS).
This project is licensed under the MIT License.
Copyright (C) 2019–2025 Ruslan Osmanov.
