open-recording CoStaff Tools Get started
v0.2.0 is on npm →

The recording studio built for agents.

A browser-first recorder. The tab holds the microphone, the server keeps the session, and whisper.cpp on your own machine does the transcription. The audio stays put.

$ npx open-recording dev --mcp
The open-recording studio: every recording is a card carrying the opening words of its transcript.

The studio — every recording is a card carrying the opening words of its transcript

start_recording { title: "Product sync" }

→ waiting for the browser to confirm the mic · recording

01 · Why

You press stop, the agent knows at once.

Only a real browser tab can reach a microphone, so recording has to happen there. But the session, the files and the transcript live on the dev server — which is what makes it one recorder two people can drive, instead of two recorders.

01 · LOCAL

The audio stays on your machine

whisper.cpp does the whole transcription on your CPU. No API key, and it still works with the wifi off.

02 · SHARED

Either of you can stop it

Press stop in the page and the agent sees it immediately. It works the other way round too.

03 · FILES

Open the folder, it is all there

Audio, transcript, subtitles and notes sit in one directory. You never need this tool to read your own files.

$ ls recordings/<id>/
audio.webm transcript.md
meta.json notes.md
04 · SCRIPT

A meeting in Taipei reads like one

Whisper writes Simplified no matter what was spoken. Set the script and OpenCC converts it phrase by phrase — 软件 becomes 軟體, not 軟件 — every timestamp intact.

02 · For agents

Press record over MCP. Six tools, one endpoint.

Point the agent at localhost:5274/mcp. Ask it to start recording before the meeting, stop and transcribe after, then write the summary next to the audio.

start_recordingPress record. Returns once the browser confirms the mic is open.
stop_recordingStop and finalize. Pass transcribe: true to run whisper too.
read_transcriptTimestamped Markdown, plain text, or timed segments.
search_transcriptsSearch across every transcript, with millisecond offsets.
write_notesPark a summary or action items beside the audio.
recorder_statusIs anything recording, and is a studio connected to record through.

It refuses rather than pretend. Tab closed, microphone blocked — start_recording hands the agent a refusal that names the reason. Finding out after the meeting that nothing was recorded only has to happen once.

One recording: a seekable player, the four downloads grouped together, and the summary an agent wrote into notes.md.

A finished meeting — and the summary the agent wrote into notes.md

03 · Get started

Record your next meeting. One command. Arm the mic once.

Recording needs nothing else installed. Transcription wants whisper.cpp and ffmpeg — whichever is missing, doctor hands you the install command.

# studio at :5274, MCP endpoint at /mcp
$ npx open-recording dev --mcp

# optional — local transcription
$ brew install whisper-cpp ffmpeg
$ npx open-recording doctor
✓ ffmpeg    ✓ whisper    ✓ model    ✓ script

Free and open source under the MIT license.

The audio never leaves.No upload, no API key.

whisper.cpp does the whole transcription on your CPU. It works offline.