[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-assemblyai-aai-cli":3,"mdc--hxof13-key":36,"related-org-assemblyai-aai-cli":936,"related-repo-assemblyai-aai-cli":959},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"aai-cli","transcribe audio and video with AssemblyAI","Use the AssemblyAI CLI (`assembly`) from the command line — transcribe audio\u002Fvideo files, URLs, and YouTube\u002Fpodcast links; stream live real-time transcription from a mic\u002Ffile\u002Fsystem audio; run full-duplex voice agents; query the LLM Gateway over transcripts; browse transcript and streaming-session history; sign in and manage account balance, usage, rate limits, API keys, and audit logs; scaffold a starter app (init); diagnose setup (doctor); and set up your coding agent's AssemblyAI docs MCP + skills (setup). Use whenever an agent is invoking the `assembly` command.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"assemblyai","AssemblyAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fassemblyai.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Transcription","transcription","tag",{"name":17,"slug":18,"type":15},"CLI","cli",{"name":20,"slug":21,"type":15},"Audio","audio",{"name":23,"slug":24,"type":15},"Speech","speech",1,"https:\u002F\u002Fgithub.com\u002FAssemblyAI\u002Fcli","2026-07-12T08:08:38.418314",null,0,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"AssemblyAI CLI","https:\u002F\u002Fgithub.com\u002FAssemblyAI\u002Fcli\u002Ftree\u002FHEAD\u002Faai_cli\u002Fskills\u002Faai-cli","---\nname: aai-cli\ndescription: Use the AssemblyAI CLI (`assembly`) from the command line — transcribe audio\u002Fvideo files, URLs, and YouTube\u002Fpodcast links; stream live real-time transcription from a mic\u002Ffile\u002Fsystem audio; run full-duplex voice agents; query the LLM Gateway over transcripts; browse transcript and streaming-session history; sign in and manage account balance, usage, rate limits, API keys, and audit logs; scaffold a starter app (init); diagnose setup (doctor); and set up your coding agent's AssemblyAI docs MCP + skills (setup). Use whenever an agent is invoking the `assembly` command.\n---\n\n# AssemblyAI CLI (`assembly`)\n\n`assembly` runs AssemblyAI from the terminal: transcription, real-time streaming,\nvoice agents, the LLM Gateway, history, and account management.\n\n**`assembly \u003Ccommand> --help` is the source of truth for flags.** This skill covers\nthe command map and the non-obvious operational rules; check `--help` before\nguessing a flag.\n\n## Critical: auth & environment\n\n**Authentication.** A command needs a key resolved in this order:\n\n1. `ASSEMBLYAI_API_KEY` environment variable\n2. The OS keyring (populated by `assembly login`)\n\nGet authenticated with either `assembly login` (browser sign-in; stores a key in the\nkeyring) or by exporting `ASSEMBLYAI_API_KEY`. **Run commands deliberately have\nno `--api-key` flag** — that is on purpose, so keys never land in `ps` output or\nshell history. Do not look for one.\n\n**Environment binding.** The backend environment is selected by `--env`\n(or `AAI_ENV`, or the profile's stored env). `--sandbox` is shorthand for\n`--env sandbox000`. The default environment is `production`.\n**A credential is only valid against the environment that minted it** — a\nsandbox key fails against production and vice-versa. If a freshly-working key\nsuddenly returns auth errors, check you are on the same `--env` you logged in\nunder.\n\n**Profiles.** `--profile \u003Cname>` selects a named credential set. Global flags\n(`--profile`, `--env`, `--sandbox`, `-v\u002F--verbose`) go *before* the subcommand:\n`assembly --sandbox transcribe call.mp3`.\n\n**Diagnostics.** `assembly -v \u003Ccommand>` logs request-level diagnostics to\nstderr (HTTP requests and statuses); `-vv` adds wire-level detail (WebSocket\nframes, connection events). Secrets (API key, session JWT) are redacted from\nthat output. Use this to debug auth\u002Fconnectivity instead of guessing.\n\n## Output contract (read this before parsing output)\n\n- **Data goes to stdout; errors and progress go to stderr.** Piping stdout is\n  always safe.\n- **`--json` is auto-enabled when output is piped or the CLI detects an agent\n  run**, so you usually get machine-readable JSON on stdout for free. Pass\n  `--json` explicitly to force it. Many commands also accept `-o\u002F--output` to\n  print a single field (e.g. `-o text`).\n- Expected failures print a clean message to stderr and exit non-zero — never a\n  traceback. Exit code reflects the error type.\n\n## Quick start\n\n```bash\nassembly login                      # browser sign-in (or: export ASSEMBLYAI_API_KEY=...)\nassembly doctor                     # verify the environment is ready\nassembly transcribe call.mp3        # transcribe a file\nassembly transcribe call.mp3 -o text   # just the text, pipeline-friendly\nassembly stream                     # live transcription from the mic\nassembly init                       # scaffold a starter app\n```\n\n## Building an app vs running a command\n\nIf the task is to **build\u002Fcreate an app or project** (a transcription app, live\ncaptions, or a **voice agent app**), that is `assembly init` — a scaffolder that\nwrites a full starter project (pick the `voice-agent` template for an agent\napp). The verbs `assembly transcribe`, `assembly stream`, and **`assembly agent`** are *run*\ncommands: they perform a one-off action in the terminal (e.g. `assembly agent` holds\na live mic conversation) and produce **no code**. When someone says \"build an\nagent,\" reach for `assembly init voice-agent`, not `assembly agent`.\n\n## Decision tree\n\n- **Build\u002Fscaffold an app (transcription, live captions, or a voice agent app)**\n  → `assembly init` — see `references\u002Fsetup.md`\n- **Transcribe a file\u002FURL\u002FYouTube\u002Fpodcast page, stream live audio, run a live\n  voice agent, or query the LLM Gateway** → `references\u002Ftranscription.md`\n- **Browse past transcripts or streaming sessions** → `references\u002Fhistory.md`\n- **Sign in\u002Fout, identity, balance, usage, rate limits, API keys, audit log** →\n  `references\u002Faccount.md`\n- **Scaffold a starter app (`init`), diagnose setup (`doctor`), set up\n  your coding agent's MCP + skills (`setup`)** → `references\u002Fsetup.md`\n\n## Anti-patterns\n\n- **Passing `--api-key` to a run command.** It does not exist. Use `assembly login`\n  or `ASSEMBLYAI_API_KEY`.\n- **Mixing a credential with the wrong `--env`.** A `sandbox000` key won't work\n  against production. Log in and run under the same environment.\n- **Running before authenticating.** No key → auth failure. Run `assembly doctor` to\n  see exactly what's missing.\n- **Assuming `pip install assemblyai-cli` works.** That PyPI name is squatted by\n  an unrelated third party. Use the project's official install path, not that\n  name.\n- **Parsing human output.** Pipe stdout (auto-JSON) or pass `--json` \u002F `-o text`\n  rather than scraping the pretty-printed tables.\n- **Forgetting `--show-code`.** `transcribe`, `stream`, and `agent` accept\n  `--show-code` to print a ready-to-run Python SDK script for exactly the flags\n  you passed — no API call made. Great for \"how would I do this in code?\".\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,59,70,95,102,112,140,182,246,308,333,339,397,403,544,550,646,652,762,768,930],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"assemblyai-cli-assembly",[47,50,57],{"type":48,"value":49},"text","AssemblyAI CLI (",{"type":42,"tag":51,"props":52,"children":54},"code",{"className":53},[],[55],{"type":48,"value":56},"assembly",{"type":48,"value":58},")",{"type":42,"tag":60,"props":61,"children":62},"p",{},[63,68],{"type":42,"tag":51,"props":64,"children":66},{"className":65},[],[67],{"type":48,"value":56},{"type":48,"value":69}," runs AssemblyAI from the terminal: transcription, real-time streaming,\nvoice agents, the LLM Gateway, history, and account management.",{"type":42,"tag":60,"props":71,"children":72},{},[73,85,87,93],{"type":42,"tag":74,"props":75,"children":76},"strong",{},[77,83],{"type":42,"tag":51,"props":78,"children":80},{"className":79},[],[81],{"type":48,"value":82},"assembly \u003Ccommand> --help",{"type":48,"value":84}," is the source of truth for flags.",{"type":48,"value":86}," This skill covers\nthe command map and the non-obvious operational rules; check ",{"type":42,"tag":51,"props":88,"children":90},{"className":89},[],[91],{"type":48,"value":92},"--help",{"type":48,"value":94}," before\nguessing a flag.",{"type":42,"tag":96,"props":97,"children":99},"h2",{"id":98},"critical-auth-environment",[100],{"type":48,"value":101},"Critical: auth & environment",{"type":42,"tag":60,"props":103,"children":104},{},[105,110],{"type":42,"tag":74,"props":106,"children":107},{},[108],{"type":48,"value":109},"Authentication.",{"type":48,"value":111}," A command needs a key resolved in this order:",{"type":42,"tag":113,"props":114,"children":115},"ol",{},[116,128],{"type":42,"tag":117,"props":118,"children":119},"li",{},[120,126],{"type":42,"tag":51,"props":121,"children":123},{"className":122},[],[124],{"type":48,"value":125},"ASSEMBLYAI_API_KEY",{"type":48,"value":127}," environment variable",{"type":42,"tag":117,"props":129,"children":130},{},[131,133,139],{"type":48,"value":132},"The OS keyring (populated by ",{"type":42,"tag":51,"props":134,"children":136},{"className":135},[],[137],{"type":48,"value":138},"assembly login",{"type":48,"value":58},{"type":42,"tag":60,"props":141,"children":142},{},[143,145,150,152,157,159,172,174,180],{"type":48,"value":144},"Get authenticated with either ",{"type":42,"tag":51,"props":146,"children":148},{"className":147},[],[149],{"type":48,"value":138},{"type":48,"value":151}," (browser sign-in; stores a key in the\nkeyring) or by exporting ",{"type":42,"tag":51,"props":153,"children":155},{"className":154},[],[156],{"type":48,"value":125},{"type":48,"value":158},". ",{"type":42,"tag":74,"props":160,"children":161},{},[162,164,170],{"type":48,"value":163},"Run commands deliberately have\nno ",{"type":42,"tag":51,"props":165,"children":167},{"className":166},[],[168],{"type":48,"value":169},"--api-key",{"type":48,"value":171}," flag",{"type":48,"value":173}," — that is on purpose, so keys never land in ",{"type":42,"tag":51,"props":175,"children":177},{"className":176},[],[178],{"type":48,"value":179},"ps",{"type":48,"value":181}," output or\nshell history. Do not look for one.",{"type":42,"tag":60,"props":183,"children":184},{},[185,190,192,198,200,206,208,214,216,222,224,230,232,237,239,244],{"type":42,"tag":74,"props":186,"children":187},{},[188],{"type":48,"value":189},"Environment binding.",{"type":48,"value":191}," The backend environment is selected by ",{"type":42,"tag":51,"props":193,"children":195},{"className":194},[],[196],{"type":48,"value":197},"--env",{"type":48,"value":199},"\n(or ",{"type":42,"tag":51,"props":201,"children":203},{"className":202},[],[204],{"type":48,"value":205},"AAI_ENV",{"type":48,"value":207},", or the profile's stored env). ",{"type":42,"tag":51,"props":209,"children":211},{"className":210},[],[212],{"type":48,"value":213},"--sandbox",{"type":48,"value":215}," is shorthand for\n",{"type":42,"tag":51,"props":217,"children":219},{"className":218},[],[220],{"type":48,"value":221},"--env sandbox000",{"type":48,"value":223},". The default environment is ",{"type":42,"tag":51,"props":225,"children":227},{"className":226},[],[228],{"type":48,"value":229},"production",{"type":48,"value":231},".\n",{"type":42,"tag":74,"props":233,"children":234},{},[235],{"type":48,"value":236},"A credential is only valid against the environment that minted it",{"type":48,"value":238}," — a\nsandbox key fails against production and vice-versa. If a freshly-working key\nsuddenly returns auth errors, check you are on the same ",{"type":42,"tag":51,"props":240,"children":242},{"className":241},[],[243],{"type":48,"value":197},{"type":48,"value":245}," you logged in\nunder.",{"type":42,"tag":60,"props":247,"children":248},{},[249,254,256,262,264,270,272,277,278,283,284,290,292,298,300,306],{"type":42,"tag":74,"props":250,"children":251},{},[252],{"type":48,"value":253},"Profiles.",{"type":48,"value":255}," ",{"type":42,"tag":51,"props":257,"children":259},{"className":258},[],[260],{"type":48,"value":261},"--profile \u003Cname>",{"type":48,"value":263}," selects a named credential set. Global flags\n(",{"type":42,"tag":51,"props":265,"children":267},{"className":266},[],[268],{"type":48,"value":269},"--profile",{"type":48,"value":271},", ",{"type":42,"tag":51,"props":273,"children":275},{"className":274},[],[276],{"type":48,"value":197},{"type":48,"value":271},{"type":42,"tag":51,"props":279,"children":281},{"className":280},[],[282],{"type":48,"value":213},{"type":48,"value":271},{"type":42,"tag":51,"props":285,"children":287},{"className":286},[],[288],{"type":48,"value":289},"-v\u002F--verbose",{"type":48,"value":291},") go ",{"type":42,"tag":293,"props":294,"children":295},"em",{},[296],{"type":48,"value":297},"before",{"type":48,"value":299}," the subcommand:\n",{"type":42,"tag":51,"props":301,"children":303},{"className":302},[],[304],{"type":48,"value":305},"assembly --sandbox transcribe call.mp3",{"type":48,"value":307},".",{"type":42,"tag":60,"props":309,"children":310},{},[311,316,317,323,325,331],{"type":42,"tag":74,"props":312,"children":313},{},[314],{"type":48,"value":315},"Diagnostics.",{"type":48,"value":255},{"type":42,"tag":51,"props":318,"children":320},{"className":319},[],[321],{"type":48,"value":322},"assembly -v \u003Ccommand>",{"type":48,"value":324}," logs request-level diagnostics to\nstderr (HTTP requests and statuses); ",{"type":42,"tag":51,"props":326,"children":328},{"className":327},[],[329],{"type":48,"value":330},"-vv",{"type":48,"value":332}," adds wire-level detail (WebSocket\nframes, connection events). Secrets (API key, session JWT) are redacted from\nthat output. Use this to debug auth\u002Fconnectivity instead of guessing.",{"type":42,"tag":96,"props":334,"children":336},{"id":335},"output-contract-read-this-before-parsing-output",[337],{"type":48,"value":338},"Output contract (read this before parsing output)",{"type":42,"tag":340,"props":341,"children":342},"ul",{},[343,353,392],{"type":42,"tag":117,"props":344,"children":345},{},[346,351],{"type":42,"tag":74,"props":347,"children":348},{},[349],{"type":48,"value":350},"Data goes to stdout; errors and progress go to stderr.",{"type":48,"value":352}," Piping stdout is\nalways safe.",{"type":42,"tag":117,"props":354,"children":355},{},[356,367,369,374,376,382,384,390],{"type":42,"tag":74,"props":357,"children":358},{},[359,365],{"type":42,"tag":51,"props":360,"children":362},{"className":361},[],[363],{"type":48,"value":364},"--json",{"type":48,"value":366}," is auto-enabled when output is piped or the CLI detects an agent\nrun",{"type":48,"value":368},", so you usually get machine-readable JSON on stdout for free. Pass\n",{"type":42,"tag":51,"props":370,"children":372},{"className":371},[],[373],{"type":48,"value":364},{"type":48,"value":375}," explicitly to force it. Many commands also accept ",{"type":42,"tag":51,"props":377,"children":379},{"className":378},[],[380],{"type":48,"value":381},"-o\u002F--output",{"type":48,"value":383}," to\nprint a single field (e.g. ",{"type":42,"tag":51,"props":385,"children":387},{"className":386},[],[388],{"type":48,"value":389},"-o text",{"type":48,"value":391},").",{"type":42,"tag":117,"props":393,"children":394},{},[395],{"type":48,"value":396},"Expected failures print a clean message to stderr and exit non-zero — never a\ntraceback. Exit code reflects the error type.",{"type":42,"tag":96,"props":398,"children":400},{"id":399},"quick-start",[401],{"type":48,"value":402},"Quick start",{"type":42,"tag":404,"props":405,"children":410},"pre",{"className":406,"code":407,"language":408,"meta":409,"style":409},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","assembly login                      # browser sign-in (or: export ASSEMBLYAI_API_KEY=...)\nassembly doctor                     # verify the environment is ready\nassembly transcribe call.mp3        # transcribe a file\nassembly transcribe call.mp3 -o text   # just the text, pipeline-friendly\nassembly stream                     # live transcription from the mic\nassembly init                       # scaffold a starter app\n","bash","",[411],{"type":42,"tag":51,"props":412,"children":413},{"__ignoreMap":409},[414,436,454,477,508,526],{"type":42,"tag":415,"props":416,"children":418},"span",{"class":417,"line":25},"line",[419,424,430],{"type":42,"tag":415,"props":420,"children":422},{"style":421},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[423],{"type":48,"value":56},{"type":42,"tag":415,"props":425,"children":427},{"style":426},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[428],{"type":48,"value":429}," login",{"type":42,"tag":415,"props":431,"children":433},{"style":432},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[434],{"type":48,"value":435},"                      # browser sign-in (or: export ASSEMBLYAI_API_KEY=...)\n",{"type":42,"tag":415,"props":437,"children":439},{"class":417,"line":438},2,[440,444,449],{"type":42,"tag":415,"props":441,"children":442},{"style":421},[443],{"type":48,"value":56},{"type":42,"tag":415,"props":445,"children":446},{"style":426},[447],{"type":48,"value":448}," doctor",{"type":42,"tag":415,"props":450,"children":451},{"style":432},[452],{"type":48,"value":453},"                     # verify the environment is ready\n",{"type":42,"tag":415,"props":455,"children":457},{"class":417,"line":456},3,[458,462,467,472],{"type":42,"tag":415,"props":459,"children":460},{"style":421},[461],{"type":48,"value":56},{"type":42,"tag":415,"props":463,"children":464},{"style":426},[465],{"type":48,"value":466}," transcribe",{"type":42,"tag":415,"props":468,"children":469},{"style":426},[470],{"type":48,"value":471}," call.mp3",{"type":42,"tag":415,"props":473,"children":474},{"style":432},[475],{"type":48,"value":476},"        # transcribe a file\n",{"type":42,"tag":415,"props":478,"children":480},{"class":417,"line":479},4,[481,485,489,493,498,503],{"type":42,"tag":415,"props":482,"children":483},{"style":421},[484],{"type":48,"value":56},{"type":42,"tag":415,"props":486,"children":487},{"style":426},[488],{"type":48,"value":466},{"type":42,"tag":415,"props":490,"children":491},{"style":426},[492],{"type":48,"value":471},{"type":42,"tag":415,"props":494,"children":495},{"style":426},[496],{"type":48,"value":497}," -o",{"type":42,"tag":415,"props":499,"children":500},{"style":426},[501],{"type":48,"value":502}," text",{"type":42,"tag":415,"props":504,"children":505},{"style":432},[506],{"type":48,"value":507},"   # just the text, pipeline-friendly\n",{"type":42,"tag":415,"props":509,"children":511},{"class":417,"line":510},5,[512,516,521],{"type":42,"tag":415,"props":513,"children":514},{"style":421},[515],{"type":48,"value":56},{"type":42,"tag":415,"props":517,"children":518},{"style":426},[519],{"type":48,"value":520}," stream",{"type":42,"tag":415,"props":522,"children":523},{"style":432},[524],{"type":48,"value":525},"                     # live transcription from the mic\n",{"type":42,"tag":415,"props":527,"children":529},{"class":417,"line":528},6,[530,534,539],{"type":42,"tag":415,"props":531,"children":532},{"style":421},[533],{"type":48,"value":56},{"type":42,"tag":415,"props":535,"children":536},{"style":426},[537],{"type":48,"value":538}," init",{"type":42,"tag":415,"props":540,"children":541},{"style":432},[542],{"type":48,"value":543},"                       # scaffold a starter app\n",{"type":42,"tag":96,"props":545,"children":547},{"id":546},"building-an-app-vs-running-a-command",[548],{"type":48,"value":549},"Building an app vs running a command",{"type":42,"tag":60,"props":551,"children":552},{},[553,555,560,562,567,569,575,577,583,585,591,592,598,600,609,611,616,618,623,625,630,632,638,640,645],{"type":48,"value":554},"If the task is to ",{"type":42,"tag":74,"props":556,"children":557},{},[558],{"type":48,"value":559},"build\u002Fcreate an app or project",{"type":48,"value":561}," (a transcription app, live\ncaptions, or a ",{"type":42,"tag":74,"props":563,"children":564},{},[565],{"type":48,"value":566},"voice agent app",{"type":48,"value":568},"), that is ",{"type":42,"tag":51,"props":570,"children":572},{"className":571},[],[573],{"type":48,"value":574},"assembly init",{"type":48,"value":576}," — a scaffolder that\nwrites a full starter project (pick the ",{"type":42,"tag":51,"props":578,"children":580},{"className":579},[],[581],{"type":48,"value":582},"voice-agent",{"type":48,"value":584}," template for an agent\napp). The verbs ",{"type":42,"tag":51,"props":586,"children":588},{"className":587},[],[589],{"type":48,"value":590},"assembly transcribe",{"type":48,"value":271},{"type":42,"tag":51,"props":593,"children":595},{"className":594},[],[596],{"type":48,"value":597},"assembly stream",{"type":48,"value":599},", and ",{"type":42,"tag":74,"props":601,"children":602},{},[603],{"type":42,"tag":51,"props":604,"children":606},{"className":605},[],[607],{"type":48,"value":608},"assembly agent",{"type":48,"value":610}," are ",{"type":42,"tag":293,"props":612,"children":613},{},[614],{"type":48,"value":615},"run",{"type":48,"value":617},"\ncommands: they perform a one-off action in the terminal (e.g. ",{"type":42,"tag":51,"props":619,"children":621},{"className":620},[],[622],{"type":48,"value":608},{"type":48,"value":624}," holds\na live mic conversation) and produce ",{"type":42,"tag":74,"props":626,"children":627},{},[628],{"type":48,"value":629},"no code",{"type":48,"value":631},". When someone says \"build an\nagent,\" reach for ",{"type":42,"tag":51,"props":633,"children":635},{"className":634},[],[636],{"type":48,"value":637},"assembly init voice-agent",{"type":48,"value":639},", not ",{"type":42,"tag":51,"props":641,"children":643},{"className":642},[],[644],{"type":48,"value":608},{"type":48,"value":307},{"type":42,"tag":96,"props":647,"children":649},{"id":648},"decision-tree",[650],{"type":48,"value":651},"Decision tree",{"type":42,"tag":340,"props":653,"children":654},{},[655,678,694,709,725],{"type":42,"tag":117,"props":656,"children":657},{},[658,663,665,670,672],{"type":42,"tag":74,"props":659,"children":660},{},[661],{"type":48,"value":662},"Build\u002Fscaffold an app (transcription, live captions, or a voice agent app)",{"type":48,"value":664},"\n→ ",{"type":42,"tag":51,"props":666,"children":668},{"className":667},[],[669],{"type":48,"value":574},{"type":48,"value":671}," — see ",{"type":42,"tag":51,"props":673,"children":675},{"className":674},[],[676],{"type":48,"value":677},"references\u002Fsetup.md",{"type":42,"tag":117,"props":679,"children":680},{},[681,686,688],{"type":42,"tag":74,"props":682,"children":683},{},[684],{"type":48,"value":685},"Transcribe a file\u002FURL\u002FYouTube\u002Fpodcast page, stream live audio, run a live\nvoice agent, or query the LLM Gateway",{"type":48,"value":687}," → ",{"type":42,"tag":51,"props":689,"children":691},{"className":690},[],[692],{"type":48,"value":693},"references\u002Ftranscription.md",{"type":42,"tag":117,"props":695,"children":696},{},[697,702,703],{"type":42,"tag":74,"props":698,"children":699},{},[700],{"type":48,"value":701},"Browse past transcripts or streaming sessions",{"type":48,"value":687},{"type":42,"tag":51,"props":704,"children":706},{"className":705},[],[707],{"type":48,"value":708},"references\u002Fhistory.md",{"type":42,"tag":117,"props":710,"children":711},{},[712,717,719],{"type":42,"tag":74,"props":713,"children":714},{},[715],{"type":48,"value":716},"Sign in\u002Fout, identity, balance, usage, rate limits, API keys, audit log",{"type":48,"value":718}," →\n",{"type":42,"tag":51,"props":720,"children":722},{"className":721},[],[723],{"type":48,"value":724},"references\u002Faccount.md",{"type":42,"tag":117,"props":726,"children":727},{},[728,756,757],{"type":42,"tag":74,"props":729,"children":730},{},[731,733,739,741,747,749,755],{"type":48,"value":732},"Scaffold a starter app (",{"type":42,"tag":51,"props":734,"children":736},{"className":735},[],[737],{"type":48,"value":738},"init",{"type":48,"value":740},"), diagnose setup (",{"type":42,"tag":51,"props":742,"children":744},{"className":743},[],[745],{"type":48,"value":746},"doctor",{"type":48,"value":748},"), set up\nyour coding agent's MCP + skills (",{"type":42,"tag":51,"props":750,"children":752},{"className":751},[],[753],{"type":48,"value":754},"setup",{"type":48,"value":58},{"type":48,"value":687},{"type":42,"tag":51,"props":758,"children":760},{"className":759},[],[761],{"type":48,"value":677},{"type":42,"tag":96,"props":763,"children":765},{"id":764},"anti-patterns",[766],{"type":48,"value":767},"Anti-patterns",{"type":42,"tag":340,"props":769,"children":770},{},[771,801,825,843,861,885],{"type":42,"tag":117,"props":772,"children":773},{},[774,786,788,793,795,800],{"type":42,"tag":74,"props":775,"children":776},{},[777,779,784],{"type":48,"value":778},"Passing ",{"type":42,"tag":51,"props":780,"children":782},{"className":781},[],[783],{"type":48,"value":169},{"type":48,"value":785}," to a run command.",{"type":48,"value":787}," It does not exist. Use ",{"type":42,"tag":51,"props":789,"children":791},{"className":790},[],[792],{"type":48,"value":138},{"type":48,"value":794},"\nor ",{"type":42,"tag":51,"props":796,"children":798},{"className":797},[],[799],{"type":48,"value":125},{"type":48,"value":307},{"type":42,"tag":117,"props":802,"children":803},{},[804,815,817,823],{"type":42,"tag":74,"props":805,"children":806},{},[807,809,814],{"type":48,"value":808},"Mixing a credential with the wrong ",{"type":42,"tag":51,"props":810,"children":812},{"className":811},[],[813],{"type":48,"value":197},{"type":48,"value":307},{"type":48,"value":816}," A ",{"type":42,"tag":51,"props":818,"children":820},{"className":819},[],[821],{"type":48,"value":822},"sandbox000",{"type":48,"value":824}," key won't work\nagainst production. Log in and run under the same environment.",{"type":42,"tag":117,"props":826,"children":827},{},[828,833,835,841],{"type":42,"tag":74,"props":829,"children":830},{},[831],{"type":48,"value":832},"Running before authenticating.",{"type":48,"value":834}," No key → auth failure. Run ",{"type":42,"tag":51,"props":836,"children":838},{"className":837},[],[839],{"type":48,"value":840},"assembly doctor",{"type":48,"value":842}," to\nsee exactly what's missing.",{"type":42,"tag":117,"props":844,"children":845},{},[846,859],{"type":42,"tag":74,"props":847,"children":848},{},[849,851,857],{"type":48,"value":850},"Assuming ",{"type":42,"tag":51,"props":852,"children":854},{"className":853},[],[855],{"type":48,"value":856},"pip install assemblyai-cli",{"type":48,"value":858}," works.",{"type":48,"value":860}," That PyPI name is squatted by\nan unrelated third party. Use the project's official install path, not that\nname.",{"type":42,"tag":117,"props":862,"children":863},{},[864,869,871,876,878,883],{"type":42,"tag":74,"props":865,"children":866},{},[867],{"type":48,"value":868},"Parsing human output.",{"type":48,"value":870}," Pipe stdout (auto-JSON) or pass ",{"type":42,"tag":51,"props":872,"children":874},{"className":873},[],[875],{"type":48,"value":364},{"type":48,"value":877}," \u002F ",{"type":42,"tag":51,"props":879,"children":881},{"className":880},[],[882],{"type":48,"value":389},{"type":48,"value":884},"\nrather than scraping the pretty-printed tables.",{"type":42,"tag":117,"props":886,"children":887},{},[888,900,901,907,908,914,915,921,923,928],{"type":42,"tag":74,"props":889,"children":890},{},[891,893,899],{"type":48,"value":892},"Forgetting ",{"type":42,"tag":51,"props":894,"children":896},{"className":895},[],[897],{"type":48,"value":898},"--show-code",{"type":48,"value":307},{"type":48,"value":255},{"type":42,"tag":51,"props":902,"children":904},{"className":903},[],[905],{"type":48,"value":906},"transcribe",{"type":48,"value":271},{"type":42,"tag":51,"props":909,"children":911},{"className":910},[],[912],{"type":48,"value":913},"stream",{"type":48,"value":599},{"type":42,"tag":51,"props":916,"children":918},{"className":917},[],[919],{"type":48,"value":920},"agent",{"type":48,"value":922}," accept\n",{"type":42,"tag":51,"props":924,"children":926},{"className":925},[],[927],{"type":48,"value":898},{"type":48,"value":929}," to print a ready-to-run Python SDK script for exactly the flags\nyou passed — no API call made. Great for \"how would I do this in code?\".",{"type":42,"tag":931,"props":932,"children":933},"style",{},[934],{"type":48,"value":935},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":937,"total":438},[938,952],{"slug":8,"name":8,"fn":939,"description":940,"org":941,"tags":942,"stars":949,"repoUrl":950,"updatedAt":951},"implement speech-to-text with AssemblyAI","Use when implementing speech-to-text, audio transcription, real-time streaming STT, audio intelligence features, or voice AI using AssemblyAI APIs or SDKs. Use when user mentions AssemblyAI, voice agents, transcription, speaker diarization, PII redaction of audio, LLM Gateway for audio understanding, or applying LLMs to transcripts. Also use when building voice agents with LiveKit or Pipecat that need speech-to-text, or when the user is working with any audio\u002Fvideo processing pipeline that could benefit from transcription, even if they don't mention AssemblyAI by name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[943,946,947,948],{"name":944,"slug":945,"type":15},"AI Infrastructure","ai-infrastructure",{"name":20,"slug":21,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},10,"https:\u002F\u002Fgithub.com\u002FAssemblyAI\u002Fassemblyai-skill","2026-07-12T08:08:37.132871",{"slug":4,"name":4,"fn":5,"description":6,"org":953,"tags":954,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[955,956,957,958],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"items":960,"total":25},[961],{"slug":4,"name":4,"fn":5,"description":6,"org":962,"tags":963,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[964,965,966,967],{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15}]