{"id":51111373,"url":"https://github.com/vasovagal/corti","last_synced_at":"2026-06-24T18:00:57.438Z","repository":{"id":362961396,"uuid":"1254507588","full_name":"vasovagal/corti","owner":"vasovagal","description":"Auditory addon for the vagus second brain: auto-records meeting audio (Zoom/Slack/Meet/Discord) and files diarized transcript notes. macOS, Apple Silicon.","archived":false,"fork":false,"pushed_at":"2026-06-18T00:32:00.000Z","size":968,"stargazers_count":2,"open_issues_count":22,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-18T01:07:16.053Z","etag":null,"topics":["audio-capture","core-audio","macos","rust","second-brain","transcription","vagus"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vasovagal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-30T16:49:18.000Z","updated_at":"2026-06-18T00:32:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vasovagal/corti","commit_stats":null,"previous_names":["vasovagal/corti"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vasovagal/corti","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vasovagal%2Fcorti","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vasovagal%2Fcorti/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vasovagal%2Fcorti/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vasovagal%2Fcorti/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vasovagal","download_url":"https://codeload.github.com/vasovagal/corti/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vasovagal%2Fcorti/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34743465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio-capture","core-audio","macos","rust","second-brain","transcription","vagus"],"created_at":"2026-06-24T18:00:56.437Z","updated_at":"2026-06-24T18:00:57.428Z","avatar_url":"https://github.com/vasovagal.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# corti\n\n**Auditory addon for the [vagus](https://github.com/vasovagal/vagus) second brain — Granola\nwithout the SaaS.**\n\ncorti is a macOS menu-bar app that turns your meetings into searchable notes, automatically.\nWhen another app grabs the microphone — Zoom, Slack huddles, Google Meet, Discord — corti\nstarts recording (a blinking tray icon); when the mic is released, it transcribes the call to\ndiarized, timestamped Markdown and files it straight into your vagus inbox. No \"join meeting\"\nbot, no upload, no account.\n\nNamed after the **Organ of Corti** — the cochlear receptor that transduces sound into neural\nsignals. Exactly what this app does: audio → notes.\n\n## Features\n\n- **Zero-touch capture.** Detects calls automatically from the macOS mic-in-use signal — no\n  buttons, no scheduling, no per-app integrations.\n- **Both sides, cleanly separated.** Records your mic and the far-end audio as a synchronized\n  2-track WAV through a single CoreAudio aggregate device — no virtual audio drivers, no\n  ScreenCaptureKit.\n- **Knows who you were talking to.** Attributes each recording to the app that owned the call.\n- **Echo cancellation on lossless audio.** An FDAF adaptive filter strips speaker bleed from\n  the mic track when you're on speakers, plus a residual echo suppressor that eliminates the\n  faint ghosts the adaptive filter can't model — so the transcriber doesn't misattribute bleed\n  as \"Me.\" The mic and far-end are captured as separate lossless tracks (the far-end as a mono\n  echo reference) so the filter sees bit-exact audio.\n- **Diarized, timestamped transcripts.** Clean Markdown with word-level timestamps and\n  **Me** / **Them** speaker labels, dropped right into your vagus vault.\n- **Two transcription backends, picked at runtime.** **AWS Transcribe** for cloud accuracy,\n  or a **fully offline on-device** backend (NVIDIA Parakeet-TDT-0.6B-v3 via ONNX) when nothing\n  may leave the machine. Both compile in; choose with `CORTI_TRANSCRIBE_BACKEND`.\n- **Standalone `corti-tap` CLI.** Force-tap system audio to a WAV on demand\n  (`corti-tap --inbox` to transcribe + file, `--no-mic` for listen-only webinars,\n  `--label` to name it).\n\n**How it works:** detect → capture (mic + system tap) → echo-cancel → transcribe → file to\nvagus (via the `vagus` CLI; corti never writes your vault directly).\n\n## Install\n\n```sh\nbrew tap vasovagal/corti\nbrew install --cask corti\n```\n\ncorti launches into the menu bar. On first run macOS prompts once for **Microphone** and\n**System Audio Recording** — grant both and you're done. (Distributed via a private cask;\npre-1.0.)\n\n**Requirements:** Apple Silicon, macOS 15+.\n\n## Speed \u0026 privacy\n\nThe offline backend runs **~30–60× realtime** on Apple Silicon — a 1-hour call transcribes\nin roughly **1–2 minutes**, CPU-only, with no GPU dependency. Models are a ~0.7 GB one-time\ndownload cached under `~/Library/Caches/corti/models/`; after that the local path makes **zero\nnetwork calls** — audio and transcript never leave the device. Prefer cloud accuracy? Point\n`CORTI_TRANSCRIBE_BACKEND=aws` at AWS Transcribe instead. Either way, capture and\ntranscription run in the background; the UI never blocks.\n\n## AEC tuning\n\nThe echo canceller works out of the box for typical laptop-speaker setups. Individual\nparameters can be set via environment variables (`CORTI_AEC_FILTER_LEN`, `CORTI_AEC_MU`,\n`CORTI_AEC_POWER_SMOOTHING`, `CORTI_AEC_DOUBLE_TALK_RATIO`, `CORTI_AEC_SUPPRESS_RESIDUAL`) or\npersisted in `config.toml`.\n\n\u003e The automated `corti --calibrate-aec` parameter sweep was dropped per\n\u003e [ADR 0007](./design/adr/0007-streaming-aec-first.md) (streaming AEC-first): it depended on\n\u003e persisted raw 2-track recordings, which the no-durability/no-raw-retention stance removes.\n\u003e See [`design/04a-aec-calibration.md`](./design/04a-aec-calibration.md) for the original\n\u003e tuning analysis.\n\n## Status\n\nThe full pipeline is built and tested end-to-end (detect → capture → AEC → transcribe →\nvagus, crash-recoverable), with both transcription backends working. The live join-call → note\nloop needs a signed `.app` to exercise the macOS audio-capture (TCC) grant. See\n[`design/STATUS.md`](./design/STATUS.md).\n\n## More\n\n- [`CONTRIBUTING.md`](./CONTRIBUTING.md) — build, test, workspace layout, dev setup.\n- [`design/`](./design/) — ADRs, guardrails, and the rationale behind the stack.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvasovagal%2Fcorti","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvasovagal%2Fcorti","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvasovagal%2Fcorti/lists"}