This page provides an introduction to the developer resources available for contributing to or building on the Omi platform. It covers the repository structure, multi-platform toolchains, environment initialization, and high-level CI/CD workflows across mobile (Flutter), backend (FastAPI), desktop (Swift/Node.js), and firmware (Zephyr/nRF).
For detailed technical instructions, refer to the child pages linked at the bottom of this document.
The Omi repository is a monorepo organized into platform-specific directories. Each major component has its own setup scripts and dependency management.
Sources: AGENTS.md18 desktop/run.sh12-42 docs/getstartedwithomi.mdx13-34 app/README.md11-28
The following diagrams bridge high-level system concepts to the specific code entities and services that implement them.
This diagram maps the "Natural Language Space" of user features to the "Code Entity Space" of the backend architecture.
Sources: AGENTS.md57-88 docs/doc/developer/backend/backend_deepdive.mdx32-82
This diagram maps device connectivity and capture features to the Flutter and native bridge entities.
Sources: AGENTS.md80-81 docs/doc/developer/backend/backend_deepdive.mdx122-136
Omi development requires several language-specific toolchains. Prerequisites vary by target, as detailed in the setup guides.
| Component | Language | Primary Tools | Config Method |
|---|---|---|---|
| Mobile | Dart/Flutter | Flutter SDK (3.35.3), Xcode (16.4), Android Studio | setup.sh + .env |
| Backend | Python | FastAPI, Uvicorn, Redis, Pytest | pip install + .env |
| Desktop | Swift/Node.js | xcrun, Swift PM, Node.js (ACP Bridge) | run.sh |
| Firmware | C | Zephyr RTOS, nRF SDK, Docker | West Build System |
| Web | TypeScript | Next.js, npm | npm install |
Sources: AGENTS.md32-40 desktop/run.sh31-33 docs/doc/developer/AppSetup.mdx30-51 docs/doc/developer/AppSetup.mdx147-154
bash setup.sh ios/android which handles pub get, build_runner, and flavor configuration for dev and prod. docs/doc/developer/AppSetup.mdx71-113 AGENTS.md18-19.env file for API keys (OpenAI, Deepgram, Redis, Pinecone). Developers must follow strict import hierarchies and use specific executors (e.g., db_executor, llm_executor) for blocking calls in async contexts. AGENTS.md32-39 backend/README.md49-63desktop/run.sh. It handles building the Swift app, starting a local Rust backend (if not skipped), and managing process lifecycles. desktop/run.sh144-165West build tool. Docker-based environments are recommended to ensure toolchain consistency. docs/getstartedwithomi.mdx75-76The project enforces strict coding guidelines through pre-commit hooks and automated checks:
sanitize() and sanitize_pii() from utils.log_sanitizer for logging sensitive data. AGENTS.md41-48l10n via ARB files. AGENTS.md92-93test -f .git/hooks/pre-commit || ln -s -f ../../scripts/pre-commit .git/hooks/pre-commit. AGENTS.md17flutterfire config for specific flavors. docs/doc/developer/AppSetup.mdx204-229run.sh provides a --yolo mode for quick testing against production backends. desktop/run.sh49-72backend/charts/. AGENTS.md78For detailed documentation on specific areas, please visit:
pytest for backend unit tests and integration tests for transcription. AGENTS.md28-29Refresh this wiki
This wiki was recently refreshed. Please wait 3 days to refresh again.