Skip to content
bshbsh404Public

About

Private meeting recorder and transcriber for iPhone and Mac — Arabic, English and mixed, fully on-device.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Hams

A private meeting recorder and transcriber for iPhone and Mac. Record in-person meetings on your iPhone and online meetings on your Mac, get transcripts in Arabic, English or both mixed together, and turn them into summaries, decisions and action items — all on your own devices.

No account, no server, no cloud, no analytics. Speech recognition, speaker detection and meeting intelligence run on-device. The iPhone and Mac talk to each other directly over your local network, encrypted.

Features

Recording and transcription

  • Organizations → projects → meetings; recurring meetings grouped automatically from your calendar
  • Live transcript while recording, then an accurate final pass with WhisperKit
  • Arabic, English and mixed Arabic/English, chosen per utterance
  • Settings inherited from app → organization → project → recurring meeting → meeting (language, model, speakers, …)
  • Optional fast English-only engine for saved and live transcripts (NVIDIA Parakeet via FluidAudio), marked experimental
  • Model library with built-in models, models discovered from the WhisperKit repository without an app update, and custom Hugging Face models
  • Speaker detection with remembered voices

Trusting the transcript

  • Review: only the lines Hams is unsure about (low confidence, unsure words, missing speech, repetition, unfamiliar names, doubtful speaker changes)
  • Re-transcribe a selection with any model and language, with surrounding audio for context, and compare before replacing
  • Improve Transcript and Try Other Models; every line keeps its earlier versions
  • Repeated corrections suggest vocabulary

Understanding meetings (Apple Intelligence, on-device)

  • Summary, decisions, action items (owner, task, due), open questions and key moments — every item cites the moment it was said
  • Since Last Time for recurring meetings: new decisions, last time's commitments, open questions
  • Ask Hams: questions across a meeting, series, project, organization or everything, with cited sources

Hams for Mac

  • Menu bar app that records what your Mac plays (everyone else) and your microphone (you) as two tracks — headphones don't matter, and no bot joins the call
  • Transcribes on the Mac, identifies the other speakers, labels your lines with your name
  • Pairs with the iPhone using a 6-digit code shown on both screens; finished meetings arrive in the right project
  • Calendar nudge before meetings that belong to a project; start and stop from the iPhone

Apple integrations: Calendar and Reminders (two-way), Contacts, Siri and Shortcuts, Action Button, Focus filters, Spotlight, deep links.

Requirements

  • Xcode 27 or later, XcodeGen (brew install xcodegen)
  • iPhone with iOS 26 or later (Apple Intelligence for summaries and Ask Hams)
  • Mac with Apple Silicon and macOS 26 or later for Hams for Mac

Building

xcodegen generate
open Hams.xcodeproj

Signing is local. Create Config/Signing.local.xcconfig (it's git-ignored):

DEVELOPMENT_TEAM = ABCDE12345
HAMS_BUNDLE_ID = com.yourname.hams
HAMS_MAC_BUNDLE_ID = com.yourname.hams.mac

Then run the Hams scheme on an iPhone, or HamsMac on your Mac. Speech models download on first use.

Project layout

Path Contents
Hams/ iPhone app (SwiftUI, SwiftData)
HamsMac/ Mac menu bar app
Packages/HamsKit/ Shared code: data model and migrations (HamsCore), recording (HamsAudio), WhisperKit and SpeakerKit engines (HamsTranscription), Apple Intelligence engine (HamsIntelligence)
Packages/HamsBench/ Speech benchmark tool comparing engines and pipelines on your own recordings
HamsUITests/ UI tests
scripts/ Helpers for tests and the benchmark

Tests

cd Packages/HamsKit && swift test

UI tests run from the Hams scheme in Xcode. The full transcription UI test needs a model on the simulator: scripts/seed-simulator-model.sh <simulator-udid> openai_whisper-large-v3-v20240930_626MB.

Opt-in suites use real models or the network: HAMS_INTEGRATION=1, HAMS_FOUNDATION_MODELS=1, HAMS_NETWORK=1.

Speech benchmark

Packages/HamsBench compares speech pipelines on recordings with verified reference transcripts (word and character error rates, English kept inside Arabic sentences, key names and numbers). Cases live in ~/Documents/Hams Bench/cases: an audio file plus a .txt reference with the same name, prefixed en-, ar- or mixed-. In the app, Export › Benchmark Case produces both from a corrected meeting.

cd Packages/HamsBench && swift build -c release
.build/release/hams-bench --engine whisper --pipelines current,whisper-detects+regions --modes auto,forced

Building the benchmark needs Xcode's Metal Toolchain (xcodebuild -downloadComponent MetalToolchain).

License

MIT — see LICENSE. Third-party components and models: THIRD_PARTY_NOTICES.md.

About

Private meeting recorder and transcriber for iPhone and Mac — Arabic, English and mixed, fully on-device.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages