Skip to main content

Sarvam CLI

Agent-style terminal interface for Sarvam AI.

Sarvam CLI brings chat, voice, translation, transcription, language detection, and speech generation into a clean terminal workflow. It is designed to feel closer to a modern coding agent CLI than a thin API wrapper.

Why

Sarvam has strong multilingual and speech APIs, but quick experimentation usually means writing setup code first. Sarvam CLI removes that setup friction:

  • talk to Sarvam directly from the terminal
  • test speech and translation flows without boilerplate
  • switch between text, voice, and file-based workflows quickly
  • keep per-user config local and simple

Highlights

  • Guided home screen with onboarding
  • Interactive chat workspace with boxed composer flow
  • Voice chat using microphone input and spoken replies
  • Speech-to-text for audio files
  • Translation for file or stdin input
  • Text-to-speech with file output
  • Language detection
  • Per-user config with env-var overrides

Installation

Basic install:

pip install sarvam-cli

With voice support:

pip install "sarvam-cli[voice]"

For local development from this repo:

python -m venv .venv
source .venv/bin/activate
pip install -e .

Quick Start

  1. Set your API key:
sarvam config set-api-key
  1. Open the CLI:
sarvam
  1. Start chatting:
sarvam chat

Configuration

Sarvam CLI stores user config at:

~/.config/sarvam/config.json

Useful commands:

sarvam config set-api-key
sarvam config set-base-url https://api.sarvam.ai
sarvam config show
sarvam config path

Environment variables are also supported:

export SARVAM_API_KEY=your_api_key
export SARVAM_BASE_URL=https://api.sarvam.ai

For one-off overrides:

sarvam --api-key your_api_key chat "Hello"
sarvam --base-url https://api.sarvam.ai chat "Hello"

You can override the config directory too:

export SARVAM_CONFIG_DIR=/custom/path

Command Overview

Open the landing screen:

sarvam

Show guided help:

sarvam help

Interactive chat:

sarvam chat
sarvam chat "Explain transformers simply"

Voice chat:

sarvam chat --voice --lang hi-IN

Translate text:

sarvam translate notes.txt --to kn-IN --from-lang en-IN
cat notes.txt | sarvam translate --to hi-IN

Transcribe audio:

sarvam transcribe meeting.wav

Generate speech:

sarvam speak "Welcome to Sarvam AI" --lang en-IN --output speech.wav
sarvam speak "Namaste" --lang hi-IN --play

Detect language:

sarvam detect-language notes.txt

Chat UX

sarvam chat opens a dedicated terminal workspace rather than a plain prompt loop.

Inside chat:

/help   Show session commands
/stats  Show session stats
/clear  Reset conversation history
/exit   Leave the session

Voice Flow

Microphone
  -> Speech-to-Text
  -> Sarvam Chat
  -> Text-to-Speech
  -> Speaker

Common Examples

Translate English to Hindi:

sarvam translate ideas.txt --to hi-IN --from-lang en-IN

Chat in the terminal:

sarvam chat

Start a voice session in Hindi:

sarvam chat --voice --lang hi-IN

Generate spoken audio:

sarvam speak "This is a test" --lang en-IN --output test.wav

Check current config:

sarvam config show

Development

Run the CLI from source without installing the console script:

PYTHONPATH=src python -m sarvam_cli
PYTHONPATH=src python -m sarvam_cli help
PYTHONPATH=src python -m sarvam_cli chat

Run tests:

PYTHONPATH=src python -m unittest -v tests.test_e2e

Build release artifacts:

pip install -e ".[release]"
python -m build
python -m twine check dist/*

For full release instructions, see RELEASING.md.

Project Structure

src/sarvam_cli/cli.py      Command routing and user flows
src/sarvam_cli/api.py      Sarvam API client
src/sarvam_cli/ui.py       Terminal UX and rendering
src/sarvam_cli/config.py   User config handling
src/sarvam_cli/audio.py    Microphone and playback helpers
tests/test_e2e.py          End-to-end CLI tests

Notes

  • Voice features require optional audio dependencies and working local audio hardware.
  • The CLI supports per-user configuration and is suitable for installed users on the same machine without sharing credentials.
  • If you exposed a real API key publicly while testing, rotate it.

Metadata

Release files for sarvam-cli 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sarvam-cli 0.1.0
File Size Uploaded
sarvam_cli-0.1.0.tar.gz 18.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sarvam-cli 0.1.0
File Interpreter ABI Platform
sarvam_cli-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 33.3 kB

Release files / sarvam_cli-0.1.0.tar.gz

Download URL sarvam_cli-0.1.0.tar.gz
Size 18.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e2077e853093366193d2c2db0cd698122a3371f7219b6a2b66cb1984b10c1281
BLAKE2b-256 checksum
How to use checksums
a1a8df8426e22f39b26dc4759034cb74707ddd3213e407273443a5303cfc6ee0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release files / sarvam_cli-0.1.0-py3-none-any.whl

Download URL sarvam_cli-0.1.0-py3-none-any.whl
Size 14.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a698978806ca30dd4fe4886a0d3d111a6f5663cc6c5d372fb0cf9737edaf426
BLAKE2b-256 checksum
How to use checksums
d7baf8bf5f984e7bccea0d02c1e770d83f4b0bb04fd8ac0eba9b7993bca82f6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.5

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page