local-dev

Start Local Development Environment

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "local-dev" with this command: npx skills add basedhardware/omi/basedhardware-omi-local-dev

Start Local Development Environment

Start the backend server, macOS app, or Flutter mobile app for local development.

Usage

Run /local-dev to start both the backend and macOS app, or:

  • /local-dev backend

  • start backend only

  • /local-dev app

  • build and run the macOS app (debug mode)

  • /local-dev app --clean

  • clean build and run (forces Swift recompilation)

  • /local-dev app --release

  • build and run in release mode

  • /local-dev mobile

  • run Flutter app in iOS simulator (dev flavor, dev backend)

  • /local-dev mobile --prod

  • run Flutter app in iOS simulator (prod flavor, prod backend)

Commands

Backend

cd backend lsof -ti:8000 | xargs kill -9 2>/dev/null || true python3 -c "from dotenv import load_dotenv; load_dotenv(); import subprocess; subprocess.run(['python3', '-m', 'uvicorn', 'main:app', '--host', '0.0.0.0', '--port', '8000', '--reload'])"

macOS App

app/scripts/dev-macos.sh $EXTRA_ARGS

Where $EXTRA_ARGS can be:

  • --clean

  • force clean build (removes build cache, ensures Swift recompilation)

  • --release

  • build in release mode instead of debug

  • --no-run

  • build only, don't launch the app

Flutter Mobile (iOS Simulator)

  • Find or boot a simulator:

xcrun simctl list devices | grep Booted # check for running simulator

If none booted:

xcrun simctl list devices available | grep -i "iphone" | tail -5 xcrun simctl boot <device-id> open -a Simulator

  • Run the app:

cd app && flutter run -d <device-id> --flavor dev

Or for prod backend:

cd app && flutter run -d <device-id> --flavor prod

Logs stream to /tmp/flutter-run.log .

Flavor & Env Files

Flavor Env file Backend Agent proxy

dev

app/.dev.env

api.omiapi.com

agent.omiapi.com

prod

app/.env

api.omi.me

agent.omi.me

Dev flavor has USE_WEB_AUTH=false (native sign in). Prod has USE_WEB_AUTH=true (Safari OAuth). The simulator works best with native sign in — use dev flavor for simulator testing.

After changing any .env file, regenerate the compiled env:

cd app && rm -rf .dart_tool/build lib/env/prod_env.g.dart lib/env/dev_env.g.dart dart run build_runner build --delete-conflicting-outputs

Simulator Notes

  • iOS Keychain persists across app uninstalls in the simulator, so Firebase Auth sessions survive reinstalls

  • claudeAgentEnabled defaults to false on fresh install — toggle it on in Settings → Developer Mode

  • The Flutter debug connection frequently dies ("Lost connection to device") when the app goes to background — the app itself keeps running, just relaunch flutter run

  • Logs: grep -E "[AgentChat]|[HomePage]" /tmp/flutter-run.log | tail -20

  • Hot restart: kill -SIGUSR2 $(pgrep -f "flutter run" | head -1)

Argument Handling

When $ARGUMENTS is "backend", only start the backend. When $ARGUMENTS is "app", build and run the macOS app. When $ARGUMENTS starts with "app ", pass remaining args to the script (e.g., "app --clean"). When $ARGUMENTS is "mobile", run Flutter app in iOS simulator with dev flavor. When $ARGUMENTS is "mobile --prod", run Flutter app in iOS simulator with prod flavor. When $ARGUMENTS is empty or "all", start both backend and macOS app.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

omi-plugin-development

No summary provided by upstream source.

Repository SourceNeeds Review
General

rotate-key

No summary provided by upstream source.

Repository SourceNeeds Review
General

self-improvement

No summary provided by upstream source.

Repository SourceNeeds Review