CLI-Only Commands

이 명령어들은 터미널 CLI 인터페이스에서만 사용할 수 있습니다. Web UI, Telegram 봇, Discord 봇에서는 사용할 수 없으며 -- 로컬 터미널 프로세스에 의존하고 서버 측 대응 기능이 없습니다. CLI가 아닌 채널에서 사용하려 하면 무시되거나 오류가 반환됩니다.

왜 CLI 전용인가요?
이 명령어들은 CLI 프로세스 자체와 직접 상호작용합니다 -- 로컬 머신의 파일을 읽거나, 터미널 화면을 제어하거나, 버전 메타데이터를 출력하거나, 프로세스를 종료합니다. 요청/응답 API로 변환할 수 없으므로 대화형 터미널 세션에서만 의미가 있습니다.

명령어 레퍼런스

명령어인자설명
/version없음현재 CLI-JAW 버전 문자열을 출력합니다
/quit없음CLI-JAW 프로세스를 정상적으로 종료합니다
/q없음/quit의 단축 명령어
/file<path> [caption]로컬 파일을 대화에 첨부합니다 (화면에 표시되지 않음)
/idepop | on | offIDE diff 뷰 패널을 제어합니다

/version

설치된 CLI-JAW 버전, 빌드 해시, 런타임 정보를 터미널에 출력합니다. 버그 리포트를 작성하거나 업데이트가 정상적으로 적용되었는지 확인할 때 유용합니다.

구문

/version

인자

없음. 이 명령어는 인자나 플래그를 받지 않습니다.

출력

cli-jaw v2.14.0 (build a3f8c1d)
node: v22.11.0 | platform: darwin-arm64
config: ~/.cli-jaw/config.yaml

사용 예시

# 이슈 리포트 전 버전 확인
/version

# 클립보드에 복사 (jaw 세션 내부가 아닌 쉘에서 실행)
jaw --version | pbcopy
~해줘 tip
"버전 확인해줘" -- 어시스턴트가 /version을 실행하고 결과를 알려줍니다. "지금 어떤 버전 쓰고 있어?"라고 해도 같은 결과를 얻을 수 있습니다.

/quit, /q

CLI-JAW 프로세스를 정상적으로 종료합니다. 현재 대화를 세션 로그에 저장하고, 대기 중인 메모리 쓰기를 모두 처리한 뒤, 종료 코드 0으로 Node.js 프로세스를 종료합니다. /q는 동일하게 동작하는 단축 명령어입니다.

구문

/quit
/q

인자

없음. 이 명령어는 인자나 플래그를 받지 않습니다.

동작

사용 예시

# 세션 종료
/quit

# 같은 동작, 더 짧게
/q
~해줘 tip
"종료해줘" 또는 "나갈게" -- 어시스턴트가 자연어 종료 의도를 인식하고 /quit을 대신 실행합니다. Ctrl+C를 두 번 눌러 즉시 종료할 수도 있지만, 그러면 정상적인 플러시 과정이 생략됩니다.

/file

로컬 파일을 현재 대화 컨텍스트에 첨부합니다. 파일은 디스크에서 읽혀 메시지 히스토리에 숨겨진 첨부 파일로 주입됩니다 -- 터미널 출력에는 시각적으로 표시되지 않지만, AI 모델은 전체 내용을 수신합니다. 문서, 이미지, 데이터 파일을 화면을 어지럽히지 않고 대화에 전달할 때 유용합니다.

구문

/file <path> [caption]

인자

인자필수설명
<path>파일의 절대 경로 또는 상대 경로. ~ 확장을 지원합니다. 글로브 패턴은 지원되지 않으며 -- 명령어당 하나의 파일만 첨부할 수 있습니다.
[caption]아니오컨텍스트로 추가되는 선택적 설명. 생략하면 파일 내용만 전송됩니다.

지원 파일 형식

카테고리확장자
텍스트 / 코드.txt, .md, .py, .js, .ts, .json, .yaml, .toml, .csv, .html, .css 및 기타 일반 텍스트 형식
이미지.png, .jpg, .jpeg, .gif, .webp, .svg
문서.pdf, .docx, .xlsx, .pptx, .hwpx
오디오.mp3, .wav, .m4a, .ogg

동작

사용 예시

# 소스 파일을 첨부하여 리뷰 요청
/file src/auth/middleware.ts Review this middleware for security issues

# 스크린샷을 첨부하여 분석 요청
/file ~/Desktop/screenshot.png What error is shown here?

# CSV 파일을 첨부하여 데이터 분석
/file ./sales-q4.csv

# PDF 문서 첨부
/file ~/Documents/contract.pdf 이 계약서 요약해줘
~해줘 tip
"이 파일 봐줘 -- ~/report.pdf" -- 어시스턴트가 /file ~/report.pdf를 실행한 뒤 내용을 분석합니다. "src/index.ts 파일 첨부해서 리뷰해줘"라고 하면 첨부와 리뷰를 한 번에 처리합니다.

/ide

IDE diff 뷰 패널을 제어합니다. 활성화하면, 어시스턴트가 제안하는 코드 변경 사항이 채팅 인라인이 아닌 VS Code의 diff 에디터와 유사한 나란히 보기 또는 통합 diff 형식으로 표시됩니다. 여러 파일의 변경 사항을 수락하기 전에 검토하기 편리합니다.

구문

/ide <mode>

인자

인자설명
pop새 터미널 창에서 diff 뷰를 엽니다 (팝아웃). 지원되는 터미널 에뮬레이터(iTerm2, Wezterm, 또는 tmux)가 필요합니다.
on현재 터미널에서 인라인 diff 뷰를 활성화합니다. 채팅 아래 분할 창에 diff가 표시됩니다.
offdiff 뷰를 비활성화합니다. 코드 변경 사항이 채팅 출력 내 인라인 표시로 돌아갑니다.

모드 설명

터미널 요구 사항

모드요구 사항
popiTerm2, Wezterm, 또는 tmux. 지원되는 에뮬레이터가 감지되지 않으면 on 모드로 폴백됩니다.
on최소 80열, 40행 이상의 터미널 권장.
off요구 사항 없음.

사용 예시

# 별도 창에서 diff 뷰 열기
/ide pop

# 인라인 diff 뷰 활성화
/ide on

# diff 뷰 끄기
/ide off

# 일반적인 워크플로우: diff 활성화, 변경 요청, 검토
/ide on
"이 함수 리팩터링해줘 -- async/await으로 바꿔줘"
# 패널에서 diff를 검토한 후 수락 또는 거부
~해줘 tip
"IDE 모드 켜줘" -- /ide on을 활성화합니다. "diff 뷰 팝업으로 열어줘"라고 하면 /ide pop이 실행되고, "IDE 모드 꺼줘"라고 하면 /ide off가 실행됩니다.

플랫폼 지원 현황

아래 표는 각 명령어가 어디에서 작동하고 어디에서 작동하지 않는지 보여줍니다:

명령어CLIWeb UITelegramDiscordElectron
/versionYesNoNoNoYes*
/quit, /qYesNoNoNoNo
/fileYesNoNoNoYes*
/ideYesNoNoNoYes*

* Electron 데스크톱 앱에는 CLI 전용 명령어를 지원하는 내장 터미널이 포함되어 있습니다. 브라우저를 통해 제공되는 Web UI에서는 지원되지 않습니다.

문제 해결

/file에서 "file not found"가 표시되는 경우

jaw를 실행한 디렉토리 기준으로 경로가 올바른지 확인하세요. 확실하지 않다면 절대 경로를 사용하세요:

# 상대 경로 대신
/file ./data/report.csv

# 절대 경로 사용
/file /Users/jun/projects/data/report.csv

/ide pop이 아무 반응이 없는 경우

pop 모드는 iTerm2, Wezterm, 또는 tmux가 필요합니다. 다른 터미널 에뮬레이터(Terminal.app, Alacritty, Hyper)를 사용 중이라면 명령어가 자동으로 on 모드로 폴백됩니다. 터미널을 확인하세요:

echo $TERM_PROGRAM
# iTerm.app, WezTerm, 또는 tmux가 출력되어야 합니다

/quit이 멈추는 경우

/quit이 5초 이내에 종료되지 않으면 대기 중인 네트워크 요청이나 파일 쓰기가 있을 수 있습니다. Ctrl+C를 눌러 프로세스를 강제 종료하세요. ~/.cli-jaw/sessions/를 확인하여 세션이 저장되었는지 검증하세요.