ɳSelfɳSELFDOCS
  • Getting Started

    • Introduction
    • Quick Start
    • Installation
    • Your First Project
  • Core Concepts

    • Architecture Overview
    • Project Structure
    • Configuration
    • Environments
  • Services

    • PostgreSQL Database
    • Hasura GraphQL
    • Authentication
    • Real-Time Communication
    • Storage (MinIO)
    • Email Configuration
    • Redis Cache
    • Search Engines
    • Functions
    • MLflow (ML Tracking)
    • Monitoring & Metrics
    • Admin UI
    • Dashboard
  • Database Tools

    • Schema Management
    • Migrations
    • Seeding Data
    • Backup & Restore
    • dbdiagram.io Sync
  • Microservices

    • NestJS Services
    • BullMQ Workers
    • Go Services
    • Python Services
  • CLI Reference

    • Complete Command Reference
    • Core Commands
    • Database Commands
    • Service Management
    • Production Commands
  • Deployment

    • Local Development
    • Production Setup
    • SSL/TLS Configuration
    • Domain Configuration
    • Environment Variables
  • Advanced Topics

    • Multi-Tenancy & SaaS
    • Security & Hardening
    • Custom Actions
    • Webhooks
    • Performance Tuning
    • Troubleshooting
  • ɳClaw

    • Backend Manager
    • API Gateway
    • Voice Input
    • Threads & Projects
  • Migration Guides

    • From Supabase
    • From Nhost
    • From Firebase
  • Resources

    • Changelog
    • Licensing
    • FAQ
    • Contributing
    • Support

ɳClaw Voice

ɳClaw supports voice input in the web client and voice message processing via Telegram. Speak naturally, and your words are transcribed before being sent to the AI.

Platform support

PlatformInputOutputNotes
Web (Chrome)Web Speech APIText onlyHold-to-speak button in the input bar
Web (Safari)Web Speech APIText onlySame hold-to-speak UI
Telegram botVoice messagesText replyWhisper transcription on the server
iOS appNative speechTTS (nself-voice)Requires Max tier + nself-voice plugin
macOS appNative speechTTS (nself-voice)Requires Max tier + nself-voice plugin

Web client — hold-to-speak

The web client uses the Web Speech API for voice input. No audio is sent to a cloud transcription service — transcription runs in the browser on your device.

How it works:

  1. Hold the microphone button in the input bar.
  2. Speak your message. Text appears in the input field in real time.
  3. Release the button. The transcript is editable before you send.
  4. Press Enter or click Send to submit.

If the browser does not support the Web Speech API (Firefox, some mobile browsers), the mic button is hidden and the text input works normally. There is no error state — it falls back silently.

Telegram voice messages

When the ɳClaw Telegram bot is connected, voice messages are transcribed using OpenAI Whisper running on your server. The transcript is sent to the AI as a normal text message. No audio is stored after transcription.

Setup

Whisper runs as part of the nself-ai plugin. Make sure it is installed:

nself plugin install ai
nself build && nself restart

Whisper model size is configurable. Larger models are more accurate but slower and need more RAM.

# In your backend .env
NSELF_AI_WHISPER_MODEL=base     # default — fast, ~1 GB RAM
# NSELF_AI_WHISPER_MODEL=small  # better accuracy, ~2 GB RAM
# NSELF_AI_WHISPER_MODEL=medium # near-human accuracy, ~5 GB RAM

nself-voice plugin (Max tier)

The nself-voice plugin adds text-to-speech output to the iOS and macOS native apps. When enabled, ɳClaw reads its replies aloud using your preferred voice.

Install

nself plugin install voice
nself build && nself restart

Configuration

# In your backend .env
NSELF_VOICE_PROVIDER=system     # default — uses OS TTS (no extra cost)
# NSELF_VOICE_PROVIDER=openai   # OpenAI TTS (requires OPENAI_API_KEY)
# NSELF_VOICE_PROVIDER=elevenlabs # ElevenLabs (requires ELEVENLABS_API_KEY)

NSELF_VOICE_DEFAULT_ON=false    # set to true to enable TTS by default for new users

Users can toggle TTS on and off per-session inside the app. The server setting controls the default.

CLI commands

# Check voice configuration
nself claw voice status

# Set Whisper model size
nself claw voice whisper-model --set base

# Test Whisper transcription with a local audio file
nself claw voice test --file recording.mp3

# Enable or disable TTS output
nself claw voice tts --enable
nself claw voice tts --disable

# Set TTS provider
nself claw voice tts --provider openai

Requirements

  • nSelf v0.9.9 or later
  • Max license ($19/yr) — required for nself-voice TTS and Telegram voice
  • nself plugin install ai — required for Whisper transcription
  • nself plugin install voice — required for TTS output (iOS/macOS)
  • Web Speech API: Chrome or Safari (Firefox not supported)