Skip to content

Command line

The meetcap command does what the app does, in Terminal. Your agent uses the same commands. This page lists each command and its options; meetcap <command> --help gives full details.

meetcap start
meetcap stop
meetcap status --all

The command line uses your library’s language. To change it, run meetcap setup --lang en or --lang zh.

Every command takes these options:

Option What it does
--json Print one JSON object instead of sentences.
--quiet Don’t show progress while a long command runs.
--library <path> Use the meeting library in this folder. Default: the one set with setup --library.
-h, --help Show the command’s options and rules.
-V, --version Show the version. Only with meetcap alone.

Commands that take <meeting> accept the meeting’s title, its folder name, or the path to its folder. If more than one meeting has that title, the command lists them and exits with code 2; use the folder name instead. A relative path starts from the current folder, and . is the folder you are in. With a path, MeetCap uses the library that folder is in.

These commands only show what they would do until you add --confirm: delete, audio clear, audio gc, people rename, people forget, setup --move-library, models remove, uninstall, diagnose, and feedback. Some commands that remove things take effect immediately, without --confirm, such as glossary remove, schedule remove, schedule off, and config set audio_retention.

Code Meaning
0 Done.
1 Something else went wrong, or you interrupted it. Whatever was recorded is saved.
2 The command line or a setting was wrong.
3 Not allowed right now, for example because a meeting is already being recorded.
4 A permission is missing, or you haven’t agreed to the Terms of Use or to sending meeting text to your endpoint.
5 The speech recognition model or the local model is missing or damaged.
6 Writing the minutes failed (MeetCap keeps the task, and meetcap doctor tries again), the service couldn’t be reached or the key was wrong, or the problem report wasn’t sent (MeetCap saved it as a file).
7 The meeting’s folder is damaged or in use elsewhere.

Start recording a meeting.

meetcap start [--title <title>] [--source mic|system|both] [--until <time>]
Option What it does
--title <title> Name the meeting. Default: the time it started.
--source <source> Record mic (the microphone), system (all audio on this computer, except MeetCap’s own), or both. Default: both. With system, the microphone starts off; meetcap mic on turns it on.
--until <time> Stop recording automatically at this time, which must be in the future. Write +90m, +2h, +30s, or YYYY-MM-DD HH:MM. Default: record until you stop it.
--participants <n> Set the maximum number of speakers, from 1 to 50. Not used with --source both. Default: MeetCap works it out from the audio.
--follow Stay and show each line as it is transcribed, and each summary as it is written. Ctrl-C stops showing; recording continues.
--summaries With --follow, show only the summaries.
--stats Save caption lag, processing speed, CPU, and memory in the meeting folder.

If MeetCap isn’t allowed to record one of the sources, it records the other and says where in System Settings to turn it on. If neither is allowed, recording doesn’t start. To transcribe a recording you already have, use transcribe.

Stop the meeting being recorded, and save it.

meetcap stop [<meeting>] [--wait]
Option What it does
<meeting> Stop this meeting. Default: the meeting being recorded.
--wait Wait until the meeting is saved. Default: return as soon as the stop is sent.
--discard For a recording being transcribed only: stop at once, save nothing, and move the meeting to the Trash. The original file isn’t touched.

Pause the meeting being recorded, and resume it.

meetcap pause [<meeting>]
meetcap resume [<meeting>]

While a meeting is paused, nothing is recorded, and no captions or summaries are written. The paused time doesn’t count toward the meeting’s duration. You can still stop a paused meeting, and it still stops at the time you set with --until. A meeting transcribed from a recording can’t be paused. If MeetCap isn’t allowed to record when you resume, the meeting stays paused.

Turn MeetCap’s microphone off or on in the meeting being recorded.

meetcap mic off|on [<meeting>]

When it’s off, MeetCap records nothing on your side. Your meeting app still uses the microphone, and the other side still hears you. on needs permission to use the microphone and asks for it if it hasn’t been asked yet.

Show what a meeting is doing, or how the last one ended.

meetcap status [<meeting>] [--all] [--follow]
Option What it does
<meeting> Report on this meeting. Default: the meeting being recorded, or else the most recent one.
--all List every meeting in the library, newest first.
--follow Show the meeting line by line. A meeting being recorded is shown as it happens, and a meeting that has ended is shown in full. Not with --all.
--summaries With --follow, show only the summaries.

Transcribe a recording you already have.

meetcap transcribe <recording> [--title <title>]
Option What it does
<recording> The file to transcribe. It can be an M4A, MP3, WAV, AIFF, MP4, or MOV file.
--title <title> Name the meeting. Default: the file name, without its extension.
--out <name> Name the meeting’s folder. Give a name, not a path. Default: a name made from the meeting title.
--participants <n> Set the maximum number of speakers, from 1 to 50. Default: MeetCap works it out from the audio.
--realtime Read the recording at the speed it was recorded and show captions as it goes, as in a live meeting. Default: read it as fast as this computer can.
--stats Save processing speed, CPU, and memory in the meeting folder, and report them at the end.

If the file is in a cloud drive and not downloaded yet, transcribe waits for it. See Files in the cloud.

Transcribe a meeting’s whole recording again to complete its transcript.

meetcap retranscribe <meeting>

Use it when a recording stopped unexpectedly and only part of it was transcribed. It needs the recording on this computer, and the meeting must have ended. If the meeting has no minutes yet, MeetCap then writes them; minutes already written stay as they are.

Change a meeting’s title.

meetcap rename <meeting> <title>

The title can have 1 to 200 characters. The title in the meeting note and the transcript changes too, but the meeting’s folder keeps its name. You can rename the meeting being recorded.

Give a speaker a name, in this meeting and in the meetings that come after it.

meetcap label <meeting> <speaker> <name>
Option What it does
<speaker> The speaker’s number in the meeting, such as S1. Give one name to two numbers, and they become one person in this meeting.
<name> Up to 64 characters. It can’t start or end with a space, end with a period, or contain / \ : * ? " < > |.
--line <id> Name the speaker of this line. Give the line’s ID from the transcript, such as u000123.
--no-enroll Change the name in this meeting only, and don’t remember the voice. Default: remember it.

To remember a voice, MeetCap needs about 30 seconds of that person speaking clearly in the meeting. See Speakers and voices.

Write the minutes of a meeting that has ended, in the way set in Settings › Minutes.

meetcap minutes <meeting> [--lang zh|en]
Option What it does
--lang <lang> Write in zh or en. Once there are minutes in one language, the other is translated from them. Until then, only the library’s language can be written. Default: the library’s language.

Correcting names and terms in the transcript is part of the same task. With Your agent, when you ask it, this only adds the task to the meeting, and your agent does it when you ask.

Make a meeting into a file you can give to someone. The meeting itself doesn’t change.

meetcap export <meeting> --to md|docx|pdf|vtt [--out <path>]
Option What it does
--to <format> The file type, required. md copies the meeting note, the transcript, and the summaries into a new folder. docx and pdf contain the minutes and the transcript. vtt is the transcript as subtitles.
--lang <lang> For docx and pdf: export the minutes in zh or en. Default: the library’s language. If a meeting has no minutes, the export uses its summaries, in the library’s language only. The other language works only if the meeting already has minutes in that language (meetcap minutes --lang writes them).
--out <path> Where to save the export. If the path is a folder, the export goes in it, named after the meeting, and no file is replaced. If the path doesn’t exist yet, the export gets that name; the folder it’s in must already exist. If the path is a docx, pdf, or vtt file, that file is replaced. The path can’t be inside the meeting library. Default: the current folder.

For a meeting with summaries, docx and pdf also make a second file with the summaries. You can export a meeting once it has finished up. See Export a meeting.

Move meetings to the Trash, with their recordings on this computer.

meetcap delete <meeting>... [--confirm]
Option What it does
<meeting>... One or more meetings to delete.
--confirm Move them to the Trash. Without it, MeetCap only reports how many meetings would be deleted, and how much text and recording they have.

A meeting being recorded or finishing up is stopped first. The voices MeetCap remembers stay, and so do recordings on other computers.

See whose voices the library remembers, rename one person, or forget one.

meetcap people
meetcap people rename <name> <new-name> [--confirm]
meetcap people forget <name> [--confirm]
Command What it does
people, people list List each person, with how many meetings they’re in, the most recent one, and how many seconds of their voice are saved.
people rename <name> <new-name> Rename the person in every meeting in the library. If the new name is already someone MeetCap knows, the two become one person; this can’t be undone. The new name follows the same rules as in label.
people forget <name> Delete the person’s voice. MeetCap stops recognizing them in later meetings, and their name stays in past meetings.

Show the library’s glossary, or add or remove a term. Speech recognition listens for these spellings, and summaries and minutes use them.

meetcap glossary
meetcap glossary add <spelling> [--alias <a,b>] [--note <note>]
meetcap glossary remove <spelling>
Option What it does
<spelling> How the term is written, without | or a line break. A spelling that’s already in the glossary isn’t added again, even if it differs in capitalization or in full-width and half-width characters.
--alias <a,b> The ways it gets misheard, separated by commas. Default: none.
--note <note> A note about the term, without | or a line break. Default: none.

Spellings with numbers, symbols, or unusual characters aren’t used for captions or transcription, but summaries and minutes still use them. For a term to help a meeting’s transcript, add it before the meeting ends, or before you start transcribing a recording.

Manage this computer’s recording schedules. They stay on this computer and don’t travel with the library.

meetcap schedule add <when> [--title <title>]
meetcap schedule list
meetcap schedule remove <id>
meetcap schedule off
Command or option What it does
schedule add <when> Record at a time, for a duration. Write [day,day… ]HH:MM[+duration], for example mon,thu 09:30+90m. Days are mon to sun; no days means every day. Write the duration as +90m, +2h, or +30s. The default duration is 1 hour.
--title <title> Name the meetings it records, from 1 to 200 characters. Default: the time each one started.
schedule list List the schedules: number, title, when it records, and when it next does.
schedule remove <id> Remove the schedule with this number. schedule list shows the numbers.
schedule off Remove every schedule on this computer.

A schedule saves recordings to the library you were using when you added it. If you move that library later, it records to the new location. See Schedule a recording.

Manage the recordings on this computer.

meetcap audio clear [--confirm]
meetcap audio gc [--confirm]
Command What it does
audio clear Remove this computer’s recordings of every meeting in the library. Transcripts and minutes stay. A meeting whose recording is still needed is skipped and named.
audio gc Move leftover recordings to the Trash: those of deleted meetings, and broken pieces that couldn’t be repaired.

Without --confirm, both only report how many meetings and how much space. See Recordings stay on your computer.

List the settings of this computer and the library, with each value and how to change it.

meetcap config
meetcap config get <key>
meetcap config set <key> <value>
Key Values
default_tags Tags every new meeting’s note starts with, separated by commas, such as weekly,product. "" clears them.
summary_interval_min Minutes between summaries during a meeting: 2, 3, 5, 10, or 15. Default: 5.
minutes_both_langs Write each meeting’s minutes in both Chinese and English: on or off. Default: off. Minutes already written don’t change.
audio_retention How long recordings are kept: 1m (30 days), 3m (91 days), 6m (182 days), or off (keep them). Default: off. Setting it clears older recordings once, right away.

The library’s location, its language, and how the minutes are written are changed with setup. See Settings.

Set up MeetCap, or change the library, its language, or how the minutes are written.

meetcap setup

With no options, it asks the same questions as the app, in the same order, then asks for the microphone and system audio permissions. With options, it changes only what you give and doesn’t ask for permissions.

Option What it does
--library <path> Use or create the meeting library in this folder, and make it this computer’s library.
--lang <lang> Set the library’s language: zh or en. Default for a new library: the system language.
--mode <mode> Choose what writes the summaries and minutes. byok is your own API key, with --endpoint. harness is your agent, run by MeetCap, with --agent. skill is your agent, when you ask it. local is This computer; if the local model isn’t downloaded yet, MeetCap saves the choice anyway and tells you how to download it. hosted, a MeetCap account, isn’t available yet.
--agent <id> With --mode harness: the agent, by the name meetcap agents lists. It must be on this computer and new enough.
--model <model> With --mode harness: the agent’s model. Default: the agent’s own setting. With --mode byok: the service’s model, required to save.
--effort <effort> With --mode harness: a reasoning effort the agent offers. Default: the agent’s own setting.
--endpoint <url> With --mode byok: the endpoint, starting with https:// or http://. MeetCap then asks for the API key, which it keeps only on this computer.
--test With --mode byok: only test the connection and list the service’s models. Nothing is saved.
--accept-terms Agree to the Terms of Use and Privacy Notice. You only need to agree once per computer, with this option or in the app. If you leave it out, setup asks in Terminal; if it can’t ask (for example, when an agent runs it), it sets nothing up and exits with code 4.
--agree With --mode byok: agree to send meeting text to your endpoint. If you leave it out, setup asks in Terminal; if it can’t ask (for example, when an agent runs it), it saves nothing and exits with code 4.
--move-library <path> Move the library to this folder, with its people, glossary, and settings. Recordings don’t move. MeetCap doesn’t move the library while a meeting is being recorded, transcribed, or finished up, or while minutes are being written.
--confirm With --move-library: move it. Without it, MeetCap only reports how many meetings would move, how much space they take, and where they would go.

See First-time setup and Move your meeting library.

Download speech recognition or the local model, see how big a download is, or delete the local model.

meetcap models get
meetcap models plan
meetcap models get --local
meetcap models remove --local
Command What it does
models get Download the speech models: about 420 MB to download, and about 500 MB once installed. MeetCap tries the fastest source first, such as ModelScope in mainland China, or GitHub and Hugging Face elsewhere. If one source fails, it tries the next.
models plan Report how much would be downloaded and how much space it takes once installed. Nothing is downloaded. With --local, report only the local model.
models get --local Download only the local model that This computer uses. MeetCap downloads it only when you choose This computer or run this command. When the download finishes, MeetCap starts writing any summaries and minutes that are waiting for it. See This computer.
models remove --local Report how much space deleting the local model would free. Add --confirm to delete it. With or without --confirm, it deletes nothing while the library uses This computer or the local model is writing a summary or minutes. Instead, it says what to do first. Deleting it doesn’t affect summaries and minutes you already have.

See whether MeetCap may use the microphone and record what this computer plays.

meetcap permissions
meetcap permissions ask

permissions only looks and never asks. permissions ask asks macOS for both permissions and waits for your answer; it records nothing. If you leave one off, it says where in System Settings to turn it on. See Permissions.

Check the library, speech recognition, and the disk.

meetcap doctor

doctor also clears recordings older than the time set in Keep recordings for. It starts writing any summaries and minutes that finished meetings are still waiting for, and doesn’t wait for them to finish. With your own API key, the text of those meetings goes to your endpoint. With Your agent, when you ask it, doctor only says how many are waiting. See Check MeetCap with doctor.

Save diagnostics to send us when something goes wrong. No library needed.

meetcap diagnose [--confirm]
Option What it does
--confirm Save the diagnostics and show where the file is. Without it, MeetCap only lists what they would include.

Diagnostics include recent activity, crash records and the results of doctor’s checks. They never include recordings, transcripts, minutes, meeting titles, names or keys. MeetCap keeps the 3 most recent files.

Turn on detailed logging for a limited time to help track down a problem. No library needed.

meetcap logs debug on [--for <length>]
meetcap logs debug off
Command or option What it does
logs debug on Log more detail on this computer, even during a recording in progress. Detailed logging turns off automatically when the time is up.
--for <length> With on: how long, such as 30m or 2h, up to 24 hours. Turning it on again restarts the timer. Default: 60 minutes.
logs debug off Go back to normal logging now.

The log never includes what was said in a meeting, meeting titles, or people’s names.

Send us a description of a problem, with diagnostics. No library needed.

meetcap feedback --message <message> [--contact <contact>] [--no-diagnostics] [--confirm]
Option What it does
--message <message> The description, from 1 to 5,000 characters, not counting spaces at the start and end. - reads it from standard input. Required.
--contact <contact> How to reach you, such as an email address, up to 200 characters. Default: none.
--no-diagnostics Leave out diagnostics. Default: include them.
--confirm Send the report. Without it, MeetCap only lists what would be sent.

If the report can’t be sent, MeetCap saves it as a file and shows where, so you can email it to us. A sent report gets a reference number. To have the report deleted, send us that number.

List the agents on this computer that can write summaries and minutes.

meetcap agents [--try <name>]
Option What it does
--try <name> Send the agent a short test prompt to check that it works. Use the name at the start of its line, such as claude. Gives up after 3 minutes.
--model <model> With --try: the model to test. It must be one the agent offers. Default: the agent’s own setting.
--effort <effort> With --try: the reasoning effort to test. It must be one the agent offers. Default: the agent’s own setting.
--fresh Ask each agent again for its models and reasoning effort levels, which takes about 10 seconds. Not with --try.

Remove what MeetCap added to this computer. Your meeting library and the app itself aren’t removed. No library needed.

meetcap uninstall [--confirm]
Option What it does
--confirm Remove them. Without it, MeetCap only lists what it would remove, where each item is, and how much space it takes.

Items go to the Trash, including the speech recognition model and recordings kept only on this computer. Nothing is removed while the MeetCap app is open or still working on a meeting. See Uninstall MeetCap.

Your agent uses these to write summaries and minutes when you ask it, and to add what it knows about a meeting. You seldom need them yourself. See Use MeetCap with your agent.

Command What it does
summarize <meeting> Summarize a meeting while it is still going. --range <start:end> takes a stretch in seconds, such as 300:600; the default is since the last summary. --lang zh|en sets the language.
context <meeting> Show a meeting’s background: who attends, the agenda, the terms it uses, and where the last meeting left off. --set <file> replaces it with the file’s contents; - reads standard input.
prompt <meeting> <task> Print the whole prompt for a task: summary, minutes, translate, or names. Every way of writing minutes gives the AI this same prompt. --out <file> writes it to a file.
submit <meeting> <task> [file] Hand back a task’s result as one JSON object. MeetCap saves it only if it passes every check. With no file, or -, it reads standard input.

meetcap submit --help shows the result format for each task.