TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
전역 단축키로 녹음하고 Codex·Antigravity로 전사, macOS 활성 앱에 텍스트 삽입, 회의 녹음 시 스피커 표시와 요약 제공
Record with a global shortcut, transcribe through Codex or Antigravity, and insert text into the active macOS application. Record meetings and get a transcript with speakers and a summary.
생산성Rust · TypeScriptGitHub @DailyXplorer온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Voice dictation for macOS and Windows: hold a shortcut, speak, and get clean text pasted where you type. Transcription and AI cleanup through your Codex account.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Murmur is a free desktop speech-to-text app for macOS and Windows (beta). Press a shortcut, speak, and Murmur pastes the transcription into the active application.
Murmur transcribes on your computer: the audio stays there, there is no quota, and no account is needed. Sign in with a ChatGPT account from Murmur to add AI cleanup, dictation styles, more languages and cloud transcription. It requires no API key and no separate Codex app.
Murmur keeps the ChatGPT session in the file the Codex apps use, so both share
one sign-in: CODEX_HOME/auth.json,
or else ~/.codex/auth.json on macOS and %USERPROFILE%\.codex\auth.json on
Windows. When the access token is about to expire, or when the
service rejects it, Murmur refreshes the session the same way the Codex CLI
does and writes the new tokens back to that file. It changes only the token
fields and last_refresh, keeps the file private (mode 600), and replaces it
in one step. If Codex updated the file while Murmur was refreshing, Murmur
keeps the Codex version. When the refresh token itself has expired, sign in
again from Murmur.
Murmur uses an internal service rather than a public, documented API: the ChatGPT transcription endpoint that the Codex apps use. It promises no stability, so a Codex or ChatGPT update can break transcription without notice until Murmur is updated. Murmur identifies itself to the transcription endpoint the way the Codex desktop app does. Use of these services stays subject to the provider's terms for your account.
aarch64 for Apple Silicon, x64 for Intel.Murmur's built-in updater installs releases signed with the same certificate, so macOS keeps both permissions and asks nothing again after an update. Murmur does not store anything in the keychain.
Murmur_…_x64-setup.exe from the first one in the list.The Windows source lives on the beta branch for now, not on main.
The Windows beta has dictation, transcription on the PC or in the cloud, AI cleanup with styles, names read from the active window, history, Insights, custom words, shortcut keys shown for your keyboard layout, sounds, and launch at login. It does not have Meetings or automatic updates yet.
Setup first offers to transcribe on this Mac. Download and continue starts the model's download in the background, so it runs while you grant microphone and Accessibility permissions; a small pill shows its progress until the model is ready. Use the cloud instead keeps the model off this Mac. A Mac that cannot run the model skips this step.
Then connect ChatGPT: Sign in finishes in your browser. If the Codex app is already signed in on this computer, Murmur uses that session. With local transcription this step is optional: Skip it to dictate without an account, without AI cleanup and the cloud's extra languages. With cloud transcription, ChatGPT must be connected before setup can finish. Until the model is ready, a connected account transcribes in the cloud; without one, dictation waits for the model.
"Configured" means Murmur found a local session that is valid or that it can refresh. A session that expired and has no usable refresh token shows as "Session expired". Configured does not prove that the cloud service will accept the next request, because network or account limits can still prevent transcription.
When a dictation fails, the recording overlay shows the reason for a few seconds. If the overlay is turned off, Murmur posts a macOS notification instead. Murmur retries a dictation twice after a timeout, a dropped connection, or a server error. It does not retry an expired session, a rate limit, or another rejected request. When Codex reports that its dictation usage limit is reached, Murmur resends the recording at once against ChatGPT's own dictation limit, and uses that limit for the next hour. A finished transcription is always kept in History, even when pasting or saving the recording fails.
Recordings longer than about 13 minutes exceed 25 MB of audio. The Codex transcription endpoint publishes no size limit, and the public OpenAI transcription API rejects uploads above 25 MB, so Murmur warns before it uploads a recording of that size. The upload timeout grows with the recording length.
Meetings are on by default and can be turned off in Settings → Advanced. Press Control+Option+Command+M, or choose Start meeting in the menu bar, to start recording; press it again to stop. You can pick other keys in Settings; if another app already holds them, the shortcut field says so. A red pill shows the elapsed time. A meeting stops by itself after 3 hours, with a warning 5 minutes before.
audio.m4a (about 30 MB per
hour), which you can delete while keeping the text.Releases are signed with a stable Murmur certificate, so macOS keeps the Accessibility and microphone permissions from one update to the next. Earlier releases were signed ad hoc. After the first update from an ad hoc release, grant Accessibility and microphone access to Murmur once more. If the Accessibility switch already looks enabled but Murmur keeps waiting, use the repair button on the permissions screen, or follow the reset steps in BUILD.md.
Cancel stops a transcription before its result is inserted. If the text has already been pasted, cancellation still prevents a pending automatic Enter. The pasted text and its history entry remain available.
murmur --toggle-transcription
murmur --cancel
murmur --start-hidden
murmur --no-tray
murmur --debug
murmur --transcribe-file recording.wav --json
On Unix systems, SIGUSR2 also toggles transcription for a running instance:
pkill -USR2 -n murmur
Prerequisites: the latest stable Rust toolchain and Bun.
bun install
bun run tauri dev
bun run build
bun run lint
bun run format:check
cargo test --manifest-path src-tauri/Cargo.toml
See BUILD.md for macOS dependencies, packaging, code signing, and notarization.
Murmur uses Tauri 2 with a Rust backend and a React/TypeScript frontend. The runtime pipeline is:
microphone -> quiet-speech gain -> local (Parakeet) or Codex transcription -> dictionary -> AI cleanup (Codex) -> clipboard/paste
The backend owns audio capture, the Codex session and its refresh, transcription, AI cleanup, history, Insights, shortcuts, and macOS integration. The frontend owns onboarding, settings, history, Insights, and the recording overlay.
In local mode your audio stays on this Mac. If ChatGPT is connected, the text (not the audio) is sent for AI cleanup, and audio goes to the cloud only when the local model can't help; History marks those. In cloud mode, audio sent for transcription leaves the computer and is handled by ChatGPT. Do not describe Murmur as offline while AI cleanup or the cloud fallback can run.
While AI cleanup is on, the transcript is sent to ChatGPT for cleanup. A cleanup request contains the transcript, your custom dictionary words, your dictation style, and the names and short excerpt around the cursor found in the frontmost window.
That context is read when a dictation starts, through Accessibility on the Mac and UI Automation on Windows, only while AI cleanup and the window-context setting are both on. It is never stored, and it leaves the computer only inside a cleanup request. Password fields and password managers are never read.
Meetings stay on the Mac, apart from two requests: the audio pieces sent to Codex for transcription, and the transcript sent to Codex for the summary. Speaker detection runs on the Mac. Its models are downloaded from Hugging Face once.
History, saved recordings, and Insights stay on the Mac. For Insights, Murmur records the frontmost app of each dictation and, in a browser, the site's host name. Insights store no dictated text. Murmur checks GitHub for updates, which can be turned off in Settings.
The Codex authentication cache is sensitive. Murmur reads the tokens needed for a request or a refresh, never logs them, and keeps no copy of its own. The only write is the token refresh described in Requirements.
Guarded paste saves the clipboard before it places the transcription there. By default, Murmur puts the saved items back, with every format they had, once the 8-second paste window ends. If you copy something else during that window, Murmur leaves your new clipboard alone. If insertion fails, Murmur keeps the transcription on the clipboard for manual paste. The Keep transcription option leaves the transcription on the clipboard after insertion.
Murmur is a fork of Handy, created by CJ Pais. It keeps parts of Handy's Tauri foundation, but most of Handy's original transcription engine and local-model stack have been removed. Murmur transcribes in the cloud through your ChatGPT account, or on the computer with Parakeet: FluidAudio on Apple silicon, and transcribe.cpp, the engine Handy uses, on Intel Macs and Windows.
Murmur is free. To support development, buy a coffee.
MIT. See LICENSE. The original copyright notice is preserved as required by the license.