A cross-platform Flutter client for desktop agent sessions. Available on both desktop and mobile, its core goal is to let you complete product design, development, and testing workflows from mobile or via voice input.
Connects to omni-code-bridge, extending desktop agent capabilities to multiple devices and voice interaction.
See also: Plugin Writing Guide | Plugin Repository
- Refine core interactions — Improve sessions, approvals, notifications, and other key workflows
- Cross-project and cross-session voice interaction — Seamlessly switch between multiple projects and sessions by voice
- Task orchestration — Support multi-step task orchestration and automated execution
| Platform | Download |
|---|---|
| Android | APK (arm64) · APK (arm) · APK (x86_64) |
| Windows | zip |
| Linux | tar.gz |
| macOS | Homebrew ↓ |
| iOS | Build from source |
Homebrew (macOS):
brew install omni-stream-ai/omni-code/omni-codeArch Linux (AUR):
yay -S omni-code-binNix / NixOS (x86_64 Linux, built from source by default):
nix run github:omni-stream-ai/omni-codeSelect either package explicitly:
nix run github:omni-stream-ai/omni-code#omni-code-bin
nix run github:omni-stream-ai/omni-code#omni-codeInstall either package into your profile:
nix profile install github:omni-stream-ai/omni-code#omni-code-bin
# Or build and install from source
nix profile install github:omni-stream-ai/omni-code#omni-codeflutter pub get
flutter runSentry error and performance monitoring is enabled only when a DSN is supplied:
flutter run \
--dart-define=SENTRY_DSN=https://examplePublicKey@o0.ingest.sentry.io/0 \
--dart-define=SENTRY_ENVIRONMENT=development \
--dart-define=SENTRY_TRACES_SAMPLE_RATE=0.1 \
--dart-define=SENTRY_PROFILES_SAMPLE_RATE=0.1 \
--dart-define=SENTRY_MEMORY_THRESHOLD_MB=1024Request bodies, console breadcrumbs, UI text, credentials, URL query strings, and project/session identifiers are excluded from Sentry events.
Release builds read SENTRY_DSN from the GitHub repository variable with the
same name. SENTRY_TRACES_SAMPLE_RATE controls transaction sampling and
SENTRY_PROFILES_SAMPLE_RATE controls profiling; both default to 0.1.
SENTRY_MEMORY_THRESHOLD_MB controls the sustained-memory alert threshold and
defaults to 1024. The app samples process CPU and memory once per minute and
reports only sustained threshold breaches or recovered main-isolate stalls.
Configure these under Settings > Secrets and variables > Actions > Variables;
no Sentry auth token is needed. All monitoring stops when error reporting is
disabled in the app settings.
See CONTRIBUTING.md. The project TODO board is at GitHub Projects.
