OpenLess: 말하면 AI가 다듬은 문장을 커서에 바로 넣어 주는 오픈소스 음성 입력 도구

OpenLess 소개

말로 빠르게 초안을 만들고 싶을 때, 받아쓰기 도구는 보통 들리는 대로 단어를 그대로 옮겨 적습니다. 그래서 "음… 그러니까…" 같은 군더더기와 중복까지 텍스트에 남아, 결국 손으로 다시 다듬게 됩니다. OpenLess 는 이 마지막 손질을 AI에 맡기는 음성 입력 도구로, 단축키를 누르고 말한 뒤 손을 떼면 다듬어진 문장이 지금 커서가 있는 입력란에 곧장 들어갑니다.

OpenLess는 ChatGPT, Claude, Cursor, Notion, 이메일 초안, 채팅창 등 어떤 텍스트 입력란에서나 동작합니다. 전역 단축키를 누르고 말하면 오디오를 녹음해 전사(transcribe)하고, 선택한 모드로 텍스트를 다듬은 뒤 커서 위치에 삽입합니다. 삽입이 막히면 대신 클립보드에 복사하므로 말한 내용이 사라지지 않습니다. 단순 받아쓰기 도구와 다른 OpenLess의 핵심은 AI 프롬프트 모드 로, 자유롭게 말하면 구조와 맥락, 제약 조건을 갖춘 프롬프트로 정리해 ChatGPT나 Claude, Cursor에 그대로 붙여 넣을 수 있게 해 줍니다.

OpenLess는 Typeless, Wispr Flow, Lazy, Superwhisper 같은 상용 구독 도구의 완전 오픈소스 대안을 표방합니다. 코드가 저장소에 공개되어 있고 데이터는 사용자의 기기에 남으며, ASR과 정리용 LLM 자격 증명을 직접 가져와 쓰는 방식이라 특정 벤더에 종속되지 않습니다. 기술적으로는 Tauri 2와 Rust 백엔드에 React/TypeScript 프런트엔드를 올린 구조이고, macOS 12 이상과 윈도우 10 이상을 지원합니다. 본 게시물에서는 OpenLess의 동작 방식, ASR과 정리 모델 선택, 스타일 팩 마켓플레이스, 그리고 설치·사용 방법을 정리합니다.

OpenLess의 동작 방식과 AI 프롬프트 모드

OpenLess가 하는 일은 한 가지로 모입니다. 음성을 현재 커서 위치에 쓸 수 있는 텍스트로, 특히 AI 프롬프트로 바꾸는 것입니다. 파이프라인은 음성 입력에서 전사, AI 정리, 커서 삽입으로 이어지고 실패 시 클립보드로 폴백합니다.

출력은 네 가지 모드로 나뉩니다. 원본 그대로의 raw, 가볍게 다듬는 light polish, 구조화하는 structured(AI 프롬프트 모드), 격식을 갖추는 formal입니다. 여기에 말한 내용을 지정한 언어로 곧장 옮기는 번역 단축키도 있습니다. 구조화 모드는 군더더기를 걷어 내고 맥락과 제약, 요청을 담은 프롬프트로 재구성합니다. 중요한 점은 OpenLess가 질문에 답하지 않는다는 것입니다. "이 앱에 아직 필요한 기능이 뭐야?" 라고 말하면 그 문장을 깔끔한 질문으로 정리해 줄 뿐, 기능 목록을 대신 만들어 주지 않습니다. 그 일은 정리된 프롬프트를 받은 AI가 합니다. 이 밖에 강조한 텍스트에 대고 음성으로 질문하는 별도의 선택-질의(selection-ask) 패널, 단축키로 바꾸는 토글·푸시투토크 녹음 방식, 유선 이어폰의 재생/일시정지 버튼으로 녹음을 시작하는 트리거도 제공됩니다.

OpenLess의 ASR와 정리 모델 선택

OpenLess는 전사용 ASR과 정리용 LLM을 모두 교체할 수 있습니다. 클라우드 ASR로는 Volcengine 스트리밍 ASR, OpenAI Whisper 호환 배치 ASR, macOS의 Apple Speech를 지원하고, 로컬 ASR로는 Open-Less/qwen-asr(antirez의 qwen-asr 에서 포크)를 통해 내장된 Qwen3-ASR(0.6B / 1.7B)과 윈도우의 Foundry Local Whisper 변형을 쓸 수 있습니다. 정리(polish)에는 Ark, DeepSeek, OpenAI, Doubao, Anthropic 호환 chat completions를 비롯해 직접 가져온 OpenAI 호환 엔드포인트를 연결할 수 있습니다.

자격 증명은 평문 파일이 아니라 운영체제의 자격 증명 저장소(macOS Keychain, 윈도우 자격 증명 관리자, 리눅스 키링)에 보관되며, 저장소에는 API 키나 토큰, 비공개 엔드포인트가 들어 있지 않습니다. 사전(dictionary)에 등록한 단어는 Volcengine ASR의 context.hotwords 로 주입되고 정리 단계에서도 의미 힌트로 함께 쓰여, 도메인 용어의 인식·표기 정확도를 높입니다.

OpenLess의 스타일 팩과 마켓플레이스

OpenLess는 하나의 고정된 "다듬기" 말투에 묶이지 않습니다. 스타일 팩(style pack) 은 고유한 시스템 프롬프트를 가진 이름 붙은 출력 스타일로, Style 페이지에서 직접 만들고 단축키로 전환할 수 있습니다. 예컨대 간결한 엔지니어링 커밋 메시지, 따뜻한 고객 응대 답변, 이모지를 곁들인 소셜 카피처럼 작업에 맞춘 스타일을 정의해 두면, 모델이 의도한 방식대로 글을 쓰기 때문에 결과가 더 잘 맞습니다.

마켓플레이스에서는 다른 사람이 공유한 스타일 팩을 검색해 한 번에 설치하고, GitHub 계정으로 로그인해 자신의 팩을 게시할 수도 있습니다. 업로드는 공개되기 전에 검수를 거치며, 마켓플레이스는 OpenLess가 운영하는 검수 백엔드가 제공해 목록이 난립하지 않도록 관리됩니다. 한편 다듬은 텍스트는 한 번에 한 덩어리로 기다렸다 들어가는 대신 글자 단위로 커서에 흘러 들어가는 스트리밍 삽입(streaming insertion)을 사용해 체감 지연을 줄이고, 애플리케이션이 스트리밍 입력을 받지 못하면 자동으로 한 번에 붙여넣는 방식으로 폴백합니다.

OpenLess 설치 및 사용법

OpenLess의 릴리스 페이지에서 플랫폼별 빌드를 내려받습니다. macOS는 .dmg(Apple Silicon용 aarch64, Intel용 x64)를 받아 앱을 /Applications 로 옮긴 뒤, 빌드가 애플 공증(notarize)이 아닌 임시 서명이라 Gatekeeper의 "손상됨" 경고를 피하기 위해 터미널에서 한 번 다음을 실행합니다.

xattr -cr /Applications/OpenLess.app

윈도우는 .exe 설치 파일을 실행하고, macOS는 Homebrew Cask로도 설치할 수 있습니다.

brew tap appergb/openless https://github.com/appergb/openless
brew install --cask openless
xattr -cr /Applications/OpenLess.app

처음 실행할 때 macOS에서는 마이크와 손쉬운 사용(Accessibility) 권한을 허용하고 앱을 재시작한 뒤, 설정에서 사용할 ASR과 정리 모델의 자격 증명을 채웁니다. 소스에서 직접 빌드하려면 macOS 빌드가 git 서브모듈로 가져오는 벤더드 ASR 엔진이 필요하므로, 클론 직후 서브모듈을 초기화한 뒤 openless-all/app 에서 의존성을 설치하고 개발 모드로 실행합니다.

git submodule update --init --recursive
cd openless-all/app
npm ci
npm run tauri dev

설정 화면의 언어 메뉴에서는 简体中文, 繁體中文, English, 日本語와 함께 한국어 UI를 선택할 수 있습니다.

OpenLess의 라이선스

OpenLess는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.

:house: OpenLess 공식 홈페이지

:github: OpenLess 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다!
텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: