Launched this week

SKI
Free voice coding for Claude Code, Codex and more
1.1K followers
Free voice coding for Claude Code, Codex and more
1.1K followers
We just built SKI — voice coding for Claude Code, Codex and more. It's not dictation: your agent answers you out loud, like a real teammate, so you build at the speed you think. You can even bring it into a meeting to build live, or send it in your place to speak for you. It's an ambient thing that just sits on your desktop — hit a key, talk, it works. All on your machine, free. Available on Mac & Windows.










SKI
Hey Product Hunt 👋 I'm Anand, one of the makers.
We build with coding agents every day, and kept catching ourselves typing a three-sentence prompt we could've said out loud in four seconds. Thinking is fast. Typing is not.
So we built SKI. You hold the Function key, say what you want, and your agent goes and does it — then answers you out loud, like a real person. It's an ambient thing: it sits in your notch and never interrupts your flow.
Three things we care about:
• It answers. Voice input for agents already exists — it's one-directional, words in, text out. SKI closes the loop: it speaks the result back.
• It comes to meetings. Bring your coding session into a call as a real teammate and build live — or send your agent in your place to speak for you.
• It's local. Speech in and voice out both run on your machine. No cloud, works offline.
Free for life — Mac and Windows today, Linux next.
First launch for us, so hard questions are genuinely welcome. What agent do you use, and what would make you keep this open all day?
@anand_balakrishnan5 Congrats on #1!
What does the voice side do when the agent replies with a 200-line diff or a full test run? Does it summarize, or go quiet and let you read?
I'm on Linux, so I'll be eagerly waiting for that build.
SKI
@martin_herran SKI is a skill. So, it doesn't read out the output the agent produces. The agent decides on what to speak. For instance, if it wrote 100 lines of code and completed a task, it can choose to speak that the tasks are completed, and give a brief about it. All depends on the agent and how you want it to behave. You can ask it to just give status updates or briefs. It won't read out the code as voice out.
SKI
@martin_herran Thanks again for checking SKI
SKI
@martin_herran 🔥
@anand_balakrishnan5 Congrats on the launch! 🎉 Small thing: your FAQ lists Claude Code, Cursor, Codex, and Gemini CLI as supported agents, but Windsurf and OpenClaw are missing - even though both show up in your "Works with your agent" section. Easy fix!
SKI
@nikita_upadhayay Thanks for checking out SKI and letting us know about this issue, Will fix that soon :)
SKI
@nikita_upadhayay Thanks for the feedback
SKI
@anand_balakrishnan5 🔥
Very promising approach - two things which made me uninstall it after a few minutes:
a) I need a way to select input and output. I have multiple mics (Jabra wireless headset for meetings, Rode mic for video recordings, some system loops etc) and also multiple outputs. (When it gets late I want that output on my headset to not annoy my family)
b) price intransparency. I understand that you need to make money. We all do. But if you tell me "free for lifetime" then I am annoyed if I see $2.50 somewhere in the fineprint of my account status. Be open about your pricing. You are competing against other tools that I pay for and I am happy to pay for a better tool
SKI
@sm0r3ll Thank you for your feedback.
We currently have input selection (Preferences -> Microphone). We don't have output selection in-app, unfortunately. Will bring that in the next update.
Everything that runs on your local machine is free. We do not require any card details or payment details for using the product. The cloud agents (powered by agentcall, and are optional) runs on cloud infra and is billed per minute. This is when you send your agent to attend a meeting as a participant in the meeting. And in this case, it takes up the free credits and stops working if there are no credits available. You can manually add credits if required to use this cloud feature. All local features will remain free for lifetime.
SKI
@sm0r3ll Thanks for sharing your feedback
SKI
@sm0r3ll Thanks for your feedback.
SKI
@sm0r3ll Thanks again for checking SKI
SKI
@sm0r3ll 🔥
The voice loop makes sense for coding, especially when the prompt in your head is much faster to say than type. How well does SKI handle noisy rooms or shared offices? I can imagine fans, keyboards, background conversations, and meeting audio making this tricky pretty quickly. Does it have any kind of voice isolation or push-to-talk filtering, or is it mainly designed for quieter environments?
SKI
@os_ishmael It has noise cancellation. There is push to talk. Function key in mac - hold to speak, and release to end. There are hotkeys for it as well. Can use space bar to mute and unmute if the application is selected as well. One click mute and unmute on widget and notch.
Hotkeys can be configured in both Windows and Mac in Preferences.
SKI
@os_ishmael Thanks for these feedback, these are helpful
SKI
@os_ishmael Thanks for the feedback
Dictation and voice commanding fail differently, and I think that is the interesting part here. A misheard word in dictation sits on the screen and you fix it. A misheard word here goes to something that acts.
Delete the test file and delete the rest of the file are both fluent, both plausible, and ASR will be confident about the wrong one. So confidence scores do not save you, and push to talk only controls when it listens, not what it commits to.
You speak the result back, which closes the loop after the agent has already done it. Does it ever repeat the instruction before, on the ones that are hard to undo?
SKI
@jernej_jan_kocica Thank you for taking a look at our product. Yes, you can ask the agent to confirm the task before it does something destructive and the agent will ask for your permission before it executes the line. You just have to tell the agent (by voice, just like you talk to someone). There is a "review before send" option where you can confirm the transcripts are correct before sending them. You can fix it just like dictation apps do (Available in Preferences -> Transcription > Approve before send). There is also a preview function which you can use.
@jernej_jan_kocica You're pointing at the real one, and I don't think the answer quite closes it.
"Delete the test file" vs "delete the rest of the file" — the failure isn't that ASR is wrong, it's that it's wrong fluently. And both mitigations offered have the same shape of problem. Telling the agent by voice to confirm destructive actions puts the safety gate inside the channel that just proved unreliable. Review-before-send does close it, but globally — and at that point I'm reading every transcript before it goes, which is dictation again, which is the thing this was built to escape.
The version I'd want is risk-scoped rather than global. Let the safe majority through at full speed, gate only the irreversible, and put that gate in a different modality than voice. A single key to confirm, or the notch showing parsed intent for a beat before it commits.
Having had to build approval gates into agent products for a while now, the thing that keeps being true: people accept a gate that fires rarely and precisely, and switch off one that fires on everything. All-or-nothing is usually where the trust goes.
Genuinely strong launch though — closing the loop out loud is the part everyone else skipped.
@rabnoor_s put it better than I did. The gate cannot live in the channel that just failed, and a global review turns the whole thing back into dictation.
One thing I would add, about what the gate shows. Reviewing the transcript checks words, so you re-read the sentence you just said and it looks right, because it was fluent. Showing the parsed action and its target is a different assertion. Delete the rest of the file and delete the test file resolve to visibly different targets, and that is a difference you can catch in half a second.
Scoping is easier than it sounds too. The set worth gating is whatever the tool cannot undo by itself.
John, does the preview show the parsed action and target, or the transcript text?
SKI
@rabnoor_s @jernej_jan_kocica At present, SKI shows the transcript for review before being sent to the agent (optional) or else a preview of the transcript (if no review is enabled). The image below shows the "review before send" where I said (by voice) "this is to show how review before send comes up" and then decided to add "so i can edit and type here" before sending it to the agent.
@rabnoor_s @johnkg003 Thanks, that is a straight answer and it is exactly the gap I meant. Reviewing the transcript catches the mishearings that look wrong on the page. The one that gets you is the one that reads perfectly and points somewhere else.
The small version, if the agent tells you anything before it runs: put the resolved target next to the text in that same box. Delete the test file and delete the rest of the file stop looking alike once you can see which file it landed on. And only on lines that resolve to something destructive, so the rest stays as fast as it is now.
Do the agents you support expose the parsed action before executing, or only after?
SKI
@jernej_jan_kocica @rabnoor_s Thanks for checking SKI
SKI
@jernej_jan_kocica @rabnoor_s Thanks for checking out
SKI
@jernej_jan_kocica Thanks for sharing this
QApilot's CoWork
SKI
@jsurendranathreddy Transcription has improved a lot. And even the LLMs can understand and automatically fix errors in transcription now. There is a review before send option (optional, enabled in preferences), which will let you fix and edit if something needs to be fixed before sending to the agent.
We usually share the screen and ask the agent to change the lines or show it to the agent. Agent can take screenshots of the screen using ski and can learn which part you are talking about.
In short
1. They usually work OK and can understand syntax even with incorrect transcriptions from accents
2. Option to edit before sending
3. Can share screen to show things to the agent (Agent can take screenshots or you can send screenshots using hotkeys). You could highlight and show the agent as well. It takes a look at the screen.
SKI
@jsurendranathreddy Thanks for sharing feedback
SKI
@jsurendranathreddy Thanks for the feedback
SKI
@jsurendranathreddy 🔥
Cannot wait to try this out 😀. I’ve been trying to build this quite a few times myself. The models just recently got good enough to be able to pull this off.
Can you also share your screen with the ai agent? It’s nice to be able to show it a problem
SKI
@michael_yagudaev The models are good enough now and works really well. Yes, the agents can take screenshots if you ask them to (just speak). You can also send screenshots using hotkeys along with the voice. It gets sent to the agent like you normally do, when you type.
Thanks a lot for checking us out.
SKI
@michael_yagudaev The screenshot feature comes very handy when you have to share your screen with the agent.
SKI
@michael_yagudaev You could ask your agent to take a screenshot and perform actions based on what it sees. In Claude code with computer use, this becomes incredibly convenient—you can have the agent interact with your screen, understand the UI, and take the next steps automatically.
SKI
@michael_yagudaev 🔥
Talking is fasting than writing. But reading is faster than hearing (at least for me). How does the answering part work? Is it just a status update ("task finished") or does it say the agent's output out loud? We all know that agents can be very verbose in their answers.
SKI
@mateuszkonik Thank you for taking time to look into our product.
You can ask the agent to give a status update or a brief. The default instruction is to limit the talking to 2-3 sentences. But it is customizable and the agent gets to decide it based on user instructions. You could ask it to just share a status update. It will just update on the status on that case. You could ask it to give a brief or open a window and show the issue as well.
It doesn't read out the entire output. This is like a skill which the agent gets to use. It can decide what to tell the user. It can write 100 lines of code, and tell user that it needs your input to work on another task, out loud. So, 100 lines silent, and the request for help is spoken.
SKI
@warmatik ik You’re absolutely right—voice is a great input medium, while visuals are a much better output medium.
SKI
@mateuszkonik We’re are also working on a dynamic UI that adapts to the conversation and presents information visually, which we think will solve this problem.
SKI
@mateuszkonik Thanks for sharing feedback
SKI
@mateuszkonik Thanks for the feedback