Open Source · Self-Hosted · Private

Voice to Teksto,
Instantly with AI

An open-source WhatsApp bot that transcribes voice messages to text using local AI. Fully self-hosted, private, and blazing fast with GPU acceleration.

Everything You Need

TekstoBot brings powerful speech-to-text capabilities to WhatsApp, running entirely on your own infrastructure.

🎙️

Audio Transcription

Receive voice messages and instantly get accurate text transcriptions powered by Whisper AI — all processed locally.

📊

Admin Dashboard

Manage authorized numbers, view transcription history, and monitor connection status through an intuitive web interface.

🔒

Privacy First

All processing happens on your own server. No data leaves your infrastructure — your voice messages stay yours.

⚡

GPU Accelerated

Automatic NVIDIA GPU detection and acceleration through CDI mapping. Falls back gracefully to CPU when no GPU is available.

🛡️

Whitelist Access

Only pre-authorized phone numbers in your database can interact with the bot, giving you full control over access.

🚀

Async Processing

Built with Go's goroutines and worker pools, ensuring the bot stays responsive even under heavy load.

Simple Three-Step Flow

From voice message to readable text in seconds.

1

User Sends Voice

An authorized user sends a voice message via WhatsApp to the bot number.

2

AI Transcribes

Whisper AI processes the audio locally and converts speech to text with high accuracy.

3

Text Delivered

The transcribed text is sent back to the user as a WhatsApp message, instantly.

Built with Modern Tech

A carefully chosen stack for performance, reliability, and developer experience.

Installation

Choose the installation method that best fits your environment.

Step 1 — Add the Repository
# Install the TekstoBot RPM repository
sudo dnf localinstall -y https://rpm.rda.run/repo.rpm
Step 2 — Install TekstoBot
# Install TekstoBot from the repository
sudo dnf install -y tekstobot
Step 3 — Configure Environment
# Copy and edit the environment file
sudo cp /etc/tekstobot.env.example /etc/tekstobot.env
sudo vi /etc/tekstobot.env
Step 4 — Start Services
# Enable and start TekstoBot (Whisper starts automatically)
sudo systemctl enable --now tekstobot

# Follow the logs
sudo journalctl -u tekstobot -f
💡 The RPM post-install script automatically detects NVIDIA GPU support. With a GPU, Whisper uses CUDA acceleration; without one, it falls back to CPU mode seamlessly.
Step 1 — Clone & Configure
# Clone the repository
git clone https://github.com/rda-run/tekstobot.git
cd tekstobot

# Configure environment variables
cp .env.example .env
# Edit .env with your database credentials

# Install Go dependencies
go mod tidy
Step 2 — Database & Whisper
# Run database migrations
make migrate-up

# Start the Whisper AI container
make whisper
Step 3 — Run TekstoBot
# Start the bot
make run

# Access the dashboard at http://localhost:8080
📋 Prerequisites: Go 1.21+, PostgreSQL, and Podman (or Docker) must be installed on your system.
NVIDIA Container Toolkit (AlmaLinux / RHEL)
# Add the official NVIDIA repository
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
  sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

# Install the toolkit
sudo dnf install -y nvidia-container-toolkit

# Generate CDI hardware descriptors
sudo mkdir -p /etc/cdi
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
🎮 GPU acceleration allows Whisper to transcribe voice messages significantly faster. CDI mapping enables Podman to natively access your GPU without privileged containers.
⚡

Automatic GPU Detection

TekstoBot's RPM package automatically detects whether your system has NVIDIA GPU support. When a GPU is present, Whisper leverages CUDA for blazing-fast transcriptions. Without a GPU, it seamlessly falls back to CPU mode — no manual configuration required.