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 startmeetcap stopmeetcap status --allThe command line uses your library’s language. To change it, run meetcap setup --lang en or --lang zh.
Common options and arguments
Section titled “Common options and arguments”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.
Exit codes
Section titled “Exit codes”| 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. |
Record
Section titled “Record”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 and resume
Section titled “pause and resume”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.
status
Section titled “status”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. |
Meetings
Section titled “Meetings”transcribe
Section titled “transcribe”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.
retranscribe
Section titled “retranscribe”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.
rename
Section titled “rename”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.
minutes
Section titled “minutes”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.
export
Section titled “export”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.
delete
Section titled “delete”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.
Library
Section titled “Library”people
Section titled “people”See whose voices the library remembers, rename one person, or forget one.
meetcap peoplemeetcap 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. |
glossary
Section titled “glossary”Show the library’s glossary, or add or remove a term. Speech recognition listens for these spellings, and summaries and minutes use them.
meetcap glossarymeetcap 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.
schedule
Section titled “schedule”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 listmeetcap 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.
config
Section titled “config”List the settings of this computer and the library, with each value and how to change it.
meetcap configmeetcap 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.
Setup and checks
Section titled “Setup and checks”Set up MeetCap, or change the library, its language, or how the minutes are written.
meetcap setupWith 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.
models
Section titled “models”Download speech recognition or the local model, see how big a download is, or delete the local model.
meetcap models getmeetcap models planmeetcap models get --localmeetcap 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. |
permissions
Section titled “permissions”See whether MeetCap may use the microphone and record what this computer plays.
meetcap permissionsmeetcap permissions askpermissions 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.
doctor
Section titled “doctor”Check the library, speech recognition, and the disk.
meetcap doctordoctor 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.
diagnose
Section titled “diagnose”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.
feedback
Section titled “feedback”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.
agents
Section titled “agents”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. |
uninstall
Section titled “uninstall”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.
Commands mainly for agents
Section titled “Commands mainly for agents”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.