sozvon

mcp
Guvenlik Denetimi
Basarisiz
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 8 GitHub stars
Code Basarisiz
  • exec() — Shell command execution in build.sh
  • rm -rf — Recursive force deletion command in build.sh
  • fs module — File system access in build.sh
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Record calls on your Mac and transcribe them locally: speakers, summaries, search, notes. MCP for Claude Code and Codex, optional own Cloudflare server for Claude and ChatGPT on the phone.

README.md

Sozvon

Sozvon

Records calls on your Mac and transcribes them locally: who said what, with timestamps, plus a summary with decisions and action items.

CI Security MIT

Download for Mac · Website · Documentation · Русский

Calls window

Features

Recording, transcription and speaker separation run on your Mac. Audio leaves it only for your own server, if you set one up. Every detail is in the documentation.

Recording

  • One button. A floating panel above all windows, or a menu bar icon. Works with Zoom, Google Meet, FaceTime, Telegram, TrueConf, anything. No virtual audio drivers.
  • Notices calls. Asks "A call is on in Zoom. Record?". Can also start and stop by itself, if you turn that on.
  • Filled in from Calendar. After Stop, the topic, people and project are already in the form.
  • Later. No time to describe the call? It waits in the menu, and Sozvon reminds you.
  • Mark what matters. Press the star or ⌃⌥I: that moment is starred in the transcript and explained in the summary.
  • Never a silent recording. If your mic or the other side goes silent for two minutes, Sozvon captures that audio again.

Clean sound

  • No echo without headphones. The other side's voice is removed from your mic, on the Mac, with a small neural model (11 MB). Nearby voices are kept, though one much quieter than the speakers can come out quieter.
  • A quiet mic is raised. And Sozvon warns you during the recording if you are barely audible.
  • Even volume in the player. Loud stretches are lowered and quiet speech is raised a little.

Who said what

  • Separate tracks. You and the other side are recorded apart, and remote speakers are told apart by voice.
  • Names from the conversation. The assistant works them out ("Masha, how are you?").
  • Knows voices. Save your voice in 20 seconds. Name someone once, and later calls of that project name them by themselves. Voice prints are biometric data: they stay on your Mac (and your own server, if you use one), and you can delete any of them.
  • Summary in the language of the call: overview, decisions, action items with owners, open questions. Optional, through Claude Code, Codex or Cursor on your own subscription.
  • Projects. People, terms and replacements per client, so names and jargon are spelled right.
  • Multiple languages in one call.

Your calls

  • Calls window. Grouped by day, with search across everything, including transcript text.
  • Listen along. Click a line and the call plays from there, at up to 2x.
  • Fix the transcript. Rename a speaker, swap two people, correct a word, and the project remembers the fix.
  • Notes. Yours or an assistant's, shown under the call and found by search.
  • Tasks to Reminders. Your action items go to Apple Reminders, with due dates when the call names a day.
  • Delete audio automatically after 7, 15, 30 or 60 days. Transcripts, summaries and notes stay.

Beyond calls

  • Reflections. Think out loud and get the main point, an analysis, what to do and open questions.
  • Recordings from your phone. Voice Memos saved to a folder are transcribed by themselves, or record in one tap with the Think Out Loud shortcut for iPhone.
  • Import recordings. Drop an m4a, mp3, wav, mp4 or mov onto the Calls window.

Assistants and other devices

  • Claude, Codex and Cursor read your calls through MCP: "what did we decide with the client last week?".
  • Ask from your phone (optional). Claude or ChatGPT answer while the Mac is off, through your own server.
  • Sync across Macs. A second Mac on the same server gets your calls, audio, notes and voices.

Floating panel   Menu

Installation

  1. Download Sozvon.dmg from Releases and drag Sozvon to Applications, or run brew install --cask able1991/sozvon/sozvon. The app is signed and notarized by Apple.
  2. Launch it. The setup assistant asks for your name, the language of your calls, a recognition model and an assistant for summaries, then installs the engine: 5-10 minutes, 1-4 GB depending on the model. No tokens or sign-ups.
  3. Allow the Microphone, Screen Recording and System Audio Recording (System Settings shows the last two under Screen & System Audio Recording; setup and Settings > General > Permissions have buttons for each). Video is not recorded, only audio. System audio comes through a Core Audio process tap, so FaceTime calls are heard too. Setup ends with a three second test recording that proves recording works before the first call; until setup is finished, the rest of the menu is unavailable. Access to Reminders is asked only when you first use To Reminders. The call prompt needs no permission.

Updates install themselves: once a day Sozvon downloads a new version in the background and installs it when there is no recording, call or open window. Versions before 0.1.2 need one manual update.

Requirements: a Mac with Apple silicon (M1 or later), macOS 15 Sequoia or later. For summaries and project discovery: Claude Code, Codex CLI or Cursor CLI installed, optional.

Choosing a model   After a call

Recognition models

Model Size Languages Notes
Whisper Turbo (recommended) 1.6 GB 99 Fast and accurate, uses the project vocabulary
Whisper Large v3 3.1 GB 99 Most accurate, about 2x slower
Whisper Small 0.5 GB 99 For Macs with 8 GB of memory
GigaAM v3 (Sber) 0.2 GB Russian Light and fast, no project vocabulary
Parakeet v3 (NVIDIA) 0.7 GB 25 European Very fast, no project vocabulary

Speaker separation: pyannote (31 MB, installed with the app). Switch models in Settings → Recognition. The same tab has "Transcribe at low priority": transcription yields to other apps.

Claude Code, Codex and Cursor (MCP)

Settings → Assistants → Connect. Cursor has no mcp add command, so for Cursor Sozvon adds its entry to ~/.cursor/mcp.json itself, keeping comments and other servers; the Cursor app and Cursor CLI both read that file. While running, Sozvon keeps one shared MCP server on 127.0.0.1 for all sessions (about 40 MB). The assistant gets these tools:

Tool What it does
list_calls list calls: date, topic, project, people, duration; filter by any text
get_call summary and/or transcript of a call, with its notes
search_calls ranked search across all transcripts, summaries and notes, with timestamps; matches word forms; also takes 2-3 alternative phrasings of the query
get_commitments what people promised: action items from the summaries, by person or project
get_person a person across calls: how many and the last one, projects, who else was there, open commitments
add_note leave a note on a call (a decision, a follow-up); it shows in the Calls window
delete_note delete a note from a call, by the id get_call shows
transcribe transcribe any audio or video file
list_profiles, add_terms, add_replacement, remove_replacement projects, terms and replacements
list_models, show_vocab, preview_prompt models, the vocabulary and the hint the model gets

Manual setup and details: documentation. The server requires the token from ~/Library/Application Support/Sozvon/.mcp-token.

Your own server (optional)

Ask Claude or ChatGPT about your calls from your phone or the web while the Mac is off. The server runs in your own free Cloudflare account, so your calls never reach us or any shared service, and you can delete everything at any time.

Set up: Settings > Cloud > Connect Cloudflare, then Allow. Open Claude (or ChatGPT) on the same tab adds it as a connector.

What goes up When
Text of your calls always
Call audio Send call audio, on by default. The free plan holds about 80 hours, then only text syncs
Voice prints Send voice prints, on by default. Other people's voices are then your responsibility, including their consent
  • Claude and ChatGPT get text only, never audio or voice prints. They can list, read and search calls and add or delete notes, but never change or delete a call.
  • Second Mac. Connect it to the same server: it downloads your calls with audio, notes and voices, and the connectors stay signed in.
  • Deleting. Only calls you delete in Sozvon are deleted on the server. On your other Macs they go to the Trash.
  • Updates. When a new Sozvon brings a new server, press Update server on the Cloud tab once.

How it works: docs/SERVER.md.

What goes online

What Where When
Recording, transcription, echo removal, speaker separation, imported recordings nowhere, only ~/Documents/Calls always
The calls folder, audio and transcripts included iCloud Drive, synced by macOS and not by Sozvon only if Desktop & Documents Folders is on in iCloud Drive settings; turn it off to keep the calls off iCloud
Voice prints (your sample and the people you named) nowhere, ~/Library/Application Support/Sozvon/voices once you record a sample or name a speaker
Live voice match during a recording (only if voices of other people are saved; pieces of the other side's audio, deleted as soon as they are matched) nowhere, stays on the Mac while recording
Which app is using the microphone (for the call prompt; only the app, never the audio) nowhere, read on the Mac always while Sozvon runs
The meeting at the time of a recording (title, attendees) for the call form nowhere, read from Calendar on the Mac after each recording, unless turned off in Settings
Tasks and notes you send to Reminders nowhere, the Reminders app on this Mac (if Reminders syncs through iCloud, Apple syncs them further) only when you press To Reminders
Recordings from your phone the folder you chose (in iCloud Drive, Apple syncs the files and their move to Imported) only if you choose a folder
Python environment, models PyPI, huggingface.co once, during setup
Echo removal model (11 MB) huggingface.co once, during setup, or at the first launch after the update that brings it
uv binary (if missing), CPython for uv sync, fallback archive of the speaker separation models (release models-v1) github.com once, during setup
Transcript text for the summary and speaker names Anthropic (Claude Code), OpenAI (Codex) or Cursor and the model chosen in it only if an assistant is selected
Whatever the assistant reads through MCP Anthropic, OpenAI or Cursor only when you ask it
Project discovery: project folder names, memory notes in ~/.claude (or sessions in ~/.codex, or past chats in ~/.cursor/projects), replies of open sessions. Claude is limited to reading inside ~/.claude. Codex runs in a read-only sandbox: it blocks writes but not reads, and the model itself decides what it reads. Cursor runs in read-only ask mode, and its limit to those folders is also only an instruction Anthropic, OpenAI or Cursor only when you click Find Projects
Updates github.com: the latest release's appcast.xml, and the new DMG when there is one once a day; automatic install can be turned off in Settings > About
Transcripts, summaries, notes and call details, so Claude or ChatGPT can answer from your phone your own server in your own Cloudflare account, never us (how it works) only if you set one up
Call audio, so a new Mac can play your calls (never shown to Claude or ChatGPT) your own server in your own Cloudflare account only with your own server and Send call audio on (the default)
Voice prints, so your other Macs recognize the same voices (never shown to Claude or ChatGPT) your own server in your own Cloudflare account only with your own server and Send voice prints on (the default)
Cloudflare sign-in and setup: creating the database, the sign-in storage and the Worker in your account dash.cloudflare.com, api.cloudflare.com only when you press Connect Cloudflare or Update server

No telemetry and no servers of our own. Choose "Local only", skip the own server, and nothing except the update check leaves your Mac. Every commit is checked by Gitleaks, Semgrep and CodeQL.

How it works

Package.swift       SwiftPM: SozvonCore (logic, covered by tests) + Sozvon (the app)
Sources/SozvonCore/ recording state, transcription queue, engine launcher, call.json, settings
Sources/Sozvon/     menu bar, recording (Core Audio process tap, ScreenCaptureKit), panel, SwiftUI windows, MCP server
Tests/              XCTest for SozvonCore
engine/
  sozvon_engine/    engine: recognition, pyannote, languages, vocabularies, projects, summary, MCP
  bin/              process_call.py (full pipeline), discover_projects.py (project discovery), sync_server.py (own server sync), voice.py (voice prints)
  server.py         MCP server (stdio or shared HTTP)
  models.json       models with pinned revisions
  setup.sh          installs the engine into ~/Library/Application Support/Sozvon
server/             optional own server: Cloudflare Worker + D1 + KV, MCP for Claude and ChatGPT connectors, sync API
docs/               website (GitHub Pages), CONTRACT.md (app and engine contract), SIGNING.md, SERVER.md
build.sh            builds the .app and .dmg, signing, notarization

After Stop: tracks are aligned → a very quiet track is raised and the other side's echo is removed from the microphone → recognition with hints from the project → speaker separation → names from saved voice prints, then from context → transcript.md, summary.md → the levelled listen.m4a for the player.

Building and testing

git clone https://github.com/Able1991/sozvon && cd sozvon
./test.sh              # Python, localization, the own server (with Node.js 22+), Swift
SLOW=1 ./test.sh       # plus end-to-end tests with real Whisper
./build.sh install     # ~/Applications/Sozvon.app
./build.sh dmg         # build/Sozvon.dmg

Requires Xcode Command Line Tools and uv. Optional: Node.js 22 or later, to bundle the server into the app for Connect Cloudflare (without it the app builds, and the button says it is unavailable) and to run the server tests (./test.sh skips them without it; in CI they are required). Signing and releases: docs/SIGNING.md.

License

MIT. Models: Whisper (MIT), pyannote (MIT, CC BY 4.0), GigaAM (MIT), Parakeet (CC BY 4.0), LocalVQE (Apache 2.0).

Yorumlar (0)

Sonuc bulunamadi