Skip to content

데스크톱 앱 시험판 ​

서버를 따로 두지 않고 맥 한 대에서 쓰는 방법이에요. 앱이 서버와 에이전트를 자식 프로세스로 띄우고, 앱을 끄면 같이 꺼요. 회의는 이 맥에만 저장돼요.

아직 시험판이에요

서명·패키징한 .app 이 없어요. 저장소를 받아 직접 빌드해서 띄워요. 화면·서버·에이전트를 한 번에 빌드하니 처음엔 1분 안팎 걸려요.

준비물 ​

준비물확인
Gogo version
Nodenode -v (yarn 은 corepack 으로 받아요)
받아쓰기 엔진~/.notype/WhisperLiveKit 이 있어야 해요. 시작하기의 설치 스크립트로 한 번 설치해요
Claude Code 로그인AI 교정·요약을 쓸 때만

빌드하고 띄우기 ​

sh
git clone https://github.com/CreatiCoding/notype.creco.dev.git
cd notype.creco.dev
sh desktop/scripts/start.sh

start.sh 는 네 단계를 거쳐요. 여러 번 실행해도 되고, 코드를 고쳤다면 다시 실행하면 돼요.

  1. 화면 빌드: 웹 화면을 빌드해 서버에 넣어요.
  2. 서버·에이전트 빌드: desktop/bin/notype-server, desktop/bin/notype-agent 를 만들어요.
  3. Electron 준비: npm 으로 받은 Electron.app 을 준비해요.
  4. 실행: NoType 창을 열어요.

받아쓰기 엔진이 없으면 "받아쓰기 엔진이 아직 없어요"라고 알려 줘요.

왜 Electron 을 패키징하지 않나요?

npm 으로 받은 Electron.app 을 그대로 띄우면, 코드를 고쳐 다시 빌드해도 실행 파일 서명이 바뀌지 않아요. 그래서 한 번 허용한 마이크·화면 기록·시스템 오디오 권한이 그대로 유지돼요. Electron 판이 바뀌거나 폴더를 옮기면 다시 허용해야 해요.

처음 녹음할 때 ​

처음 녹음하면 macOS 가 마이크, 화면 기록, 시스템 오디오 권한을 물어요. 권한은 Electron 이라는 이름으로 잡혀요. 자세한 건 macOS 권한에 있어요.

창 왼쪽 아래에 엔진 상태가 보여요.

표시뜻
엔진 실행 중 · 0.3.1앱 안의 에이전트가 붙었어요(버전)
받아쓰기 준비됨WhisperLiveKit 이 떴어요. 녹음 버튼이 켜져요
AI 교정·요약 켜짐이 맥에 Claude Code 가 있고 로그인돼 있어요

엔진이 뜨는 동안에는 "받아쓰기 엔진(WhisperLiveKit)을 켜는 중이에요. 준비되면 녹음 버튼이 켜져요."가 보여요.

창을 닫아도 꺼지지 않아요 ​

  • 창을 닫으면 숨기기만 해요. 앱은 메뉴 막대에 남고 녹음과 엔진은 계속 돌아요.
  • 끝내려면 ⌘Q 나 메뉴 막대의 NoType 끝내기를 눌러요.
  • 이미 떠 있을 때 다시 띄우면 새로 뜨지 않고 기존 창이 앞으로 나와요.

녹음을 켜고 끄는 단축키와 메뉴 막대는 단축키와 메뉴 막대에 있어요.

터미널 에이전트와 함께 못 써요 ​

데스크톱 앱의 에이전트는 웹용 에이전트와 같은 ~/.notype 을 써요. 잠금 파일(~/.notype/agent.lock)로 맥 한 대에 하나만 돌기 때문에, 터미널에서 웹용 에이전트를 켜 둔 채로는 데스크톱 앱의 엔진이 바로 끝나요. 이때 앱이 "받아쓰기 엔진(에이전트)이 멈췄어요" 창을 띄워요. 터미널의 notype-agent 를 끄고(Ctrl+C) NoType 을 다시 열어요.

Raycast·Spotlight 에서 찾기 선택 ​

start.sh 는 .app 을 만들지 않아서 Raycast·Spotlight 에 NoType 이 나오지 않아요. 이미 한 번 빌드했다면, 빌드된 앱을 띄우기만 하는 작은 실행기를 ~/Applications 에 두면 검색돼요.

sh
REPO="$PWD"   # 저장소 루트에서 실행
APP="$HOME/Applications/NoType.app"
mkdir -p "$APP/Contents/MacOS"
cat > "$APP/Contents/Info.plist" <<PLIST
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
  <key>CFBundleName</key><string>NoType</string>
  <key>CFBundleIdentifier</key><string>dev.creco.notype.launcher</string>
  <key>CFBundleExecutable</key><string>NoType</string>
  <key>CFBundlePackageType</key><string>APPL</string>
  <key>LSUIElement</key><true/>
</dict></plist>
PLIST
cat > "$APP/Contents/MacOS/NoType" <<SH
#!/bin/sh
exec open -n "$REPO/desktop/node_modules/electron/dist/Electron.app" --args "$REPO/desktop"
SH
chmod +x "$APP/Contents/MacOS/NoType"

실행기는 다시 빌드하지 않아요. 코드를 고쳤다면 start.sh 를 다시 실행해요. 저장소 폴더를 옮기면 실행기도 다시 만들어야 해요.

기록 보기 ​

앱의 기록은 ~/Library/Application Support/NoType/logs 에 있어요. 메뉴 막대의 기록 폴더 열기로 바로 열 수 있어요. 서버가 15초 안에 뜨지 않거나 멈추면, 앱이 서버 기록의 끝부분을 오류 창으로 보여 주고 끝나요. 엔진(에이전트)이 돌다가 멈추면 3초 뒤 다시 띄워요(최대 5번).