Skip to content

mdonmez/moves-cli

Repository files navigation

moves

Presentation control, reimagined.

moves Python License: GPL v3

moves is a presentation control system that uses offline speech recognition and a hybrid similarity engine to advance slides automatically based on your speech. This enables a hands-free presentation experience.


Table of Contents


Features

  • Hands-Free: Automatically advances slides based on your speech for a seamless, hands-free presentation.
  • Intelligent: Utilizes an LLM to analyze and segment transcripts, mapping them accurately to presentation slides.
  • Private: Performs all speech-to-text and similarity matching locally. No internet connection is required, ensuring data privacy and low latency.
  • Accurate: A hybrid similarity engine combines semantic and phonetic analysis for precise speech-to-slide alignment, accommodating variations in speech.
  • Controlled: Provides full manual override via keyboard controls to pause, resume, or navigate slides at any time.
  • Configurable: A command-line interface for managing speaker profiles, processing presentation data, and configuring system settings.

Installation

To install moves, use uv to install it as a tool:

Prerequisites

Install with uv

Install moves-cli using uv tool install:

uv tool install moves-cli --python 3.13

This will install moves and make it available as a command-line tool.

Usage

Using moves consists of three main steps: configuring the AI model, processing the presentation data, and starting the control session.

Quick Start

1. Configure the LLM

Configure moves with the desired Large Language Model (LLM) and provide an API key.

Note: A list of compatible models is available at LiteLLM Supported Models.

# Set the desired model (e.g., Gemini's Gemini-2.5-Flash-Lite)
moves settings set model gemini/gemini-2.5-flash-lite

# Set your API key
moves settings set key YOUR_API_KEY_HERE

2. Create and Process a Speaker Profile

Create a speaker profile by providing a presentation and its corresponding transcript (both in PDF format). Then, process the data to align the transcript with the slides.

# Add a speaker with their presentation and transcript
moves speaker add john ./path/to/presentation.pdf ./path/to/transcript.pdf

# Process the speaker's data
moves speaker process john

This step uses the configured LLM and may take a few moments to complete.

3. Start the Control Session

Open the presentation and execute the control command.

moves presentation control john

Once started, moves listens for your speech and sends Right Arrow key presses to advance the slides at the appropriate times.

Command Overview

moves provides a command-line interface for managing presentations.

Command Description
moves speaker Manage speaker profiles, files, and AI processing.
moves presentation Start a live, voice-controlled presentation session.
moves settings Configure the LLM model and API key.

For more details, please refer to the CLI Commands.

Documentation

Documentation is currently not up to date. It will be updated soon.

For a detailed explanation of the system's architecture, components, and design, please refer to the Documentation, which covers:

  • Architecture: A high-level overview of the system's structure.
  • Technical Details: In-depth explanations of key components like the similarity engine, data models, and STT pipeline.

Contributing

Contributions are welcome. To contribute to the project, please follow these steps:

  1. Fork the repository on GitHub.
  2. Clone your fork locally.
  3. Create a new branch for your feature or bug fix (git checkout -b feature/my-new-feature).
  4. Set up the environment using uv venv and uv sync.
  5. Make your changes and commit them with a clear message.
  6. Push your branch to your fork (git push origin feature/my-new-feature).
  7. Open a pull request to the main repository.

License

This project is licensed under the terms of the GNU General Public License v3.0. For more details, see the LICENSE file.

About

Presentation control, reimagined.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages