Sno Station
Sno Station is your agents' workstation: open-source software that turns the AI agents you already run into one squad on your own machine. Two heads are better than one, and they get better with every
VOYA is a voice-first browser agent for people who can't easily use a mouse or keyboard. Built on the Strands Agents SDK and Amazon Bedrock.
PluginsJavaScript · PythonGitHub @aayush64xOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
You say the goal, VOYA does the clicks.
Siri can tell you the weather. It can't fill out your benefits form. VOYA can.
VOYA is a voice-first browser agent for people who can't easily use a mouse or keyboard, such as someone with a spinal cord injury, limited mobility or a motor impairment. You tell it what you want done. VOYA finds the right website, reads the page, clicks, types and fills in forms. It reads each form question to you, so you can answer out loud, and it never submits anything without your yes.Read the full README ↗You say the goal, VOYA does the clicks.
Siri can tell you the weather. It can't fill out your benefits form. VOYA can.
VOYA is a voice-first browser agent for people who can't easily use a mouse or keyboard, such as someone with a spinal cord injury, limited mobility or a motor impairment. You tell it what you want done. VOYA finds the right website, reads the page, clicks, types and fills in forms. It reads each form question to you, so you can answer out loud, and it never submits anything without your yes.
Built at Hack Midwest 2026 for the AWS challenge, best use of the Strands Agents SDK. VOYA runs on a Strands agent with Claude models on Amazon Bedrock.
Start on an empty tab and press the one button (or tap Control twice):
You: "What benefits do I qualify for?"
.gov eligibility checker, and clicks Start.While it works, the side panel shows every step the Strands agent takes, live.
Built for people who can't use a mouse
stop, stop everything, cancel, quiet, repeat, help, start over.Does whole tasks, on sites it has never seen
Safe and private by design
flowchart LR
U["You (voice or text)"] --> P["Side panel<br/>(Chrome extension)"]
P <-->|WebSocket, localhost| B["Python backend"]
B --> R{"Router"}
R -->|"scroll down, click 5"| D["Direct command<br/>no AI"]
R -->|"search cats, ask ChatGPT …"| S["Site memory<br/>instant, no AI"]
R -->|"everything else"| A["Strands agent<br/>Claude on Amazon Bedrock"]
A -->|tools| T["read_page · read_text · act<br/>fill_form · ask_user"]
D & S & T --> P
P -->|"page commands"| C["Content script<br/>in the web page"]
| Part | Where | Job |
|---|---|---|
| Side panel | extension/sidepanel/ | The one button, mascot, status, questions, Strands steps and stats, settings |
| Content script | extension/content.js | Numbers every button, link and field; clicks, types, reads text; finds search and chat boxes; waits for pages to settle |
| Background worker | extension/background.js | Relays commands to the active tab and reports page loads |
| Backend | backend/server.py | WebSocket bridge, command queue, page-load waiting, control words |
| Agent | backend/agent.py | Routing, the Strands agent, its tools and hooks, site memory, instant commands |
| Voice | backend/transcribe.py | Records from the system microphone and turns speech into text |
Three tiers, so simple things are instant:
click 5, scroll down, back, new tab youtube, settings overlay off.search cat videos, play wheelchair transfers on youtube, ask ChatGPT what is the biggest animal.| Strands feature | What VOYA does with it |
|---|---|
Agent loop + custom tools (@tool) | The agent plans each step itself using read_page, read_text, act (click, type, search, ask, open, new tab), fill_form and ask_user. Nothing is scripted per site. |
Hooks: BeforeToolCallEvent | Safety guard: before any click on a submit-type button, the hook asks the user, and cancels the tool call unless they say yes. |
Hooks: Before/AfterToolCallEvent | Stream every tool call to the side panel live, with status and timing. |
| Human in the loop | ask_user pauses the agent for missing details and confirmations, answered by voice or typing. |
| Structured output | New websites are classified into a typed SiteProfile (name, type, summary) for site memory. |
Cancellation (agent.cancel()) | stop and new commands interrupt the agent mid-task, cleanly. |
Metrics (event_loop_metrics) | After each task the panel shows Strands' own numbers: model calls, tool calls, tokens, cache hit rate and time. |
Prompt caching (CacheConfig) | Long form tasks reuse the cached prompt, tools and conversation. |
| Amazon Bedrock models | Claude Haiku 4.5 and Claude Sonnet 4.5, chosen per request. |
| Say | What happens |
|---|---|
| "What benefits do I qualify for?" | Finds the official checker and walks you through it |
| "What's the weather in Chicago tomorrow?" | Finds a forecast and tells you |
| "search cat videos" | Searches the site you're on (or Google) instantly |
| "play wheelchair transfers on YouTube" | Searches YouTube and opens a video |
| "ask ChatGPT what is the biggest animal" | Opens ChatGPT and sends the question |
| "open Claude in a new tab" | Opens it in a new tab |
| "read it out loud for me" | Reads the page or the last answer aloud |
scroll down · back · click 5 · list | Direct commands, instant |
stop | Interrupts the current task |
stop everything / start over | Stops the task, clears the queue, closes any question |
cancel | "No" at a question (nothing is submitted); otherwise stop |
quiet · repeat · help | Stop speaking · say it again · list the commands |
settings overlay on/off | Show or hide the numbers on the page |
settings speak on/off | Always read replies aloud, or only when asked |
You need:
us-east-11. Install
git clone https://github.com/aayush64x/voya.git
cd voya
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r backend/requirements.txt
2. Add AWS credentials
cp .env.example backend/.env # then fill in your keys
backend/.env is gitignored. Temporary credentials (for example from AWS Workshop Studio) expire after a few hours; paste fresh ones and restart the backend.
3. Start the backend
python backend/agent.py
Wait for [agent] Ready. The first time you use the mic, allow microphone access for your terminal app (on a Mac: System Settings → Privacy & Security → Microphone).
4. Load the extension
chrome://extensions and turn on Developer mode.extension/ folder.Shortcuts
python -m pytest tests -q # backend: routing, tools, safety hook, page waiting, site memory, control words
npm install && npm test # extension: page reading, forms, typing, the side panel and bridge
backend/
agent.py routing, Strands agent, tools, hooks, site memory, instant commands
server.py WebSocket bridge, command queue, page-load waiting, control words
site_memory.py what each site is and where its search/chat boxes are
transcribe.py microphone capture and speech-to-text
extension/
manifest.json MV3 manifest, permissions, shortcut
background.js relays commands to the active tab, page-load events
content.js reads and acts on the page
sidepanel/ the VOYA panel: one button, mascot, states, steps, settings
js/bridge.js connects the panel to the backend
tests/ pytest and jest suites
docs/ design brief, SSA questionnaire walkthrough, test log
Built at Hack Midwest 2026 by Rylan Begaye, Aayush Nakarmi and Ari Lee
Side panel design: Soft Glass Companion, by our teammate.
Powered by the Strands Agents SDK, Claude on Amazon Bedrock, and Three.js for the mascot.