Getting Started
Install & Setup
Install Python Package (3.11+)
Runs 100% offline on Python 3.11+ stdlib across Linux, macOS, Raspberry Pi & Android Termux.
pip install -e git+https://github.com/codesphere-u/sautimesh.git#egg=sautimesh
First Voice Turn
Run your first mixed-language turn cleanly offline with automatic SMS/USSD packing and SQLite WAL persistence:
sautimesh chat --text "Ssebo obuwuka bungi mu kasooli farm yange leero" --currency UGX
All Subcommands
| Command | Function | Mode |
|---|---|---|
sautimesh analyze "..." | Token-level language tags, CSI, PII stripping, GSM-7/UCS-2 counts. | Offline |
sautimesh chat --text "..." | Runs cascade routing, formats voice/SMS/USSD output, logs to SQLite. | Cascade |
sautimesh synth-sample out.wav | Generates deterministic 16kHz PCM WAV test utterance + VAD metrics. | Audio WAV |
sautimesh eval | Executes all 7 African & global code-switch benchmark scenarios. | 7/7 Eval |
sautimesh sync | Drains pending store-and-forward outbox messages safely. | WAL Sync |
sautimesh dpg-card | Exports DPGA Open Source AI transparency manifest. | DPGA Card |
sautimesh serve | Launches local Voice Workbench server at 127.0.0.1:8765. | HTTP :8765 |
sautimesh mcp | Starts zero-dependency stdio JSON-RPC 2.0 MCP server. | Stdio MCP |
ASR, TTS & Ollama Cascade
SautiMesh pairs pure-Python 16 kHz PCM VAD with clean CLI/HTTP protocols for regional open weights:
- Sunbird AI Sunflower v2 / Gemma Edge: Open weights for 67 African languages via Ollama or GGUF endpoints.
- whisper.cpp / faster-whisper / Meta MMS: Swap
ExternalCommandASRwhen native binaries are present. - Piper ONNX / USOAL Luganda TTS: Plug local ONNX voices into
PiperCommandTTS.
5 Native MCP Tools
{
"mcpServers": {
"sautimesh": { "command": "sautimesh", "args": ["mcp"] }
}
}
Workbench HTTP Routes
Running sautimesh serve exposes GET /api/health, GET /api/eval, GET /api/queue, GET /api/dpg, POST /api/analyze, POST /api/turn, and POST /api/sync.
SQLite WAL Store-and-Forward
Every urgent clinical or cooperative escalation writes idempotently into outbox_queue with MAX_RETRIES=3 before dead-letter isolation so interrupted 2G/3G sessions never lose citizen requests.