Releases: matrixism-cmyk/NabiTerm
Release list
nabiTerm v0.1.455
새 기능
trzsz(trz/tsz) 파일 전송 — SSH 세션 안에서 바로 주고받기
커뮤니티 피드백을 반영했습니다. SFTP가 있어도 sz/rz가 대체되지 않는 자리가 있습니다 —
점프 호스트, sudo -i, 컨테이너 exec, 시리얼 콘솔처럼 별도 채널을 못 여는 곳에서는
이미 열려 있는 셸이 유일한 통로입니다. AL2023부터 lrzsz가 빠지고 있어 후계인
trzsz를 먼저 지원합니다(ZMODEM은 다음 차례입니다).
- 원격에서
tsz 파일을 실행하면 받기,trz를 실행하면 보내기 확인 창이 뜹니다. - 저장 폴더·보낼 파일은 매번 물어봅니다. 자동 수락은 없습니다.
- 진행률은 그 pane 위에 한 줄로 표시되고, ✕ 로 언제든 취소할 수 있습니다.
- SSH·로컬 셸 어디서나 동작합니다(전송 수단을 가리지 않습니다).
- 실제 trzsz 구현(파이썬 trzsz 1.1.5)과 왕복 검증을 마쳤습니다.
보안: 원격이 우리 디스크에 쓰겠다는 요청이므로 방어를 조입니다.
경로 구분자·..·드라이브 문자·UNC·NTFS 대체 스트림·예약 이름(CON,COM1…)·제어문자가
섞인 이름은 고치지 않고 거절합니다. 덮어쓰기 없이 이름 (1).확장자로 붙이고,
한 번에 받을 파일 수에 상한을 둡니다. 실패·취소 시 받다 만 파일은 지웁니다.
원격이 "올릴 로컬 파일을 지정"하는 모드는 묻지도 않고 차단합니다.
AI 명령 바 — Claude 슬래시 명령 전수 반영 (17개 → 85개)
/color, /rename 처럼 그동안 빠져 있던 명령이 많았습니다. 공식 명령 표를 전부 옮기고
설치본의 명령 목록과 대조해 실재하는 것만 넣었습니다(별칭·폐지 명령 제외).
- 새로 들어온 것:
/color/rename/todos/status/vim/theme/worktree
/code-review/security-review/simplify/verify/goal/loop/tasks
/fork/branch/subtask/batch/background/focus/agents/add-dir
/cd/tools/plugin/hooks/chrome/keybindings/fast/web
/login/logout/upgrade/passes/insights/remote-control/teleport
/desktop/mobile/release-notes/feedback/bug/debug등 68개. - 85개를 한 줄로 늘어놓지 않도록 ⋯ 안에서 8개 주제 하위 메뉴로 묶고,
검색창을 넣었습니다. 명령 이름은 물론 한국어 설명으로도 찾을 수 있습니다
(예: "이름"이라고 치면/rename).
개선
- 진행률 막대를 하나로 통일했습니다. 업데이트 다운로드·SFTP 전송 큐·trzsz가 같은
위젯을 씁니다(이름·개수·양·속도·남은 시간). 화면마다 다르게 생기지 않습니다. - 세션 사이드바에서 Ctrl/Shift 다중 선택 후 한 번에 접속할 수 있습니다.
.ssh/config에서 가져온 세션이 많을 때 골라서 띄우라는 요청을 반영했습니다. - 메뉴 띠 오른쪽에 업데이트 버튼이 생깁니다. 무엇이 바뀌는지와 재시작 안내를
확인 창에서 보고 진행합니다. - Gemini CLI → Antigravity CLI(
agy) 로 교체했습니다(피드백 반영). - 환경설정 페이지를 10개에서 6개로 통합했습니다(모양 4→1, 원격 2→1).
- 첫 실행 시 윈도우 표시 언어를 따릅니다. 기본 터미널 글꼴 크기도 손봤습니다.
버그 수정
- 팝업·대화상자에서 마우스를 끌면 뒤 배경까지 블럭 선택되던 문제.
- 탭 제목 줄 빈 공간 우클릭 메뉴가 자주 뜨지 않던 문제(원인 2개).
- 세션 사이드바
⋯더보기 메뉴로 마우스를 옮기면 창이 닫히던 문제.
SHA256 (nabiTerm-setup.exe) = 89a683c0b5b63cb101bc810eca1d2aa1acf81b9de6feee3a5fcd022cd77e3cd1
nabiTerm v0.1.454
nabiTerm v0.1.454 — 보이지 않는 문자가 섞인 붙여넣기를 잡아냅니다
🛡 붙여넣기 유니코드 속임 경고 (새 기능)
웹에서 복사한 명령에 눈에 보이지 않는 문자가 숨어 있는 공격이 있습니다. 화면 순서를 뒤집는 방향 재정의(Trojan Source), 명령 중간에 끼어든 제로폭 문자, 키릴 а처럼 라틴 a와 똑같이 생긴 글자 같은 것들입니다.
이제 그런 붙여넣기는 확인 창을 거칩니다. 무엇이 걸렸는지 알려 주고, 위험 문자 제거 후 붙여넣기를 함께 제공합니다(자동으로 지우는 것은 보이지 않는 문자뿐입니다 — 비슷하게 생긴 글자는 어느 쪽이 진짜인지 알 수 없어 그대로 둡니다).
여러 줄 경고와는 별개 스위치입니다(설정 ▸ 일반, 기본 켜짐).
이 기능을 만들며 기존 결함도 하나 찾았습니다. 키보드 붙여넣기 가로채기가 "여러 줄일 때"만 동작해서 한 줄짜리 붙여넣기는 확인을 전혀 거치지 않고 있었습니다. 이제 모든 입구가 같은 기준을 씁니다.
🔎 터미널 찾기: 단어 단위
에디터 찾기에는 있고 터미널에만 없던 단어 단위(whole word) 옵션을 추가했습니다. 또 분리 창에서 정규식으로 찾을 때 엉뚱한 글자가 강조되던 문제를 고쳤습니다.
📦 전송 큐가 재시작을 견딥니다
큰 폴더를 올리다 프로그램을 닫으면 남은 전송 목록이 통째로 사라졌습니다. 이제 같은 서버에 다시 접속하면 대기 중이던 항목이 되살아나고, 받다 만 파일은 이어받습니다. (비밀번호는 저장하지 않습니다 — 경로만 기록합니다.)
📁 파일 목록 제외 필터
필터 칸에 *.rs -test처럼 쓰면 -(또는 !)로 시작한 조건은 제외로 동작합니다. 로그·백업 파일을 걷어내고 볼 때 씁니다. 로컬·SFTP 목록 모두 적용됩니다.
⬆ 업로드 파일 권한 (선택)
올린 셸 스크립트에 실행 권한이 없어 바로 실행되지 않는 문제를 위해, 설정 ▸ 전송·SFTP에서 auto(일반 644·스크립트 755)나 644 같은 값을 지정할 수 있습니다. 기본은 꺼짐입니다.
📝 nabiPad
- 중복 줄만 남기기(기존 '고유 줄만 남기기'의 반대), 줄 복제 추가
- 줄바꿈 폭을 설정에서 지정(40~200) — 그동안 80으로 고정이었습니다
🔒 내부 품질
unsafe 코드 42곳 전부에 "왜 안전한지"를 적고, 없으면 빌드 검사에서 실패하도록 게이트를 새로 만들었습니다. 명령 팔레트와 메뉴가 따로 갖고 있던 중복 구현 19건도 하나로 합쳤습니다.
SHA256 (nabiTerm-setup.exe) = 01fa6560207f1c0395dcf84658c0efc67ad2fb7fc2117909340fa7e8e90fcf52
nabiTerm v0.1.453
nabiTerm v0.1.453 — 원격 탭도 복원됩니다
📂 SFTP 탭 워크스페이스 복원 (요청)
그동안 재시작하면 터미널 탭만 되살아나고 SFTP/FTP 탭은 사라졌습니다. 이제 원격 탭도 마지막 경로·보기 모드·숨김 파일 표시까지 그대로 복원됩니다. 분할 레이아웃 안의 자리도 유지됩니다.
비밀번호는 저장하지 않습니다. 볼트에 저장해 둔 자격증명이나 키 파일로 자동 재연결하고, 둘 다 없으면 접속 창을 미리 채워 띄웁니다(기존 저장 세션과 같은 규칙).
⚙️ 환경설정 정리 (요청)
카테고리를 종류별로 다시 묶었습니다(12개 → 10개).
- 분리 — 만물상이던 터미널에서 SSH(접속 유지·통계 경고)와 전송·SFTP(속도 제한·병렬 수·해시 검증·파일명 인코딩·다운로드 폴더)를 각각 독립 페이지로 뺐습니다.
- 통합 — 테마 가져오기는 색상 안으로, 키워드 강조와 명령 스니펫은 강조·스니펫으로, 스케줄과 텔레그램 브리지는 자동화로 합쳤습니다.
- 동작 페이지는 일반으로 이름을 바꿨습니다.
📝 nabiPad: HEX/텍스트 전환을 '보기'로 (요청)
보는 방식의 전환이므로 보기 메뉴로 옮겼습니다. 이 항목 하나뿐이던 도구 메뉴는 없앴습니다. 함께 보기 ▸ 글꼴 크기(확대·축소·기본값)도 추가했습니다 — 그동안 Ctrl+휠로만 가능했습니다.
🔧 여러 화면에서 빠져 있던 기능들
- SFTP 파일 목록 헤더에 정렬 방향 화살표가 표시됩니다(로컬 브라우저와 동일).
- SFTP 아이콘·타일·목록 보기에서도 다중 선택이 강조됩니다(자세히 보기에서만 되던 문제).
- 탭 복제가 탭 우클릭 메뉴에도 나옵니다(그동안 명령 팔레트에만 있었습니다).
SHA256 (nabiTerm-setup.exe) = 171cc8aa5998685fb02698f9d24b637435a212f215219aac1badc1f9fc87fc0b
nabiTerm v0.1.452
nabiTerm v0.1.452 — 분리 창에서도 AI 명령 바가 뜹니다
🐛 SSH 창에서 AI 명령 바가 안 뜨던 문제 (진짜 원인 수정)
지난 버전에서 SSH를 지원하도록 고쳤지만, 분리 창(별도 창으로 떼어낸 터미널)과 "창 안에 띄우기" pane은 다른 코드로 그려지고 있었고 거기에는 명령 바 자체가 없었습니다. SSH 세션을 분리 창에 두고 쓰셨다면 바가 나올 수 없었습니다.
이제 탭·분리 창·창 안에 띄우기 모두 같은 코드로 명령 바와 팁 번역 오버레이를 그립니다. 어느 창에 있든 동일하게 동작합니다.
또한 CLI가 창 제목을 바꾸지 않는 경우를 대비해 화면 문구로도 CLI 종류를 판정하도록 보강했습니다(claude/codex/gemini/aider).
⚙️ nabiPad 설정 위치 이동
설정 창의 "에디터" 페이지를 없애고, nabiPad 편집기 창의 메뉴 ▸ 설정에서 열도록 일원화했습니다(편집기 설정은 원래 별도 파일 nabipad.toml에 저장됩니다).
SHA256 (nabiTerm-setup.exe) = ed20ab430c81ffaed849da51ec03273456c6153021e7a5de11313b900e21640f
nabiTerm v0.1.451
nabiTerm v0.1.451 — SSH에서도 AI 명령 바 + 팁 번역 확장
🐛 SSH 접속 창에서 AI 명령 바가 안 뜨던 문제 수정
원격 서버에는 셸 통합이 없어 "지금 무슨 명령이 도는지"를 알 수 없었고, 그래서 로컬 터미널에서만 바가 보였습니다. 이제 창 제목으로도 AI CLI를 알아채 SSH 세션에서도 명령 바가 나타납니다.
🐛 재시작 후 모델·노력 수준이 바에 반영되지 않던 문제 수정
이제 화면에 표시된 실제 값을 읽어 보여줍니다 — Using Fable 5 …, Kept model as …, Set effort level to high … 같은 줄을 인식합니다. 따라서 nabiTerm을 다시 켜도 그 CLI가 실제로 쓰는 모델·노력 수준이 버튼에 그대로 뜹니다(상태줄 연동이 있으면 그 값이 우선).
✨ 접두사 없는 안내 줄도 번역
Tips for getting started처럼 Tip:이 붙지 않은 줄도 한글로 보여 줍니다. 단, 그 줄만으로 뜻이 완결되는 문장만 번역합니다 — 상태 줄처럼 여러 정보가 함께 있는 줄을 덮어 정보를 가리지 않기 위해서입니다.
✨ 번역 캐시를 원하는 위치에 누적
설정 ▸ 터미널 ▸ 번역 캐시 파일에 경로를 지정할 수 있습니다. 공유 폴더나 개발 서버의 경로(예: \server\share\tipcache.json)를 넣으면 번역이 한 파일에 계속 누적됩니다. 저장할 때 기존 내용과 병합하므로 여러 PC에서 같은 파일을 써도 서로의 번역을 지우지 않습니다.
SHA256 (nabiTerm-setup.exe) = 65e4e6dba79cc5c74710d415d1e61df73290db9f562a55fc17b062c46efd639a
nabiTerm v0.1.450
nabiTerm v0.1.450 — 영문 팁 한글로 보기
✨ 터미널의 영문 팁을 한글로
AI CLI(claude 등)가 화면에 띄우는 영문 안내 —Tip: Double-tap esc to rewind the code… 같은 줄 — 을 한글 번역으로 덮어 보여줍니다.
- 별도 조작 없이 자동으로 번역돼 보입니다(기본 켜짐).
- 터미널 내용 자체는 바뀌지 않습니다. 복사·검색은 원문 그대로이고, 번역은 화면 위에만 겹쳐 그립니다.
- 해당 줄에 마우스를 올리면 원문이 툴팁으로 나옵니다.
- 번역이 확실하지 않은 문장은 번역하지 않고 원문을 그대로 둡니다(엉뚱한 번역 방지).
⚙️ 선택: 사전에 없는 팁도 AI로 번역
설정 ▸ 터미널 ▸ "사전에 없는 팁은 AI 번역"을 켜면, 내장 사전에 없는 문장을 로컬 claude CLI로 한 번만 번역하고 결과를 저장해 재사용합니다(같은 팁은 다시 호출하지 않습니다).
기본은 꺼져 있습니다 — 토큰·요금이 들고, 네트워크가 필요하며, 해당 줄이 API로 전송되기 때문입니다(폐쇄망·보안 환경 고려).
SHA256 (nabiTerm-setup.exe) = b71e1fd515b47454afceb188caff2977280a40626ce12b52a8869427313c18fa
nabiTerm v0.1.449
nabiTerm v0.1.449 — 렌더링 성능 최적화 + AI 명령 바 개선
터미널을 그리는 경로에서 매 프레임 반복되던 낭비를 걷어냈습니다. 화면이 크고 pane이 많을수록, 그리고 출력이 계속 흐르는 상황일수록 체감이 큽니다.
무엇이 빨라졌나
- 글자 그리기: 셀마다 문자열을 새로 만들고 UI 엔진 잠금을 잡던 것을 없앴습니다(120×40 화면 기준 프레임당 약 1,900회 할당 + 3,800회 잠금 제거).
- 링크 감지: 마우스를 터미널 위에 올려두기만 해도 화면 전체를 다시 스캔하던 동작을 캐시했습니다. 링크 밑줄 계산과도 캐시를 공유해 한 프레임에 최대 한 번만 계산합니다.
- URL 스캔: 후보 구간마다 화면 셀을 통째로 복사하던 것을 제거했습니다.
- 인코딩 깨짐 감지: 상태 표시줄이 매 프레임 화면 60줄을 문자열로 만들던 것을 내용이 바뀔 때만 계산하도록 바꿨습니다.
- 찾기·키워드 강조: 셀마다 소문자 변환 문자열을 만들고 규칙 수만큼 같은 줄을 반복 분석하던 것을 한 번으로 줄였습니다.
- 비교 모드: 로컬↔원격 비교 색칠이 매 프레임 디스크를 읽던 것을 0.5초 주기로 바꿨습니다.
- 분할 화면: 포커스가 없는 pane에서도 키 입력을 수집·변환하던 낭비를 제거했습니다.
안전장치
과거 이 영역에서 밑줄 어긋남·렌더러 충돌 회귀가 있었던 만큼, 각 변경은 기존 회귀 테스트(소프트랩 링크·빈 행 방어·검색 대소문자)를 유지한 채 적용했고 렌더 관련 테스트 전부가 통과합니다. 선택 영역 배경이 글자 아래를 덮지 않도록 그리기 순서도 그대로 유지했습니다.
렌더링 변경은 보이는 결과가 이전과 동일해야 합니다 — 다르게 보이는 부분이 있으면 알려주세요.
✨ AI 명령 바 추가 개선 (요청 반영)
- 모델·노력 수준이 재시작 후에도 유지됩니다. 바에서 고른 값을 설정에 저장해, 다시 켜도
opus·high처럼 마지막 상태가 그대로 보입니다(CLI가 상태줄로 실제 값을 알려주면 그 값이 우선). - 열려 있는 화면은 노란색으로 표시됩니다.
모델·노력 수준·사용량처럼 화면을 여는 버튼을 누르면 해당 버튼이 강조되고, 다시 누르면 ESC가 전송되어 닫힙니다. 키보드로 직접 닫은 경우에도 표시가 자동 해제됩니다.
ℹ️ 도움말 ▸ 정보 페이지
프로그램 소개와 함께 소스 저장소·이슈 링크, 연락처(matrixism@gmail.com), 보안 신고 안내를 추가했습니다.
SHA256 (nabiTerm-setup.exe) = 0ab2f9523ac17e697206106d225ce791c718685e27f61bb78bf077e62fdc181f
nabiTerm v0.1.448
nabiTerm v0.1.448 — SFTP 한글 파일명 안정화 + AI 명령 바 개편
🐛 SFTP 파일명 인코딩 — 중요 수정 (v0.1.444~447 사용자 필독)
v0.1.444에서 넣은 한글 파일명 지원에 파일을 열지 못하게 만드는 결함이 있었습니다. 코드 리뷰로 발견해 전면 재설계했습니다.
- UTF-8 이름 파일이 열리지 않던 문제: 한 서버에 CP949 이름과 UTF-8 이름이 섞여 있으면(한국 서버에 흔합니다), CP949가 감지된 뒤 UTF-8 이름 파일의 열기·다운로드·이름변경이 "파일 없음"으로 실패했습니다.
- 목록이 조용히 잘리던 문제: 일부 서버가 쓰는 이진 핸들이 인코딩 감지를 오염시켜, 디렉터리 목록이 중간에 끊기거나 전송이 실패할 수 있었습니다.
- 일본어·중국어 서버 오판: 일본어/중국어 파일명이 한글 모지바케로 표시되던 문제(감지 우선순위) — 이제 문자 종류를 보고 정확히 고릅니다.
이제 서버가 보낸 이름은 원본 바이트 그대로 되돌려 보내고, 새로 만드는 이름만 서버 인코딩 규약으로 보냅니다. 어떤 인코딩이 섞여 있어도 열기·다운로드·이름변경이 성립합니다.
✨ AI 명령 바 개편 (요청 반영)
- 버튼이 한눈에 읽히는 이름으로:
/compact→ 대화 요약,/clear→ 새 대화,/resume→ 이전 대화,/usage→ 사용량 … 마우스를 올리면"/compact 대화를 요약해 컨텍스트 확보"처럼 원래 명령과 설명이 함께 나옵니다. - 모드 순환 버튼(⇧⇥) 신설: 누를 때마다 Shift+Tab이 전송되어 권한 모드가 순환하고, 버튼에 현재 모드(자동 / 계획 / 편집 수락 / 권한 생략)가 표시됩니다.
- 모델·노력 수준 버튼에 현재 값 표시:
모델 ▾자리에 실제 사용 중인 모델이,노력 수준 ▾자리에 현재 단계가 나옵니다(고르면 즉시 반영, 상태줄 연동 시 자동 표시). - 버튼 높이 통일: 드롭다운 버튼과 일반 버튼의 높이가 어긋나던 문제 수정.
🔧 AI 기능 안정화 (코드 리뷰로 발견한 실결함)
- AI 프로필의 추가 인자 칸에 공백을 입력할 수 없던 버그 수정(
--model opus같은 두 단어 인자가 아예 입력 불가였습니다). - 실패 인계 프롬프트에 한글이 섞여 들어가던 구멍 차단(AI CLI 입력 깨짐 방지 규칙 준수).
- 실행 중인 명령에 직전 명령의 종료코드·출력이 잘못 짝지어지던 문제 수정.
- "창 안에 띄우기"로 옮긴 AI pane을 못 찾던 문제, 프로필 관리 창에서 추가한 프로필이 설정 취소로 사라지던 문제 수정.
- 워크스페이스 복원 시
claude -p "따옴표 인자"가 조각나 다른 명령으로 되살아나던 문제 수정.
기타
- 명령 팔레트의 '항상 위'·'상태바' 토글이 재시작 후 잊히던 문제 수정(메뉴와 동일하게 저장).
SHA256 (nabiTerm-setup.exe) = fe27a78475cdc7adcff16696b5d8e7716085c8a8c4537ce7143c2355308da47a
nabiTerm v0.1.447
nabiTerm v0.1.447 — 오픈소스 전환 릴리스 🎉
📢 nabiTerm이 오픈소스가 되었습니다
- 전체 소스 코드가 Apache License 2.0으로 공개되었습니다: https://github.com/matrixism-cmyk/NabiTerm
- 이제 릴리스도 소스와 같은 저장소(NabiTerm)에서 배포됩니다. 이 버전(v0.1.447)부터 자동 업데이트가 새 저장소를 바라봅니다.
- 기존 저장소(NabiTermPub)는 구버전 사용자의 업데이트 경로를 위해 전환 기간 동안 함께 유지됩니다 — 지금 업데이트하시면 자동으로 새 저장소로 넘어옵니다.
- 이슈 제보·기능 제안·PR을 환영합니다! (버그/기능 이슈 템플릿, 보안 취약점 비공개 신고 경로 마련)
🔧 AI 명령 바 개선 (사용자 보고)
/model ▾에 fable을 포함한 공식 별칭 전체(fable/opus/sonnet/haiku + 선택창)가 나오도록 수정했습니다./effort ▾도 전체 단계(low/medium/high/xhigh/max/ultracode + 선택창)로 확장했습니다.
기타
- 메뉴 정리: 보기 ▸ '파일 브라우저' 토글 제거 — 파일 ▸ '파일 브라우저 탭'과 중복(사용자 제안). 패널 토글은 Ctrl+Shift+E·명령 팔레트로 계속 가능합니다.
- GPU 없는 VM용 Mesa 소프트웨어 GL 자산도 새 저장소로 이전(자동 다운로드 경로 갱신).
- README 개편: 영문 기본(README.md) + 한국어(README.ko.md), 스크린샷·배지·소스 빌드 안내.
SHA256 (nabiTerm-setup.exe) = d1da7df58af117bf1de74a6ea51ba14566c8d48482bef6bc85ce3d57a93a76d2
Mesa software-GL runtime
Mesa llvmpipe (software OpenGL) runtime for GPU-less VMs / headless servers.
GPU가 없는 VM·헤드리스 환경용 소프트웨어 OpenGL(Mesa llvmpipe) 런타임입니다. 압축을 풀어 두 DLL을 nabiTerm.exe 옆에 두면 소프트웨어 렌더로 실행됩니다. 앱이 자동 다운로드 시 DLL별 SHA-256을 검증합니다.
Mesa 3D is licensed under the MIT license (Copyright Mesa contributors).