"텍스트 필드에선 잘못된 붙여넣기가 창피해. 터미널에선 잘못된 붙여넣기가 실행돼."
왜 터미널이 특별한가
Terminal, iTerm, VS Code 나 Cursor 내장 터미널, 또는 Codex 나 Claude Code 같은 코딩-에이전트 CLI 에 받아쓰는 건 일등 사용 사례야 — 아빠는 그것들에서 하루 종일 살아. 근데 터미널은 범용 텍스트 필드가 아냐. 거기 붙여넣은 텍스트는 실행될 수 있어. 실행 전에 못 읽는 큰 숨은 붙여넣기 블록은 잘해야 적대적이고 나빠야 위험해. 그래서 Firekeeper 는 터미널한테 Mail 작성 창과 다른 규칙의 자기 삽입 프로파일을 줘.
터미널 프로파일 규칙
타깃을 터미널로 감지하고(번들 id 로 — Terminal, iTerm2, Ghostty, 에디터-내장 터미널, 에이전트 CLI) 동작을 바꿔:
- 짧은 단일-줄 받아쓰기: 평범하게 붙여넣기.
- 길거나 여러-줄 받아쓰기: 보이고 편집 가능하게 유지 — 명시적 '터미널로 보내기' 있는 프리뷰 오버레이, 또는 느린/줄별 삽입, 또는 타깃이 지원하면 bracketed-paste-인식 삽입.
- 긴 터미널 받아쓰기 후 Enter 를 절대 자동으로 안 누름, 유저가 명시적으로 '엔터 쳐' 라고 말하고 또 그 동작을 켜지 않는 한.
Enter 규칙이 하중 받는 거야: 자동 실행되는 받아쓰기는 다 생각 안 끝낸 명령을 돌릴 수 있는 받아쓰기야.
범용 텍스트 필드: 텍스트 붙여넣기 -> 완료
터미널 프로파일: 터미널 감지
-> 짧아? 붙여넣기
-> 길어? 프리뷰 / 청크 / bracketed-paste, 편집 가능 유지
-> 말한 '엔터 쳐' 그리고 켜졌을 때만 Enter
작업 루프 존중
더 깊은 생각은 유저의 실제 워크플로 존중이야. 코딩 에이전트에 긴 프롬프트를 받아쓰는 개발자는 보내기 전에 보고 편집 하고 싶어 — 그게 도구가 루프랑 싸우는 대신 맞는 방식이야. Wispr Flow 가 이걸 알아냈고; Firekeeper 는 이걸 있으면 좋은 게 아니라 설계 요구사항으로 다뤄. 터미널 프로파일이 '받아쓸 수 있어' 를 '내 실제 개발 환경에 안전하게 받아쓸 수 있어' 로 바꾸는 거야.
앱이 자기 주도로 터미널에 Enter 를 절대 합성하지 마. 터미널 받아쓰기 후 Enter 자동 누름은 반쯤 만든 명령을 실행할 수 있어. 합성된 Enter 로 가는 유일한 경로는 유저가 설정 켠 채 명시적으로 '엔터 쳐' 문구를 말하는 것 — 의도적 신호 둘, 절대 추론 아님. 의심스러우면, 커서를 텍스트 끝에 두고 사람이 누르게 둬.
번들 id 로 타깃 카테고리를 감지하고, 그다음 특화해. 최전면 앱의 번들 식별자는 삽입 프로파일을 고르는 안정적이고 싼 신호야. 알려진 터미널과 코딩-에이전트 번들 id 집합을 유지하고, 타깃이 맞으면 조심스러운 프로파일로 전환해. 미상 앱은 터미널 게 아니라 안전한 범용 경로를 받아.