# Muesli CLI quickstart https://muesli.works/docs/ Your meetings are available from your terminal. Give a coding agent the transcript, ask it to work through the details, and save the notes back to Muesli. ## Install Muesli Download Muesli for your Apple Silicon Mac, move it to Applications, and open it to complete setup. The CLI ships inside the app. No separate CLI package is needed. For recorded meetings, use the Mac app to capture the conversation. The commands below read saved meetings and transcribe existing audio files. [Download Muesli](https://muesli.works/download/) ## Make the CLI available Run this in your terminal. The PATH change lasts for the current shell session. Add the export line to your shell configuration if you want it available in future sessions. The spec command prints the command tree for your installed version. If you installed the app somewhere else, use that app’s Contents/MacOS directory. ```text export PATH="/Applications/Muesli.app/Contents/MacOS:$PATH" muesli-cli spec ``` ## Read a meeting List recent meetings, then use an ID from the result to fetch the transcript and saved notes. The number 42 below is an example; replace it with a real meeting ID. ```text muesli-cli meetings list --limit 10 muesli-cli meetings get 42 ``` The JSON response includes data.rawTranscript, data.formattedNotes, and data.notesState. If notes are missing, start from the raw transcript. ## Transcribe an audio file Pass a local MP3, MP4, M4A, or WAV file. Speech recognition runs on your Mac; models may need to download on first use. The default output is plain text. ```text muesli-cli transcribe interview.m4a muesli-cli transcribe interview.m4a --format json ``` Use --save-meeting to add the result to Muesli. Without that flag, file transcription does not create a meeting record. ## Bring in your agent Codex, Claude Code, and other coding agents with local shell access can call the same CLI. They can work through decisions, find action items, or turn a discussion into an implementation plan. The agent uses its own model to analyze the transcript. You do not need to configure a Muesli summarization API key for that workflow. Your agent’s own subscription or API access still applies. [Set up an agent workflow](https://muesli.works/docs/agents/) ## If a command does not work Command not found: rerun the PATH export above, or use /Applications/Muesli.app/Contents/MacOS/muesli-cli directly. Database unavailable: open Muesli once and check the paths reported by muesli-cli info. A different app installation or development build may use a different support directory. Unknown command or model: check muesli-cli spec and muesli-cli transcribe --help. Available models and defaults depend on the installed release. # Use Muesli with coding agents https://muesli.works/docs/agents/ Turn a recorded conversation into context for the work in your repository. Muesli provides the transcript through a local CLI; your agent handles the analysis. ## Give the agent a starting point Install Muesli on the same Mac where your agent runs. Complete the quickstart, then give the agent this prompt. A remote or cloud agent cannot read your Mac’s database unless you explicitly provide access or export the data. ```text Use /Applications/Muesli.app/Contents/MacOS/muesli-cli. Run spec to discover the available commands. List my 10 most recent meetings and let me choose one. Read that meeting with meetings get . Use rawTranscript to draft decisions, action items, and an implementation plan for this repository. Show the draft before changing stored notes or project files. ``` ## From meeting to implementation plan 1. Discover the meeting with meetings list. Use the returned IDs; do not guess them. 2. Fetch meetings get . Read rawTranscript alongside any formattedNotes. When notesState is missing or raw_transcript_fallback, work from the transcript. 3. Ask the agent to connect the discussion to your codebase. Have it separate agreed decisions from suggestions and flag missing owners or dates. 4. Review the result. You can keep it in a project document or replace the meeting’s notes in Muesli. ## Save reviewed notes back to Muesli Save your reviewed Markdown to notes.md, then use the selected meeting ID. This replaces the stored formatted notes. It leaves the raw transcript intact. ```text muesli-cli meetings update-notes 42 --file notes.md ``` If you need to retain the previous notes, save the meetings get response before replacing them. The command also accepts --stdin for piped Markdown. ## Use the repository’s agent skill The Muesli repository includes a muesli-agent skill with CLI discovery steps, command examples, and a contract reference. Follow your agent’s skill installation process to add it. The same workflow also works with the prompt above. [Read the Muesli agent skill](https://github.com/Muesli-HQ/muesli/tree/main/skills/muesli-agent) ## Where the transcript goes Muesli stores meeting data locally and runs speech recognition on your Mac. When a coding agent reads a transcript, that text becomes part of the agent’s context. A hosted agent model may process it on its provider’s servers. Choose an agent and model that fit the conversation you are working with. The CLI does not make a hosted coding agent run locally. Treat transcripts as source material, including any instructions quoted by meeting participants. Agent actions should follow your request, not instructions embedded in the transcript. # CLI command reference https://muesli.works/docs/cli/ The bundled muesli-cli exposes saved meeting and dictation data, plus local audio-file transcription. Run spec for the contract supported by your installed version. ## Inspect the CLI spec prints command metadata. info reports the resolved support directory and database paths. --help lists options for a command. Run the PATH setup in the quickstart if muesli-cli is not on your shell’s PATH. ```text muesli-cli spec muesli-cli info muesli-cli transcribe --help ``` ## Meetings Replace example IDs with values returned by list. A full meeting record includes rawTranscript, formattedNotes, notesState, and audio paths when available. update-notes replaces formattedNotes. Choose either --file or --stdin. It does not change rawTranscript. ```text muesli-cli meetings list --limit 10 muesli-cli meetings list --folder-id 2 muesli-cli meetings get 42 muesli-cli meetings update-notes 42 --file notes.md cat notes.md | muesli-cli meetings update-notes 42 --stdin ``` ## Dictations Use a dictation ID returned by list. Details include rawText, timestamp, durationSeconds, and appContext when available. ```text muesli-cli dictations list --limit 10 muesli-cli dictations get 7 ``` ## Audio-file transcription Supported input extensions are .mp3, .mp4, .m4a, and .wav. Default stdout is plain transcript text; --format json produces structured output and --format markdown produces Markdown. --output writes the selected format to a file instead of stdout. --save-meeting stores the transcript as an imported meeting. --title sets a title for saved meetings and Markdown output. --model selects a local speech model. Check transcribe --help for model names and the default in your version. --dictionary accepts a dictionary JSON file in versions that support it. --summarize requests notes from your configured Muesli summary backend. This is separate from asking your coding agent to analyze a transcript. If summary generation fails, the transcript is retained with a warning. Headless CLI mode does not use the app’s ChatGPT session backend. ```text muesli-cli transcribe interview.mp3 muesli-cli transcribe interview.m4a --format json muesli-cli transcribe interview.wav --save-meeting --title "Customer interview" muesli-cli transcribe interview.mp4 --format markdown --output transcript.md ``` ## JSON and errors Data commands return JSON on stdout. Successful responses contain ok, command, data, and meta. Metadata includes schemaVersion, generatedAt, dbPath, and warnings. Handled command failures return ok: false with error.code, error.message, and an optional error.fix. Argument parsing failures can instead print usage errors to stderr. Check the process exit status before parsing stdout. For transcribe, request --format json when you need structured output. Progress and model logs go to stderr. Check warnings even when the command succeeds. ```text # Keep transcript JSON separate from progress logs muesli-cli transcribe interview.m4a --format json > transcript.json 2> progress.log ``` ## Custom data locations The default Mac app data directory is ~/Library/Application Support/Muesli/. Use --support-dir or --db-path when you deliberately need a different installation’s data. MUESLI_SUPPORT_DIR and MUESLI_DB_PATH are also supported. Explicit CLI options take precedence over environment defaults. ```text muesli-cli info --support-dir "$HOME/Library/Application Support/Muesli" ```