Uh oh!
There was an error while loading. Please reload this page.
feat: Voice Dev Terminal — multi-turn voice-controlled terminal via Local Link - #369
feat: Voice Dev Terminal — multi-turn voice-controlled terminal via Local Link#369hassan1731996 wants to merge 2 commits into
Conversation
Foreground ability that opens a persistent terminal session over the
OpenHome Local Link bridge. Speaks into a shell command via LLM, runs it
with exec_local_command(), and summarizes raw output into natural language.
Keeps conversation history across commands for context-aware follow-ups
("do it again with verbose"). Dangerous tokens (rm, sudo, shutdown, kill
etc.) require voice confirmation before execution.🔀 Branch Merge CheckPR direction: ✅ Passed — |
✅ Community PR Path Check — PassedAll changed files are inside the |
✅ Ability Validation Passed |
🔍 Lint Results✅ |
uzair401
left a comment
There was a problem hiding this comment.
Hello @hassan1731996, thanks for submitting this PR.
We already have templates available for this functionality: Local Agents Controller, Hermes Controller, and OpenClaw Controller. They handle these tasks through a single WebSocket endpoint, which has already been implemented in Local Link.
Because of this, I think there may be some overlap with existing functionality. Please review these templates and clarify what unique capabilities this PR adds.
What This Does
A voice-native developer terminal session for OpenHome. Say "terminal", then keep talking — run git commands, check disk space, find files, tail logs — all hands-free, staying in session across multiple commands.
Why It's Unique
Every other ability in this repo is either one-shot (execute one thing, exit) or uses external APIs. This is the only ability that uses
exec_local_command()via the Local Link bridge — voice → LLM-generated shell command → real terminal execution on the user's machine → spoken LLM summary of the output.Key Differentiators vs the
openhome-local-linkTemplateopenhome-local-linktemplateUX Flow
Technical Notes
exec_local_command(cmd, timeout=30.0)— requiresopenhome local startrunning on the user's machinetext_to_text_response) used twice per turn: command generation + output summarization{rm, rmdir, sudo, shutdown, reboot, dd, mkfs, kill, pkill}resume_normal_flow()called infinallycovering all exit pathsValidator