Building Flicker
Build and run Flicker from source.
Flicker is a Tauri app: a React and TypeScript interface on top of a Rust core. The code is at EmberlyOSS/Flicker.
Prerequisites
| Tool | Version |
|---|---|
| Bun | 1.3+ |
| Rust | Latest stable |
| Tauri system dependencies | See Tauri's prerequisites for your system |
On Linux that means the WebKitGTK and build packages; on Windows, the Visual Studio C++ build tools and WebView2; on macOS, the Xcode command line tools.
Run It
This opens Flicker with hot reload for the interface. Changes to the Rust code rebuild the app automatically.
Build Installers
Installers for your current system are written to src-tauri/target/release/bundle/.
Official releases are built by GitHub Actions for Windows, macOS (Apple silicon and Intel) and Linux whenever a release is published. The updater artifacts are signed there, so local builds can't update themselves.
Project Layout
| Path | What it is |
|---|---|
src/ | The React interface: pages, settings, hooks |
src/components/overlays/ | The region capture overlay |
src-tauri/src/ | The Rust core: capture, hotkeys, uploads, tray and updates |
src-tauri/tauri.conf.json | App, window and bundle configuration |
Talking to Emberly
Flicker uses the public Emberly API: device sign-in to get its own API key, POST /api/files to upload, and GET /api/instance to see what the server supports.
Contributing
Read CONTRIBUTING.md for code style, commit messages and the pull request process. Bug reports and feature ideas go in Flicker's issues.