I-layder-I/voice-assistant

CLI Voice Assistant

C++

0

36 commits

updated Oct 7, 2026

See the code

See what people are saying

SourceMessageScoreDate

Yet another voice assistant, but now open source (r/coolgithubprojects)

**Some backstory first.** As some of you may know, there used to be a voice assistant for Windows that let you build commands for just about anything. I can't remember the name, but the author said he got doxxed and decided to shut the project down without open-sourcing it. Some time later, after…

1

Oct 7, 2026

README

Voice Assistant

A lightweight offline voice assistant for Linux, written in C++ using Vosk.

Speech recognition is performed locally, without cloud services. User commands are defined using regular shell scripts, so the assistant can be extended without modifying the source code.

English version | Русская версия

Features

  • Offline speech recognition
  • Support for multiple languages and Vosk models
  • User commands through shell scripts
  • No cloud services required

Requirements

For running:

  • Linux
  • ALSA
  • Vosk
  • ICU
  • At least one Vosk model

For building additionally:

  • C++23 compiler
  • CLI11

Installation

Prebuilt version

Installation script:

curl -fsSL https://raw.githubusercontent.com/I-layder-I/voice-assistant/main/install.sh | bash

After installation:

voice-assistant --help

Build from source

git clone https://github.com/I-layder-I/voice-assistant.git
cd voice-assistant

On Arch Linux, dependencies can be installed with:

sudo pacman -S base-devel alsa-lib icu vosk cli11

Then build:

g++ voice-assistant.cpp \
    -o build/voice-assistant \
    -std=c++23 \
    -lasound \
    -pthread \
    -lvosk \
    -licuuc

Quick Start

Commands are located in:

~/.config/voice-assistant/commands/

Models can be downloaded from the official Vosk page.

  1. Download a suitable model from the official website.
  2. Extract the archive.
  3. Rename the model directory to the language code, for example:
en

or:

ru
  1. Place the model in:
~/.local/share/voice-assistant/models/

For example:

~/.local/share/voice-assistant/models/
└── en/

Then:

voice-assistant --language en

User Commands

Commands are regular shell scripts.

Example:

#!/bin/bash

# WORDS: open browser, run browser

firefox

File:

~/.config/voice-assistant/commands/browser.sh

The assistant will find the command using the specified keywords and execute the corresponding script.

Two matching modes are supported:

voice-assistant --matching exact
voice-assistant --matching substring

A detailed description of the command format, WORDS, matching, and other features can be found in the documentation.

CLI

Main options:

OptionDescription
-m, --modelPath to the Vosk model
-c, --commandsPath to the commands directory
-r, --sample-rateSample rate
--languageRecognition language
--stdinProcess text through stdin
--matchingCommand matching mode
--vosk-debugVosk debug output

Full list:

voice-assistant --help

Uninstallation

If the program was installed using the installation script:

curl -fsSL https://raw.githubusercontent.com/I-layder-I/voice-assistant/main/uninstall.sh | bash

User models and commands are removed separately.

License

The project is distributed under the MIT license.

The full license text is available in the LICENSE file.

I-layder-I/voice-assistant

CLI Voice Assistant

C++

0

36 commits

updated Oct 7, 2026

See the code

See what people are saying

SourceMessageScoreDate

Yet another voice assistant, but now open source (r/coolgithubprojects)

**Some backstory first.** As some of you may know, there used to be a voice assistant for Windows that let you build commands for just about anything. I can't remember the name, but the author said he got doxxed and decided to shut the project down without open-sourcing it. Some time later, after…

1

Oct 7, 2026

README

Voice Assistant

A lightweight offline voice assistant for Linux, written in C++ using Vosk.

Speech recognition is performed locally, without cloud services. User commands are defined using regular shell scripts, so the assistant can be extended without modifying the source code.

English version | Русская версия

Features

  • Offline speech recognition
  • Support for multiple languages and Vosk models
  • User commands through shell scripts
  • No cloud services required

Requirements

For running:

  • Linux
  • ALSA
  • Vosk
  • ICU
  • At least one Vosk model

For building additionally:

  • C++23 compiler
  • CLI11

Installation

Prebuilt version

Installation script:

curl -fsSL https://raw.githubusercontent.com/I-layder-I/voice-assistant/main/install.sh | bash

After installation:

voice-assistant --help

Build from source

git clone https://github.com/I-layder-I/voice-assistant.git
cd voice-assistant

On Arch Linux, dependencies can be installed with:

sudo pacman -S base-devel alsa-lib icu vosk cli11

Then build:

g++ voice-assistant.cpp \
    -o build/voice-assistant \
    -std=c++23 \
    -lasound \
    -pthread \
    -lvosk \
    -licuuc

Quick Start

Commands are located in:

~/.config/voice-assistant/commands/

Models can be downloaded from the official Vosk page.

  1. Download a suitable model from the official website.
  2. Extract the archive.
  3. Rename the model directory to the language code, for example:
en

or:

ru
  1. Place the model in:
~/.local/share/voice-assistant/models/

For example:

~/.local/share/voice-assistant/models/
└── en/

Then:

voice-assistant --language en

User Commands

Commands are regular shell scripts.

Example:

#!/bin/bash

# WORDS: open browser, run browser

firefox

File:

~/.config/voice-assistant/commands/browser.sh

The assistant will find the command using the specified keywords and execute the corresponding script.

Two matching modes are supported:

voice-assistant --matching exact
voice-assistant --matching substring

A detailed description of the command format, WORDS, matching, and other features can be found in the documentation.

CLI

Main options:

OptionDescription
-m, --modelPath to the Vosk model
-c, --commandsPath to the commands directory
-r, --sample-rateSample rate
--languageRecognition language
--stdinProcess text through stdin
--matchingCommand matching mode
--vosk-debugVosk debug output

Full list:

voice-assistant --help

Uninstallation

If the program was installed using the installation script:

curl -fsSL https://raw.githubusercontent.com/I-layder-I/voice-assistant/main/uninstall.sh | bash

User models and commands are removed separately.

License

The project is distributed under the MIT license.

The full license text is available in the LICENSE file.