Claude Code를 목소리로 조종하기: 병렬 레인으로 만들기
AI 코딩 에이전트는 타이핑을 병목으로 만들었습니다. macOS에서 병렬 에이전트 레인을 가로질러 프롬프트와 리뷰와 방향 수정을 받아쓰는 실전 워크플로.
AI 보조 개발의 지난 1년 사이에 무언가가 조용히 뒤집혔습니다. 루프에서 가장 느린 부분은 더 이상 기계가 아닙니다. Claude Code는 리팩터링을 4분 동안 기꺼이 갈아 냅니다. Cursor는 당신이 안 보는 사이에 테스트 묶음의 초안을 씁니다. 병목은 당신입니다. 정확히는 한 번에 한 창에만 있을 수 있는 당신의 손입니다.
에이전트 레인을 하나 넘게 굴리기 시작하면, 이건 성가심이 아니라 하루의 모양이 됩니다. 1번 레인은 인증을 리팩터링 중입니다. 2번 레인은 당신의 리뷰를 기다립니다. 3번 레인은 고객이 버그를 서투르게 설명하고 있는 Slack 스레드입니다. 그 레인들은 모두 자연어로 전진하는데, 그 자연어를 당신은 열 개의 손가락과 포커스된 창 하나로 만들어 내고 있습니다.
목소리가 채우는 빈틈이 그것입니다. "소설을 받아쓰세요" 하는 음성이 아니라 제어 채널로서의 음성입니다. 아무도 데모하지 않는 바이브 코딩의 그 부분이죠. 당신이 말로 코드 자체를 만들어 내는 일은 드물고, 그걸 만드는 에이전트들을 몰고 있는 것입니다.
프롬프트는 산문이고, 산문은 말할 때 더 빠릅니다
코딩 에이전트를 모는 일의 핵심은 이겁니다. 입력이 코드가 아닙니다. 지시입니다. "WebSocket 핸들러에서 재시도 로직을 빼서 자기 모듈로 옮기고, 백오프 상한을 설정 가능하게 만들어." 이미 그 창에 있고, 몸이 풀려 있고, 다른 생각을 하고 있지 않다면 20초 만에 칠 수 있습니다.
하지만 이제 당신은 그런 상태에 있는 법이 없습니다. 다른 레인에서 리뷰 중입니다. 에이전트의 마지막 diff를 읽고 있습니다. 커피를 들고 있습니다. 프롬프트의 비용은 타이핑 시간이 아닙니다. 그걸 치려고 손과 눈을 제자리에 가져다 놓는 맥락 전환입니다.
프롬프트를 말하면 그 비용이 무너집니다. 터미널에 포커스를 주고, 키를 누른 채, 이미 머릿속에서 하고 있던 그 문장을 말하고, 떼세요. 단어들이 커서에 떨어지고 레인이 다시 움직이기 시작하는 동안, 당신의 주의는 원래 있어야 했던 곳으로 돌아갑니다.
워크플로, 구체적으로
저는 이 일에 Keebye를 씁니다. 이 문제가 제 일상을 잡아먹었을 때 만든 도구이고, 아래의 구체적인 내용은 지향이 아니라 실제 동작입니다. 핫키, 텍스트 입력 모드, 사전을 담은 압축된 설정 체크리스트는 Claude Code를 위한 음성 받아쓰기에 있습니다.
핫키 하나, 누른 채로. 오른쪽 ⌘가 기본입니다. 누르고, 말하고, 떼면 전사된 텍스트가 포커스된 편집 가능 필드에 들어갑니다. 더 긴 지시라면 한 번 탭해서 녹음을 켜 두고, 다시 탭할 때까지 이어 갈 수 있습니다. Esc는 빠져나갑니다. 열어야 할 창이 없다는 게 핵심입니다. 이 도구에는 자기 레인이 없습니다.
터미널을 위한 타이핑 모드. Claude Code는 터미널에 살고, 터미널은 클립보드 붙여넣기 방식에 적대적입니다. 특히 SSH 너머나 tmux 안에서요. Keebye는 붙여넣는 대신 텍스트를 합성해 타이핑할 수 있고, 터미널을 인식하는 속도 조절을 하므로 프롬프트가 키 입력이 도착하는 방식으로 도착합니다. 에이전트 작업에서는 이 설정 하나가 "귀여운 데모"와 "매일 쓰는 도구"를 가릅니다. 터미널이 붙여넣기를 왜 깨뜨리는지에 대한 전체 이야기는 터미널에서도 살아남는 받아쓰기에 있습니다.
전문 용어를 위한 사전. 음성 모델은 당신 프로젝트의 어휘를 모릅니다. 커스텀 사전은 모델이 들은 것을 당신이 뜻한 것으로 매핑합니다. 모듈 이름, 팀원 이름, "pnpm", 당신의 코드베이스가 반복해서 말하게 만드는 무엇이든요.
한계가 정해진 휴리스틱이 붙은 로컬 정리. 날것의 발화는 "um"과 말을 무르는 것으로 가득합니다. Keebye는 빠른 규칙으로 군더더기를 없애고 문장부호를 고칩니다. 선택형 로컬 LLM 정리는 심각한 토큰 손실이나 확장, 반복이 생기면 물러섭니다. 그 가드는 의미를 증명하거나 모든 부정을 지켜 주지 못하므로, 중요한 에이전트 지시는 보내기 전에 검토하세요.
그리고 음성 인식이 전부 온디바이스로 돌기 때문에, 레인마다 당신의 미공개 제품을 상세히 묘사하는 그 프롬프트들 자체가 기기를 떠나지 않습니다.
목소리로 모는 게 실제로 잘하는 것
매일 이렇게 살면서 얻은 솔직한 목록입니다.
방향 수정. 에이전트가 끝냈고, 80% 맞습니다. "추출은 유지하고, 테스트 파일의 이름 변경은 되돌리고, 묶음을 다시 돌려." 말하면 3초입니다. 제 하루에서 가장 값어치 있는 받아쓰기입니다.
다음 레인에 줄 세우기. 1번 레인이 빌드하는 동안 2번 레인에 다음 작업을 설명하세요. 손은 직렬로, 일은 병렬로.
코드 주변의 산문. PR 설명, 커밋 메시지, 버그 리포트에 대한 Slack 답장, 미뤄 둔 이메일. 창에 포커스를 주고, 말하고, 끝. 당신의 손은 있던 레인을 떠난 적이 없습니다.
소리 내어 생각하기, 쓸모 있게. 어떤 지시는 말할 때 더 잘 나옵니다. 발화는 선형성을 강제하니까요. 입으로는 괄호를 겹쳐 넣을 수 없습니다.
이건 아닌 것
솔직함의 절입니다. Keebye의 전사는 스트리밍이 아니라 배치입니다. 텍스트는 단어 하나씩이 아니라 키를 뗄 때 나타납니다. 프롬프트에는 괜찮지만(말하고 나면 한 덩어리로 떨어집니다) 실시간 자막 경험은 아니라는 뜻입니다. 기본 모델은 영어에 맞춰져 있고, 다국어 받아쓰기는 25개 언어를 감당하는 별도의 온디바이스 엔진입니다. 그게 왜 중요한지는 받아쓰기가 영어 전용이어서는 안 되는 이유에서 더 다룹니다. 그리고 어떤 받아쓰기 도구도 나쁜 프롬프트를 좋게 만들지 못합니다. 음성은 마찰을 없애지, 생각할 필요를 없애지 않습니다.
이 영역에는 좋은 도구가 더 있습니다. Superwhisper와 Wispr Flow가 저희가 가장 많이 질문받는 둘이고, 양쪽 모두 솔직한 비교를 썼습니다. Keebye vs Superwhisper와 Keebye vs Wispr Flow.
왜 이게 복리로 쌓이나
받아쓴 프롬프트 하나는 몇 초를 아낍니다. 그건 이야기가 아닙니다. 이야기는 그 몇 초가 무엇을 막고 있었느냐입니다. 당신이 굴리는 모든 레인은 당신이 먹일 때만 전진하므로, 레인 하나를 먹이는 데 붙는 세금은 전부에 붙는 세금입니다. 그걸 깎으면 자기 주의를 배급하는 일을 그만두게 됩니다. 오버헤드가 너무 커 보여서 안 굴리던 세 번째 레인을 더하게 되는 거죠.
이 모든 것의 시작은 워크플로 에세이보다 덜 우아했습니다. 두 아이, 여러 개의 판돈 큰 작업 흐름, 그리고 모자란 손. 그 이야기는 여기 있습니다. 두 아이, 세 스타트업, 하나의 목소리.
Keebye는 macOS용 얼리 액세스 중입니다. 아래에서 무료 체험을 시작해 가장 바쁜 레인에 겨누고, 구체적인 순서를 하나 시험해 보세요. 1번 레인을 리뷰하고, 2번 레인에 방향 수정을 받아쓰고, 그다음 3번 레인에서 기다리는 사람에게 답하세요. 목소리가 그것들을 동시에 제어하지는 않습니다. 다만 각 병렬 레인에 더 적은 인계 비용으로 계속 공급해 줍니다.
기다리고 있는 레인에 먹이세요
14일 무료 체험을 시작해, 가장 바쁜 Claude Code 세션에서 말로 하는 방향 수정을 하나 시험해 보세요.
Start free trialEarly access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.
계속 읽기
병렬 에이전트에 프롬프트 받아쓰기, 레인 하나씩
코딩 에이전트를 두세 개 동시에 돌리면 프롬프트 쓰는 일이 병목이 됩니다. 지금 보고 있는 레인을 떠나지 않고 병렬 레인에 먹이를 주는 음성 워크플로.
터미널에서도 살아남는 받아쓰기
받아쓰기 붙여넣기는 터미널, SSH, tmux, 비QWERTY 배열에서 조용히 실패합니다. 클립보드 붙여넣기 방식이 거기서 깨지는 이유와, 타이핑 모드가 대신 하는 일.
말한 그대로 적어라: AI 재작성 없는 받아쓰기
AI로 다듬는 받아쓰기는 당신이 한 말을 고쳐 씁니다. 단서가 빠지고 의미가 뒤집힙니다. LLM 정리 파이프라인이 당신을 의역하는 이유, 그리고 Keebye가 곧이곧대로 남는 이유.