BeyondTranslate CE: Desktop Text Capture and Translation
BeyondTranslate (formerly Biyi) is a fast, native-experience translation app for macOS, Windows and Linux, built with Flutter and Rust. Capture text from anywhere on screen and get accurate translations powered by multiple engines.
At a glance
- What is it?
- BeyondTranslate CE is an AGPL-3.0 desktop translation application for macOS, Windows and Linux, combining a Flutter interface with Rust services for OCR, translation, settings and dictionary features. It suits users who want selectable screen-text capture and multiple translation engines in a native-style application.
- Who is it for?
- BeyondTranslate CE is a practical choice for desktop users who want selectable screen translation, especially on macOS where Homebrew avoids the manual quarantine workaround. It is less suitable for teams that require a commercial license without reviewing AGPL obligations, or for developers who need a documented cloud translation service.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 5 days ago.
- What is it written in?
- Mainly Dart, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
BeyondTranslate CE Desktop Capture Workflow
BeyondTranslate CE addresses a specific desktop problem: translating text that is already visible in another application without requiring users to switch to a separate translation service and manually copy the text. The target audience is desktop users on macOS, Windows and Linux who encounter unfamiliar words, menus, documentation, games or application output while working. Its defining workflow is selection-based screen capture. A user selects text on screen, BeyondTranslate CE captures it, and the application presents a translation through a chosen engine.
The repository describes this as a native-feeling application, but the implementation is not based on one operating system's widget stack. The interface uses Flutter, while the core services are written in Rust. Based on the repository layout and workspace configuration, the Flutter application communicates with Rust packages in `crates/` and `packages/runtime/rust`. Generated FFI bindings form the boundary between those layers. The macOS Settings window is an exception to the Flutter interface: the README identifies it as native SwiftUI.
This design is meaningful for an adoption decision. Flutter can present a consistent interface across three desktop platforms, while Rust can own operations involving OCR, translation requests, settings and dictionaries. However, the README does not document every supported translation engine, its exact provider configuration, or the supported source languages. Buyers and evaluators should not treat the phrase “engine of your choice” as a complete provider matrix.
Rust Services Behind the Flutter Interface
The application has a split architecture rather than a Flutter-only implementation. Its visible desktop UI is built with Flutter, and the README identifies settings, translation, OCR and dictionary as Rust core services. Those services are reached through generated FFI bindings. The top-level `Cargo.toml` also connects that architecture to the repository: it defines a Rust workspace containing `crates/api-core`, `crates/core`, `crates/engine` and `packages/runtime/rust`.
The workspace dependency list provides more detail about the implementation surface. It includes `reqwest` with `rustls-tls`, streaming and JSON support for network requests, `tokio` for asynchronous execution, and `uniffi` version `=0.31.2` for bridge generation. `wasm-bindgen` is also declared. These entries support the documented division between application code and core services, but the README does not publish a complete request trace from captured selection to displayed translation.
The repository also links to `nativeapi`, which the README describes as the native window, tray and shortcut layer. That dependency is relevant to BeyondTranslate CE's desktop behavior, although its exact APIs are not documented in the project README. For engineers, the practical concern is code generation: `AGENTS.md` reportedly describes the repository layout, Flutter and Rust bridge, and code-generation workflow. Contributors should read that file rather than assume that Dart and Rust interfaces can be changed independently.
Installing BeyondTranslate CE on Desktop Platforms
End users can download installers for macOS, Windows and Linux from the GitHub Releases page. The project website also lists other installation methods and release notes. On macOS, Homebrew provides the shortest documented installation path. The README says that Homebrew clears the unsigned application's quarantine problem.
The following command installs the `beyondtranslate-ce` cask from the project's tap:
brew install --cask beyondtranslate/tap/beyondtranslate-ceAfter installation, the command should place BeyondTranslate CE in the macOS application environment so it can be opened from Applications. The README does not give a separate first-launch configuration command.
Linux packages also require native desktop libraries. The `.deb` declares GTK 3, X11 and XInput dependencies, while the AppImage expects those libraries to be present on the system. For macOS users who install the DMG manually, the application is not notarized and macOS will refuse to open a fresh copy. The README documents this one-time command:
xattr -dr com.apple.quarantine "/Applications/BeyondTranslate-CE.app"That command removes the quarantine attribute from the installed application. It is specific to a manual DMG installation; the README does not require it when the Homebrew cask is used. The Windows installation method is not described beyond directing users to Releases.
Running the First BeyondTranslate CE Build
Source builds require Flutter on the stable channel, Rust on a stable toolchain and Python 3 for repository scripts. The README records Flutter 3.47.5 as the version used by CI. Flutter's native-assets hook compiles the Rust runtime during an application build. Linux developers also need the Flutter desktop toolchain and development headers for the native window layer.
On Linux, install the documented native packages with:
sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev libx11-dev libxi-devThis command installs the build tools named in the README for the Linux native layer. It does not install Flutter, Rust or Python 3, so those prerequisites must already be present.
After cloning the repository, bootstrap its Dart workspace as follows:
git clone https://github.com/beyondtranslate/beyondtranslate-ce.git
cd beyondtranslate-ce
dart pub get
dart run melos bootstrapThese commands retrieve the repository, enter its directory, resolve Dart packages and bootstrap the configured workspace. To launch the desktop application, use:
cd apps/desktop/flutter
flutter run -d macosThe README gives `macos` in this example and notes that `linux` or `windows` are the alternatives. A successful launch should start the desktop app selected through `-d`. The documentation does not specify a built-in OCR test string or a default translation provider, so the first functional check requires user-selected text and an engine configured in the application.
Release Cadence, Native Tooling and Upgrade Cost
The project is not archived. Its last push was on 2026-10-13, and the listed v0.6.0 release was published on 2026-10-03. That establishes current repository activity without proving that every platform or engine behaves identically. The release history also contains a substantial gap between v0.4.0 on 2022-06-05 and v0.5.0 on 2023-06-03, followed by v0.6.0 in 2026. This history suggests that upgrade planning should account for uneven release intervals rather than assume a fixed schedule.
For end users, the immediate upgrade cost depends on the package format. GitHub Releases provides platform downloads, while Homebrew provides a documented macOS cask. Native library requirements remain part of Linux deployment because both `.deb` and AppImage depend on GTK 3, X11 and XInput. A source build has a higher toolchain burden because it requires Flutter, Rust, Python 3 and, on Linux, several native development packages.
BeyondTranslate CE uses the AGPL-3.0 license. This is a direct consequence for organizations considering modification, redistribution or network use, although this review does not provide legal advice. The repository includes a `LICENSE` file and links to it from the README. Engineers should also account for changes around generated FFI bindings and the Rust workspace when moving between development builds.
BeyondTranslate CE Constraints and a Different Integration Model
The clearest limitation is incomplete operating-system coverage in installation details. Windows is listed as supported and has downloadable releases, but the README does not describe its prerequisites or first-run behavior. macOS has a specific notarization issue for manual DMG installation. Linux has explicit library requirements that could prevent a clean launch on a minimal system.
The documentation is also light on provider controls. It says the application supports multiple engines and lets users choose an engine, but it does not enumerate those engines, credential fields, rate limits, offline behavior or privacy handling. This makes BeyondTranslate CE a poor fit for an evaluation that requires a fixed provider matrix on day one. It is also unsuitable for anyone who expects a documented headless API: the repository describes a desktop application and internal service architecture, not a public translation API.
A real alternative is a conventional browser-based or developer-oriented translation integration. Such an approach sends text to a documented web service and receives a structured response that the calling program renders itself. BeyondTranslate CE instead centers on desktop screen selection and a user-facing application, with native shortcuts and platform integration supplied by `nativeapi`. The former fits service automation and custom application interfaces; BeyondTranslate CE fits interactive translation of visible desktop text. Neither approach should be selected solely from the word “translation,” because their integration boundaries are different.
Editorial conclusion
BeyondTranslate CE is a practical choice for desktop users who want selectable screen translation, especially on macOS where Homebrew avoids the manual quarantine workaround. It is less suitable for teams that require a commercial license without reviewing AGPL obligations, or for developers who need a documented cloud translation service. Verify first that your target operating system, required Linux libraries and intended translation providers are supported by your installed release.
Frequently asked questions
Which operating systems does BeyondTranslate CE support?
The README lists macOS, Windows and Linux. Downloads for all three platforms are available from the GitHub Releases page.
How do I install BeyondTranslate CE on macOS?
The documented Homebrew command is `brew install --cask beyondtranslate/tap/beyondtranslate-ce`. A manual DMG installation also requires removing the quarantine attribute because the app is not notarized.
What do I need to build BeyondTranslate CE from source?
The README requires stable Flutter, stable Rust and Python 3. Linux builds also require the Flutter desktop toolchain plus the native development packages listed in the project instructions.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/beyondtranslate-beyondtranslate-ce)Was this useful?