New docs: smallestai agents CLI, expanded SDK overview, quickstart env + layout FAQs
New docs: smallestai agents CLI, expanded SDK overview, quickstart env + layout FAQs
Three updates under Developer → Get Started.
Agents CLI reference. New page walking every command under smallestai agents (create, list, get, dashboard, phone-status, call) with argument and option tables, an end-to-end example, and the SMALLEST_API_KEY / SMALLEST_BASE_URL env-var contract.
SDK overview expanded. What is Atoms Agent Crews SDK? now covers the full picture in one page. The crew, node, and crew-code term model. The two independent versioning axes (config vs builds) with a summary table. An eight-step lifecycle from create to live call. A versioning API sample. A working end-to-end sample (server.py, assistant.py, requirements.txt). A six-item FAQ that names the common gotcha: agent-crew links to an existing agent, it doesn’t create one.
Quickstart FAQ additions. Two setup gotchas appended to the Quickstart Crew CLI FAQ. How to set environment variables in production (a .env at the project root plus load_dotenv(), ships in the deploy bundle). What project layout the cloud build expects (flat directory, or add a requirements.txt alongside a pyproject.toml to skip pip install .).
Billing read APIs available via user API key
Five billing read endpoints are now callable with your user API key (Authorization: Bearer <key>). Previously these were UI-only; use them to build credit-balance dashboards, ledger exports, or invoice pipelines outside the console.
Base URL is https://api.smallest.ai (not /atoms/v1). Organization is resolved from the API key itself, so no X-Organization-Id header is required.
Only these read endpoints accept the API key. Purchase, auto-reload, and payment-method routes stay UI-only; a leaked key cannot make purchases or change payment methods.
See the Billing section in the API Reference for full request/response schemas.
New guide: Build your agent
New guide: Build your agent
New page under Create Agent → Build your agent that orders every agent configuration field by priority so you know what to fill in first.
Four tiers:
- Required. Name, prompt, voice, language, model. The minimum to hold a real conversation.
- Recommended. First message, phone number, knowledge base. Every production agent has these.
- Advanced. VAD, denoising, voicemail detection, timeouts, turn-taking, pronunciation. Reach for these when tuning a live agent.
- Publish and activate. The two-step gate that promotes changes to live traffic.
Complements the existing Quick start (five-minute template walkthrough) and Agent Settings overview (deep-dive card index). This page is the “what should I touch and in what order” answer for the middle ground.
Python SDK 5.3.0 - unified speech-to-text namespace (breaking), voice cloning, Electron LLM, webhook update
Python SDK 5.3.0 - unified speech-to-text namespace (breaking), voice cloning, Electron LLM, webhook update
smallestai==5.3.0 retires the legacy Waves STT methods and moves both file and live transcription under one client.waves.speech_to_text namespace. It also adds voice cloning, the Electron LLM completion client, and a webhook-update method. Constructor signature is unchanged: SmallestAI(api_key="...") keeps working.
Update your install
Breaking: unified speech-to-text
The two legacy STT methods are removed and replaced by one namespace. Migration is a rename, no behavior change:
Batch transcribe(...) takes typed model (pulse / pulse-pro) and language. There is no deprecation alias; the old names are gone in 5.3.0.
Typed streaming helper
The live endpoint reads its session config (model, language, sample_rate, encoding, and tuning knobs) from the WebSocket handshake query string. speech_to_text.stream(...) accepts these through request_options["additional_query_parameters"]. For a typed, discoverable call, use the helper:
The helper types the full Speech-to-Text param set: audio (sample_rate, encoding, format), transcript formatting (word_timestamps, sentence_timestamps, diarize, punctuate, capitalize, itn_normalize, numerals, full_transcript, max_words), turn-taking (finalize_on_words, eou_timeout_ms), VAD (vad, vad_events, vad_threshold, vad_min_speech_ms), redaction (redact_pii, redact_pci), and keyword boosting (keywords). Booleans are sent as "true" / "false" and list params (keywords, redact_pii, redact_pci) are comma-joined for you; anything not named still passes through additional_query_parameters.
New (additive, no action needed)
Migration
The rename is mechanical. A single repo-wide sed:
If you imported smallestai.waves.types.transcribe_pulse_* directly, switch to the transcribe / stream response types. Full SDK-side write-up: MIGRATION.md on smallest-python-sdk.

