Skip to content

voice_control

Rails engine for voice and typed commands: define actions in a Ruby DSL and Jev picks the matching command or page control.

ProjectprototypeMIT

Overview

voice_control adds voice and typed commands to Rails apps. You define actions in a Ruby DSL with descriptions and aliases, keep your own authorization, and users can say something like "show people" to open the users page. Jev matches the utterance to a command and its typed arguments, asks follow-up questions when needed, and can optionally discover page controls to click, fill, select, check or submit.

It ships a Shadow DOM widget, searchable help, Turbo support and JavaScript hooks, with no runtime database, migrations, Node build or CSS framework. Per the list, execution is signed and replay-protected, and a short-lived shared atomic cache is required in production. It targets Rails 8 and Ruby 3.2+, is MIT licensed, and is not yet released to RubyGems. Commands execute immediately once arguments are complete, so the README advises starting with safe actions.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich defined command matches what the user said?—
ChoiceWhich page control should be clicked or filled?—

How it works

  1. Define commands in the Ruby initializer with aliases and authorization.
  2. The user speaks or types a command.
  3. Jev matches it to a command and arguments, asking follow-ups if needed.
  4. The command executes with signed, replay-protected execution.

Strengths

  • Uses your existing Rails authorization.
  • No database, migrations or Node build.
  • Optional page discovery for existing UI.

Caveats

  • Unreleased; install from source.
  • No confirmation dialog; commands run immediately.

Getting started

Add gem "voice_control" (built locally), bundle install, bin/rails generate voice_control:install, and set JEV_API_KEY.

At a glance

Type
Project
Status
prototype
Language
Ruby
Runtime
Rails engine
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Rails engine for voice and typed commands: define actions in a Ruby DSL and Jev picks the matching command or page control, with your own authorization and signed, replay-protected execution.

    hellogumbo/awesome-jev

Frequently asked questions

What does Jev decide?

Which defined command or page control matches the user's words.

Is there a confirmation step?

No, commands run once arguments are complete; expose safe actions first.

Is it on RubyGems?

Not yet; build and install locally.

Related projects

  • Home Assistant conversation agent that maps Assist commands to built-in intents using a Jev fan-out of typed questions.

    ProjectbetaPython
  • Experimental Hono router that matches HTTP requests to plain-language route descriptions using one Jev Noul per route.

    ProjectprototypeTypeScript
  • Home Assistant conversation agent that resolves commands from one System One call with a fan-out of typed questions, asking when unsure.

    ProjectprototypePython
  • Java SDK that lets natural language invoke tinystruct @Action methods, using Jev as a semantic dispatcher with confidence gates.

    LibrarybetaJava
  • Symfony demo that triages French public-service requests with one Jev call each: intent choice, urgency score and bug noul.

    AppprototypePHP
  • elizaOS autonomous agent framework, listed for an optional TypeSafe System One HTTP adapter in its source.

    ServiceproductionTypeScript