Development

Prerequisites

  • mise β€” tool version manager
  • Git

mise will install the correct versions of Go, Node, and other tools automatically.

Setup

git clone https://github.com/yuler/airvoice.git
cd airvoice
mise trust
mise install

Project Structure

airvoice/
β”œβ”€β”€ cli/          # Go CLI β€” WebSocket server + keystroke injection
β”œβ”€β”€ ios/          # iOS SwiftUI app
β”œβ”€β”€ www/          # Documentation site (Astro)
β”œβ”€β”€ scripts/      # Build and dev scripts
β”œβ”€β”€ mise.toml     # Task runner + tool versions
└── go.mod

Common Tasks

TaskCommand
Build CLImise run cli:build
Run servermise run cli:dev
Run testsmise run cli:test
Build iOS (simulator)mise run ios:dev
Build iOS (device)mise run ios:build
Docs dev servermise run www:dev
Build docsmise run www:build

iOS Development

Open the project in Xcode:

open ios/Airvoice.xcodeproj

The project uses XcodeGen to generate project.yml. If you modify project settings, edit ios/project.yml and regenerate:

xcodegen generate

Signing

For device builds, create your signing config:

cp ios/Signing.xcconfig.example ios/Signing.xcconfig

Edit ios/Signing.xcconfig and set DEVELOPMENT_TEAM to your Apple Team ID (find it in Xcode β†’ Settings β†’ Accounts).