Skip to content

Releases: AssemblyAI/cli

v0.1.8

17 Jun 13:44
37e3a01

Choose a tag to compare

What's Changed

  • Bottle v0.1.7 by @github-actions[bot] in #177
  • Add per-row and pooled latency metrics to eval command by @alexkroman in #178
  • Add --llm-reduce: one LLM prompt over all batch-transcribe results by @alexkroman in #179
  • Support batch transcript fetching from piped stdin by @alexkroman in #180
  • Add batch streaming mode: assembly stream --from-stdin by @alexkroman in #181
  • Add --show-code flag to agent-cascade for script generation by @alexkroman in #182
  • Document transcript summarization workflow in README by @alexkroman in #183
  • Add --llm and --llm-reduce flags to assembly eval by @alexkroman in #184
  • Centralize stdio TTY checks into dedicated functions by @alexkroman in #185
  • Add --save-audio flag to record streamed PCM to WAV by @alexkroman in #186
  • Add dependency-free diarization error rate (DER) scoring by @alexkroman in #187
  • Support multiple datasets in eval command by @alexkroman in #188
  • Add file argument support to llm command by @alexkroman in #189
  • Simplify update notifier helpers by @alexkroman in #190
  • Add --save-transcript and --save-dir flags for transcript/audio file output by @alexkroman in #191
  • Add -o/--output flag to dictate command for text/json modes by @alexkroman in #192
  • Add podcast RSS/Atom feed expansion to transcribe command by @alexkroman in #195
  • Stop streaming commands cleanly on SIGTERM, like Ctrl-C by @alexkroman in #194
  • Support per-channel WAV files for --system-audio with --save-dir by @alexkroman in #196
  • Support piped stdout in dictate: auto-start single utterance by @alexkroman in #193
  • Add guards for stale help examples and JSON output purity by @alexkroman in #197
  • Respect --quiet flag for reduce progress table by @alexkroman in #198
  • Add field projection (-o) to read commands for pipe-friendly column output by @alexkroman in #199
  • Map Ctrl-C to exit code 130 (cancel) instead of 0 by @alexkroman in #202
  • Add --url flag to speak command for reading web pages aloud by @alexkroman in #201
  • Allow variadic positional sources for hand-picked batch transcription by @alexkroman in #203
  • Increase default max-tokens from 1000 to 8192 by @alexkroman in #204
  • Add --save-dir finalization: auto-name, note, and sidecar by @alexkroman in #200
  • Make login default to production, not stored env by @alexkroman in #205
  • Simplify dictate to auto-start recording and exit after one utterance by @alexkroman in #206
  • Fix error handling and edge cases across auth, keys, and agent systems by @alexkroman in #207
  • llm: accept a directory argument, recursing for .md/.txt by @alexkroman in #209
  • fix(telemetry): don't record a cancelled command as an error by @alexkroman in #210
  • Simplify: dedup actor label, reuse JSON policy, StrEnum-ify usage window by @alexkroman in #211
  • refactor(voices): extract shared --list-voices rendering and voice validation by @alexkroman in #212
  • Restrict the sandbox to AssemblyAI logins by @alexkroman in #208
  • feat(clip,dub,caption): add --from-stdin batch mode by @alexkroman in #213
  • Refactor eval and stream exec modules below the size limit by @alexkroman in #214
  • Extract the OS keyring into core/keyring_store by @alexkroman in #215
  • refactor(code_gen): type LLM-Gateway options to drop cast() escape hatches by @alexkroman in #216
  • Serialize config.toml writes with a cross-process lock (+ concurrency tests) by @alexkroman in #217

Full Changelog: v0.1.7...v0.1.8

v0.1.7

16 Jun 14:37
53b3141

Choose a tag to compare

What's Changed

  • Bottle v0.1.6 by @github-actions[bot] in #166
  • Simplify transcribe/config-builder duplication by @alexkroman in #167
  • Simplify dictate language parsing and hoist help command rank by @alexkroman in #168
  • Add --turn-detection presets to assembly stream by @alexkroman in #169
  • Add cascaded agent-framework init template; make all init templates importable + type-checked by @alexkroman in #170
  • Add assembly agent-framework: a terminal client-orchestrated voice cascade by @alexkroman in #171
  • Use preserve_logging_state in test_ws websockets-silencer tests by @alexkroman in #172
  • Extract shared system-prompt resolver for the two voice commands by @alexkroman in #173
  • Document cross-platform portability and release gotchas in AGENTS.md by @alexkroman in #174
  • Rename agent-framework command and module to agent-cascade by @alexkroman in #175
  • Fix agent-cascade/speak streaming TTS and thread STT/LLM/TTS options by @alexkroman in #176

Full Changelog: v0.1.6...v0.1.7

v0.1.6

14 Jun 03:14
b9d575e

Choose a tag to compare

What's Changed

  • Bottle v0.1.5 by @github-actions[bot] in #123
  • Extract WebSocket authorization logic to shared diagnostics module by @alexkroman in #124
  • Add opt-in diagnostic logging behind -v/--verbose flag by @alexkroman in #125
  • Add VTT subtitle export and --chars-per-caption option by @alexkroman in #126
  • Collapse websockets binary frame hex dumps to byte counts by @alexkroman in #127
  • Add karaoke subtitle burning example to README by @alexkroman in #128
  • Add assembly clip command to cut media by transcript content by @alexkroman in #129
  • Refresh uv.lock and adopt click 8.4 in the show-code gate by @alexkroman in #130
  • Snap clip boundaries into detected silence to avoid mid-word cuts by @alexkroman in #132
  • Split CodeQL Swift analysis into separate workflow by @alexkroman in #133
  • Add assembly dictate: hotkey-driven push-to-talk transcription by @alexkroman in #131
  • Add fsspec-backed remote storage support for bucket URLs by @alexkroman in #134
  • Add assembly dub command for video/audio dubbing by @alexkroman in #135
  • Switch speak/dub default voices to the requested language's native voice by @alexkroman in #136
  • Split init/dev/share/deploy/eval into options/run exec modules by @alexkroman in #138
  • Add video support (--video) to clip/dub and a new caption command by @alexkroman in #139
  • Update README with new caption command and improved examples by @alexkroman in #141
  • Add --download-sections flag to dub command for partial video dubbing by @alexkroman in #140
  • Deduplicate clip/dub media scaffolding into shared mediafile module by @alexkroman in #137
  • Refactor README in the style of leading CLI READMEs by @alexkroman in #142
  • Deduplicate FakeYoutubeDL test doubles into a shared stub factory by @alexkroman in #144
  • Restructure for concurrent agent contributions: derive registration, isolate patches, split guidance by @alexkroman in #145
  • Adopt UX/DX conventions from the Codex/Gemini/Antigravity CLIs by @alexkroman in #146
  • tests: pin render width suite-wide so --help asserts match CI by @alexkroman in #147
  • Fold per-command run-logic into commands// packages by @alexkroman in #148
  • Simplify: drop vestigial local re-imports and collapse is_agentic by @alexkroman in #149
  • fix: render the [sandbox] tag on speak/dub help instead of eating it by @alexkroman in #150
  • Reduce LOC with shared media-source, JSON-emit, and omit-None helpers by @alexkroman in #151
  • Tighten the gate: add ASYNC/LOG/TID/etc. ruff rules + remaining mypy strict flags by @alexkroman in #153
  • Refactor near-500-line files along natural seams by @alexkroman in #152
  • test: drop no-op resolve_json monkeypatching by @alexkroman in #155
  • Refactor CLI help copy to terse, period-less Codex-CLI style by @alexkroman in #154
  • Restructure aai_cli into a layered package (commands > app > ui > core) by @alexkroman in #156
  • Type the agent NDJSON events and HF /splits parsing with Pydantic by @alexkroman in #157
  • Narrow handshake_status with isinstance instead of int() coercion by @alexkroman in #158
  • Drop redundant self-path header comments by @alexkroman in #159
  • Let release.yml be cut from a manual workflow_dispatch by @alexkroman in #160
  • Type llm messages with ChatCompletionMessageParam instead of suppressing by @alexkroman in #161
  • Fix CLI error-handling papercuts and make the gate pass on macOS by @alexkroman in #163
  • ci: add Windows to the test matrix and fix Windows-only test breakage by @alexkroman in #162
  • Fix CLI QA papercuts: silent --download-sections drop, port bounds, init exit codes by @alexkroman in #164
  • Fix release.yml tag job: set git identity for annotated tag by @alexkroman in #165

Full Changelog: v0.1.5...v0.1.6

v0.1.5

12 Jun 18:18
6bf9b30

Choose a tag to compare

What's Changed

  • gitleaks: tolerate newer versions (allowlist a generic-api-key false positive) by @alexkroman in #114
  • Bottle v0.1.4 by @github-actions[bot] in #115
  • Split CLI help snapshots by command group to reduce merge conflicts by @alexkroman in #116
  • Derive version from git tags via hatch-vcs by @alexkroman in #117

Full Changelog: v0.1.4...v0.1.5

v0.1.4

12 Jun 16:37
fb35239

Choose a tag to compare

What's Changed

  • Consolidate error classification for realtime WebSocket failures by @alexkroman in #107
  • Bottle v0.1.3 by @github-actions[bot] in #108
  • Refactor usage models to Pydantic with graceful degradation by @alexkroman in #109
  • Add assembly webhooks listen command for local webhook development by @alexkroman in #110
  • Refactor context module: extract utilities, consolidate error handling by @alexkroman in #112
  • Refresh README with updated feature descriptions and examples by @alexkroman in #111
  • Bump version to 0.1.4 by @alexkroman in #113

Full Changelog: v0.1.3...v0.1.4

v0.1.3

12 Jun 13:38
7e8e9d0

Choose a tag to compare

What's Changed

Full Changelog: v0.1.2...v0.1.3

v0.1.0

11 Jun 21:58
052ad2e

Choose a tag to compare

What's Changed

  • Add AssemblyAI CLI (aai) by @alexkroman in #1
  • Build(deps): Bump the actions group with 2 updates by @dependabot[bot] in #2
  • feat(cli): unify transcribe + stream LLM Gateway under --llm by @alexkroman in #5
  • Build(deps): Bump the python-deps group with 16 updates by @dependabot[bot] in #4
  • feat(auth): browser-based Stytch OAuth login + environment switching by @alexkroman in #6
  • feat: aai init — interactive project scaffolder (transcribe, stream, agent) by @alexkroman in #7
  • Help examples, error suggestions, and test cleanup by @alexkroman in #8
  • Install-path testing: install.sh smoke tests, CI, and dev docs by @alexkroman in #9
  • Remove dead code with no production callers by @alexkroman in #10
  • Improve Claude Code setup: SessionStart hook, git perms, planning + review wiring by @alexkroman in #12
  • feat(config): persist Stytch session + account id per profile by @alexkroman in #11
  • simplify: dedupe webhook-header, code-gen gateway, proc-detail, and nested-attr helpers by @alexkroman in #13
  • refactor: centralize resolution, unify auth detection, harden agent/config by @alexkroman in #14
  • Narrow bare dict/list annotations to parameterized types by @alexkroman in #15
  • Env-aware Voice Agent URL + grouped --help and Vercel/Supabase-style copy, colors & UX by @alexkroman in #16
  • chore: strengthen CLI quality gates by @alexkroman in #17
  • Add macOS system audio streaming by @alexkroman in #18
  • Leverage pydantic, simplify shared helpers, and lint CI workflows by @alexkroman in #19
  • Refactor README into Supabase/Vercel CLI house style by @alexkroman in #20
  • Add bundled aai-cli skill and aai setup; adopt AGENTS.md by @alexkroman in #21
  • Unify CLI tables on one minimal, consistent style by @alexkroman in #22
  • test: cover human-render, init launch, and error-path gaps by @alexkroman in #23
  • Clarify transcribe/stream CLI help text by @alexkroman in #24
  • Homebrew tap, Python 3.12 floor, and install/CI hardening by @alexkroman in #26
  • docs/config: sync gate docs to check.sh; expand agent allowlist by @alexkroman in #28
  • Remove code duplication across CLI modules by @alexkroman in #27
  • Tighten complexity/length gates and refactor to satisfy them by @alexkroman in #29
  • Add actionlint, zizmor, gitleaks, and refurb gates to check.sh by @alexkroman in #30
  • test: kill surviving mutants in errors, timeparse, follow by @alexkroman in #31
  • Add state nonce to OAuth flow for login CSRF protection by @alexkroman in #32
  • Harden YouTube download fallback to pick the largest landed file by @alexkroman in #34
  • Route root-callback env errors through the standard error path by @alexkroman in #35
  • Improve CLI UX: enums, validation, help panels, and completions by @alexkroman in #33
  • Tidy a few non-idiomatic patterns by @alexkroman in #36
  • Split oversized modules and gate file length at 500 lines by @alexkroman in #38
  • Make CLI output idioms match the tools agents see most by @alexkroman in #37
  • Add Typer range validation to numeric CLI options by @alexkroman in #39
  • Refactor: extract shared muted-footnote/stack render helpers by @alexkroman in #40
  • Clear mypy annotation-unchecked notes in tests by @alexkroman in #41
  • Fix license badge and simplify README prose by @alexkroman in #43
  • Test brew/pipx/uv tool installs from the branch in CI by @alexkroman in #42
  • Default to production environment; drop login state nonce by @alexkroman in #44
  • Add stream --llm-interval throttle and fix show-code LLM-chain parity by @alexkroman in #45
  • Add aai onboard guided onboarding wizard by @alexkroman in #46
  • test: standardize SDK-boundary mocking on pytest-mock by @alexkroman in #47
  • Simplify: dedupe optional-key resolution, status cells, doctor checks by @alexkroman in #48
  • [Aikido] AI Fix for Potential file inclusion attack via reading file by @aikido-autofix[bot] in #49
  • Add aai dev/share/deploy and make starter templates deployable beyond Vercel by @alexkroman in #51
  • Restyle aai init starter templates with the AssemblyAI brand system by @alexkroman in #52
  • Lazy-validate AAI_AUTH_PORT to prevent import-time crashes by @alexkroman in #53
  • Robustness, environment-aware code gen, and config caching by @alexkroman in #54
  • Validate input before credentials; fix help rendering and closed pipes by @alexkroman in #55
  • Fix QA findings: non-interactive auth, input validation, error hygiene by @alexkroman in #56
  • test: kill surviving mutants in config/output/microphone/transcribe_render by @alexkroman in #57
  • Fix UX/DX audit findings across the CLI surface by @alexkroman in #58
  • Fix YouTube --show-code, Vercel deploy framework, stream poll default, --llm help by @alexkroman in #59
  • Add record/replay fixture harness for end-to-end CLI tests by @alexkroman in #60
  • Add sandbox-only aai speak streaming TTS command by @alexkroman in #61
  • Fix code-review findings: JSON list output, agent/TTS robustness, auth-flow structure by @alexkroman in #62
  • Transcribe and stream podcast pages (any yt-dlp-extractable URL) by @alexkroman in #63
  • Add aai transcribe --download-sections (yt-dlp passthrough) by @alexkroman in #64
  • Rename CLI command from aai to assembly by @alexkroman in #65
  • Add anonymous usage telemetry collection by @alexkroman in #66
  • Add Datadog CLI-usage dashboard + JSON validity gate by @alexkroman in #67
  • Reorganize code_gen and command tests by concern by @alexkroman in #68
  • Ship a prebuilt Homebrew bottle on release; drop install.sh by @alexkroman in #69

New Contributors

  • @alexkroman made their first contribution in #1
  • @dependabot[bot] made their first contribution in #2
  • @aikido-autofix[bot] made their first contribution in #49

Full Changelog: https://github.com/AssemblyAI/cli/commits/v0.1.0