Skip to content

Recordings

Flags

Where a flag means different things to different verbs, it gets a row each.

Flag Verb Does
--tag <tag> import tag the imported recordings; repeatable
--tag <tag> transcribe group these recordings under a tag; repeatable
--tag <tag> annotate group this recording under a tag; repeatable
--tag <tag> ls only recordings carrying this tag; repeatable
--title <text> import, annotate the recording's title
--notes <text> import, annotate free-form context about the recording
--lang <codes> transcribe spoken language, several comma-separated, or auto. Naming two or more turns on multilingual mode
--multilingual transcribe segment by speech and language, transcribing each run separately
--model <name> transcribe override the configured model
--diarize transcribe attribute segments to speakers
--speakers <n> transcribe known number of speakers, to help the diarizer
--speakers show list who spoke, instead of the transcript -- takes no value
--speaker <label=name> annotate a real name for one diarizer label; repeatable
--speaker <who> show only this speaker, by label or by the name you gave them
--transcript <id> show a specific transcript instead of the newest; a prefix will do
--format <format> show text, json, srt, vtt (default text)
--json ls print one JSON array of rows instead of a table
--force transcribe re-transcribe recordings that already have a transcript
--force rm delete without asking
--max-cpu <percent> transcribe, summarize share of this machine to use, 1 to 100
--no-gpu transcribe do not use the GPU, even where a binary supports it
--denoise <mode> transcribe auto, on or off
--detach transcribe start the work in the background and print its job id

Import

ailoud audio import ~/Recordings/standup.m4a --tag standup
ailoud audio import ~/Recordings --tag offsite --tag 2026

A directory imports the media files directly inside it. It does not walk subdirectories.

The file you point at is never moved or changed. AILoud keeps its own copy.

Always pass --tag

Tags are how you find a recording later by context. The easiest moment to add one is now, while you know what the file is. See Tags.

Transcribe

ailoud audio transcribe                 # everything with no transcript yet
ailoud audio transcribe ID001 ID002
ailoud audio transcribe ID001 --force   # redo one

Takes minutes per recording, roughly a tenth of the audio length.

Two languages in one recording

ailoud audio transcribe ID001 --lang ru,en

Two or more languages turn on per-segment detection and confine it to that set. One language forces it for the whole file:

ailoud audio transcribe ID001 --lang ru

Check what it found:

ailoud audio ls
01M1B2W5EG  00:36  ru+en  "Так, deploy pipeline зелёный..."

Speakers

ailoud audio transcribe ID001 --diarize
ailoud audio transcribe ID001 --diarize --speakers 2

Speakers come out as speaker_00, speaker_01. Give them names:

ailoud audio show ID001 --speakers
ailoud audio annotate ID001 --speaker speaker_00=Ann --speaker speaker_01=Ben

Names survive --force, so re-transcribing does not lose them.

Run in the background

--detach starts the work and prints a job id instead of waiting:

ailoud audio transcribe 01M1YDT42V1RMRB80EXHK4R5EQ --lang ru,en --detach
ok  started job 01M1YDT6XENN575E031PE32AKS -- progress in /private/tmp/ailoud-docs-demo/.ailoud/jobs/01M1YDT6XENN575E031PE32AKS.json
ailoud job ls
01M1YDT6XENN575E031PE32AKS  transcribe  running   56%  detecting
ailoud job show 01M1YDT6XENN575E031PE32AKS
Job 01M1YDT6XENN575E031PE32AKS -- transcribe, done
Progress: 100% (transcribing)
Recordings: 1/1
Started: 2026-09-07T17:14:20.462Z
Finished: 2026-09-07T17:14:39.096Z
Declared: unknown speakers, languages ru, en
Result: {"transcribed":[{"recordingId":"01M1YDT42V1RMRB80EXHK4R5EQ","transcriptId":"01M1YDTS3NX10EKBGHVPMSR2Z8","language":"en","segments":12}]}
Log: /private/tmp/ailoud-docs-demo/.ailoud/jobs/01M1YDT6XENN575E031PE32AKS.log

audio summarize --detach works the same way. job rm <id> forgets a finished job; it refuses one still running. Letters: job l, job v, job r; jobs is the plural.

Read

ailoud audio show ID001
ailoud audio show ID001 --speaker Ann
ailoud audio show ID001 --format srt > standup.srt
ailoud audio show ID001 --format json | jq '.segments[0]'

Formats: text, json, srt, vtt.

Output longer than 30 lines opens in your pager. q quits.

Tags

ailoud audio annotate ID001 --tag release --tag backend
ailoud audio ls --tag release
ailoud audio ls --tag release --tag backend   # both, not either

Titles and notes

ailoud audio annotate ID001 --title "Backend standup" --notes "Ann was late"

Delete

ailoud audio rm ID001
ailoud audio rm ID001 --force   # no question

Deletes the recording, its transcripts, its reports and AILoud's copy of the audio. The file you imported from is not touched.

Short forms

Every verb has a one-letter alias, and the letter means the same thing in every group:

ailoud audio i ~/Recordings   # import
ailoud audio t                # transcribe
ailoud audio f "rollback"     # search (find)
ailoud audio s ID001          # summarize
ailoud audio l                # ls
ailoud audio v ID001          # show (view)
ailoud audio a ID001 --tag x  # annotate
ailoud audio r ID001          # rm

The old top-level spellings still work: ailoud ls, ailoud show, ailoud import, and so on.

See the full list in the CLI Reference.