You're in a pair programming session, deep in the terminal, and you spot a bug. "Ah, we should file a ticket for that," your partner says. The flow is broken. Someone has to open a browser, navigate to Jira, click "Create," remember the project key, fill out the summary, and then try to recapture the mental state you were just in.
This tiny interruption -- this "context switch tax" -- is a silent killer of productivity. It happens dozens of times a day. An idea for a refactor comes up in a meeting, a follow-up is mentioned on a call, a bug is discovered mid-debug. Each one requires leaving your current task to perform a manual, repetitive operational task. We lose focus, and sometimes, we lose the action item entirely.
voice-to-task-agent is my answer to this problem. It's a simple Python CLI that turns your spoken words into actions, in real-time, without ever leaving your terminal. It listens for your commands, understands your intent, and executes tasks like creating Jira tickets or sending emails, all while you keep your hands on the keyboard and your mind on the code.
Quick Start: Talk, Don't Type
Getting started is designed to be ridiculously fast. Once you've configured your API keys in a simple YAML file, you just run one command:
pip install voice-to-task-agent
vtta listen
Now, just start talking.
You say:
"Hey, can you create a ticket to fix the SSO login bug... put it in the 'WEB' project. High priority."
Your terminal responds:
"Okay, creating a high-priority Jira ticket in project WEB for 'Fix SSO login bug'. Do you want to add a description?"
You reply:
"Yeah, just say 'Users are reporting 500 errors when logging in via Google SSO'."
And a moment later:
β Jira ticket created: WEB-1337
The ticket is filed. Your flow is intact. Your thought process is uninterrupted.
How It Works: A Real-Time Conversational Pipeline
This isn't just a fancy speech-to-text script. The magic is in the real-time, bidirectional data pipeline that connects your microphone to a large language model and back to your system's tools.
It works in a few steps:
- Audio Capture: The CLI uses the
sounddevicelibrary in Python to capture raw audio chunks from your microphone. It doesn't wait for silence; it starts streaming immediately. - Streaming to AI: These audio chunks are sent directly to a streaming conversational voice API, like Google's multi-modal Gemini API. This is key -- the model starts processing your voice as you speak, providing near-instantaneous transcription and comprehension.
- Unified Tool Calling: As the model understands your intent, it doesn't just generate text. It generates a structured
tool_callrequest. When it hears "...create a ticket...", it recognizes this maps to a function you've defined, likecreate_jira_ticket, and figures out the parameters (summary,project,priority) from your natural language. - Local Execution and Response: The agent running in your terminal receives this
tool_call, executes the corresponding Python function (which calls the Jira API), and gets a result. This result -- whether a success message with a ticket URL or an error -- is then streamed back to the Gemini API as part of the same continuous conversation. The model then uses this information to formulate its final, helpful response to you: "Okay, I've created the ticket for you."
Architecting this requires careful management of a bidirectional stream, handling network latency, and designing for failure. What happens if the Jira API is down? The agent needs to handle that gracefully and report back through the conversational interface. Itβs a surprisingly complex orchestration problem disguised as a simple CLI.
Why I Built This: A Program Manager Who Codes
My background is in Program Management and BizOps. My job has always been about one thing: making operations more efficient. I'm obsessed with identifying and eliminating friction that slows teams down. For years, I did this with process maps, spreadsheets, and strategy decks. But with the rise of agentic AI, I realized we now have a much more powerful tool.
I build open-source AI tools because I believe the best way to prove the business value of AI is to build real, working solutions to tangible problems. I'm not just interested in what's theoretically possible; I'm focused on what's practically useful, today. This project is a perfect showcase of that philosophy. It directly attacks the "context switch tax," a well-known operational drag on engineering teams.
Building voice-to-task-agent was also an exercise in wearing my Technical Program Manager hat. It forced me to:
- Architect a data pipeline: A real-time system with multiple dependencies (mic hardware, network, multiple APIs).
- Integrate disparate systems: Connecting a bleeding-edge AI service with a standard enterprise workhorse like Jira.
- Focus on the user: The goal isn't just to call an API; it's to create a seamless, "it just works" experience that doesn't break a developer's flow.
- Think about the "ilities": Reliability, usability, and extensibility. A production-grade tool can't be a brittle demo.
This practical, hands-on approach is what informs my other projects as well. When you build real agents, you quickly run into real problems. How much is this costing me? That led me to build agent-cost-tracker. Is my agent just agreeing with me to be helpful? That led to llm-sycophancy-eval. How do I debug when it's slow? That's why I created agent-profiler. These tools aren't academic exercises--they are solutions to the real-world challenges of operationalizing AI.
What's Next?
voice-to-task-agent is just getting started. It's a proof of concept for a future where operational tasks are handled through ambient, conversational interfaces. Here's what I'm thinking about next:
- More Tools, More Actions: Adding integrations for creating GitHub issues, sending Slack messages, and updating Salesforce records are obvious next steps. The tool-calling framework is designed to be easily extensible.
- Smarter Confirmation: For potentially destructive actions, implementing a "Are you sure?" confirmation step that can be confirmed by voice is critical for safe, reliable use.
- Local and On-Device Models: Exploring the use of local, on-device models for the initial transcription could dramatically reduce latency and enhance privacy, sending only the structured intent to a cloud LLM for tool mapping.
This project is open-source, and I'd welcome any and all contributions, from new tool integrations to documentation improvements.
Links
- GitHub Repo: https://github.com/manishrawal95/voice-to-task-agent
- Let's Chat: Have ideas or want to talk about agentic AI? Book a call with me.
- Connect on LinkedIn: https://linkedin.com/in/manishrawal95
Top comments (0)