Claude 등 AI에게 Mac / Linux 보안 상태를 직접 물어보세요
RoamSwitch에는 읽기 전용 MCP(Model Context Protocol) 서버가 포함되어 있습니다. MCP 클라이언트에 연결하면 "지금 제 Mac / Linux 기기는 안전한가요?", "외부에 노출된 포트가 있나요?"처럼 자연어로 질문하는 것만으로 RoamSwitch가 직접 계산한 정확한 진단 결과에 기반한 답변을 받을 수 있습니다. 잠금 전환이나 포트 격리 등의 조작은 전혀 할 수 없으며, 통신은 모두 기기 내 stdio로만 이루어집니다(Zero Telemetry 방침의 연장).
🔒 왜 안전한가
- 읽기 전용: 보안 진단·포트 모니터링·가드 설정 확인만 가능합니다. 잠금 전환, 포트 격리, 기기 꺼내기 등의 조작 도구는 전혀 구현되어 있지 않습니다.
- 완전 로컬: 통신은 표준 입출력(stdio)만 사용합니다. AI 클라이언트(Claude Desktop/Code 등)와 Mac / Linux의 RoamSwitch 프로세스 사이에서만 이루어지며, 외부 서버로 전송되는 일은 전혀 없습니다.
- 오작동 방지: 조작 도구가 없기 때문에 프롬프트 인젝션 등으로 방화벽이나 네트워크 설정이 실수로 변경될 위험이 없습니다.
2단계로 설정 완료
1바이너리 위치
RoamSwitch.app에 포함되어 있습니다. 별도의 다운로드나 설치가 필요하지 않습니다.
/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer
2aClaude Desktop의 경우
~/Library/Application Support/Claude/claude_desktop_config.json의 "mcpServers"에 아래 내용을 추가한 후 Claude Desktop을 재시작하세요.
{
"mcpServers": {
"roamswitch": {
"command": "/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"
}
}
}
2bClaude Code의 경우
터미널에서 아래 명령어를 한 번만 실행하면 됩니다.
claude mcp add roamswitch /Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer
2cOpenAI Codex CLI의 경우
~/.codex/config.toml에 아래 내용을 추가하거나, 터미널에서 아래 명령어를 실행하세요.
[mcp_servers.roamswitch] command = "/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"
codex mcp add roamswitch -- /Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer
2dOpenCode의 경우
프로젝트 루트의 opencode.json(또는 전역 설정 ~/.config/opencode/opencode.json)에 다음을 추가하세요.
{
"mcp": {
"roamswitch": {
"type": "local",
"command": ["/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"]
}
}
}
💡 로컬 LLM 지원: Ollama나 LM Studio 등 로컬 모델과 연동 시, RoamSwitch가 위협 감지로 네트워크를 비상 차단한 상태에서도 완전 오프라인으로 즉시 안전 확인 및 조언 문의가 가능합니다.
2eAntigravity의 경우
~/.gemini/config/mcp_config.json(또는 워크스페이스 루트의 .agents/mcp_config.json)에 아래 내용을 추가하세요.
{
"mcpServers": {
"roamswitch": {
"command": "/Applications/RoamSwitch.app/Contents/MacOS/RoamSwitchMCPServer"
}
}
}
* 참고: Antigravity CLI(agy) 등에서 도구 실행 시 Hook Failure 또는 텔레메트리 오류가 발생하는 경우, ~/.gemini/config/plugins/.../hooks.json 에서 "enabled": false 로 설정하여 훅을 비활성화하세요.
1바이너리 위치
apt / rpm / AUR 패키지에 포함되어 있으며, 설치 시 자동으로 /usr/bin/roamswitch-mcp 에 배치됩니다. 별도의 다운로드나 빌드가 필요 없습니다(클라이언트 버전·Server Edition 공통).
/usr/bin/roamswitch-mcp
Server Edition(헤드리스 운영)에서도 동일한 바이너리와 설정 방법을 그대로 사용할 수 있습니다. 자세한 내용은 「운용 매뉴얼 (Linux Server)」의 「AI 에이전트 / MCP 연동 운영」장을 참고하세요.
2aClaude Desktop의 경우
Claude Desktop은 공식 Linux 버전이 제공되지 않습니다. 비공식 빌드(예: claude-desktop-debian 등)를 사용하는 경우 ~/.config/Claude/claude_desktop_config.json 의 "mcpServers" 에 아래 내용을 추가한 뒤 재시작하세요.
{
"mcpServers": {
"roamswitch": {
"command": "/usr/bin/roamswitch-mcp"
}
}
}
2bClaude Code의 경우
터미널에서 아래 명령어를 한 번만 실행하면 됩니다.
claude mcp add roamswitch /usr/bin/roamswitch-mcp
2cOpenAI Codex CLI의 경우
~/.codex/config.toml에 아래 내용을 추가하거나, 터미널에서 아래 명령어를 실행하세요.
[mcp_servers.roamswitch] command = "/usr/bin/roamswitch-mcp"
codex mcp add roamswitch -- /usr/bin/roamswitch-mcp
2dOpenCode의 경우
프로젝트 루트의 opencode.json(또는 전역 설정 ~/.config/opencode/opencode.json)에 다음을 추가하세요.
{
"mcp": {
"roamswitch": {
"type": "local",
"command": ["/usr/bin/roamswitch-mcp"]
}
}
}
💡 로컬 LLM 지원: Ollama나 LM Studio 등 로컬 모델과 연동 시, RoamSwitch가 위협 감지로 네트워크를 비상 차단한 상태에서도 완전 오프라인으로 즉시 안전 확인 및 조언 문의가 가능합니다.
2eAntigravity의 경우
~/.gemini/config/mcp_config.json(또는 워크스페이스 루트의 .agents/mcp_config.json)에 아래 내용을 추가하세요.
{
"mcpServers": {
"roamswitch": {
"command": "/usr/bin/roamswitch-mcp"
}
}
}
* 참고: Antigravity CLI(agy) 등에서 도구 실행 시 Hook Failure 또는 텔레메트리 오류가 발생하는 경우, ~/.gemini/config/plugins/.../hooks.json 에서 "enabled": false 로 설정하여 훅을 비활성화하세요.
읽기 전용 도구 (현재 Mac 17종 / Linux 25종, 계속 추가 중)
get_security_report
Mac에서는 18개 항목(FileVault, SIP, Gatekeeper, 방화벽, Wi-Fi 암호화 강도, ARP 스푸핑, 외부 노출 포트 등), Linux에서는 클라이언트 24개 항목 / 서버 30개 항목(커널 강화, Docker 소켓 및 특권 컨테이너 보호, 컨테이너 런타임 격리, 알려진 취약점 등)을 종합 진단하여 점수와 개선 조언을 반환합니다.
get_exposed_ports
현재 리스닝 중인 모든 포트를 나열하고, 외부에 공개된 포트는 알려진 위험 서비스(Redis/MongoDB 등) 판정을 포함한 상세 감사 결과를 반환합니다.
get_guard_status
미확인 포트 차단, ARP 스푸핑 대응, USB 가드, Bluetooth 가드, 웹/메일 다운로드 보호, DNS 위협 차단의 활성화 상태와 보안 레벨을 반환합니다.
audit_url_safety
이메일 링크나 웹 URL을 인수로 받아 피싱 사기, 유니코드 호모그래프 위장, 브랜드 사칭 서브도메인, 고위험 TLD를 완전 로컬(Zero Telemetry)로 진단합니다.
get_app_help
RoamSwitch의 전체 기능 사양, 내부 동작, 모든 알림 메시지, 문제 해결을 망라한 공식 지식 베이스를 로컬에서 즉시 검색하여 정확한 설명과 권장 조치를 제공합니다.
audit_security_logs
최근 보안 로그(Mac: Sudo 인증 실패, SSH 무차별 대입 시도, Gatekeeper 차단, XProtect 탐지 등 / Linux: Sudo 인증 실패, SSH 무차별 대입, 방화벽 차단, AppArmor 거부, ClamAV 탐지 등)를 집계하고 API 키나 토큰 등 민감 정보를 자동으로 마스킹한 뒤, 로그 패턴을 템플릿화한 신규 패턴 탐지 및 빈도 이상(통계적 스파이크) 탐지 결과도 반환합니다.
get_notification_history
RoamSwitch가 보낸 알림(보안 로그 감사 이상, ClickFix 탐지 등)의 기록을 최근 1주일간, 최신순으로 반환합니다.
roamswitch://docs/* (MCP Resources)
AI가 직접 컨텍스트로 참조할 수 있는 공식 문서 리소스(기능 사양・모든 알림 해설・설정 가이드・문제 해결).
기타 읽기 전용 도구
| 도구 | 지원 | 개요 |
|---|---|---|
audit_secrets |
Mac / Linux | 텍스트·파일·디렉터리에서 API 키와 개인 키 유출을 탐지합니다(탐지된 값은 마스킹되어 출력). |
run_active_vuln_scan |
Mac / Linux | 127.0.0.1 한정·비파괴 실증형 취약점 검증. 유일하게 네트워크를 사용하는 도구이며 기본값은 비활성, 설정에서 옵트인이 필요합니다. |
run_package_cve_scan |
Mac / Linux | 설치된 패키지(Mac: Homebrew / Linux: dpkg・dnf・zypper・pacman)를 로컬 CVE 맵과 대조합니다. 네트워크 통신은 전혀 하지 않습니다. |
run_package_cve_scan_languages |
Mac / Linux | npm / PyPI / crates.io / RubyGems / Packagist / Go / Maven 등의 의존성 락파일을 동일한 로컬 CVE 맵과 대조합니다. 네트워크 통신은 전혀 하지 않습니다. |
get_quarantine_status |
Mac / Linux | 악성코드 격리 Vault의 내용(원래 경로·탐지된 위협명·격리 일시·크기)을 반환합니다. |
get_canary_status |
Mac / Linux | 랜섬웨어 카나리아(미끼 파일) 배치 상태와 최근 50건까지의 탐지 인시던트를 반환합니다. |
get_port_anomaly_incidents |
Mac / Linux | 포트 이상 가드의 베이스라인 확보 상태, 현재 자동 차단 중인 포트, 최근 50건까지의 인시던트를 반환합니다. 현재 자동 차단 중인 포트는 타임스탬프가 없는 현재 상태의 스냅샷이며, 타임스탬프가 있는 인시던트 이력과는 다르다는 점을 응답 내 주석 필드로 명시하고 있습니다. |
get_runtime_threat_status |
Mac | XProtect의 악성코드 탐지로 이 Mac이 Air-Gap 격리되었는지와 그 발동 인시던트를 반환합니다. Air-Gap 원인을 파악하려면 가장 먼저 확인하세요. |
verify_fim |
Linux | 약 150곳의 핵심 시스템 파일을 다시 해시하여 베이스라인과 비교해 변조를 검증합니다. |
get_file_scan_guard_status |
Linux (Server) | 파일 스캔 가드(ClamAV)의 설정과 그것이 사용하는 격리 Vault 상태를 반환합니다. |
get_ebpf_incidents |
Linux (Server) | eBPF 런타임 가드의 현재 격리 상태와 발동 사유가 된 인시던트 이력을 반환합니다. |
get_resource_guard_incidents |
Linux (Server) | 리소스 고갈·프로세스 이상 탐지 가드의 이력(메모리 누수/크래시 루프)을 신뢰도 등급과 함께 반환합니다. |
get_incident_timeline |
Mac / Linux | 각 가드의 탐지를 하나의 시계열로 통합해 반환합니다(프로세스 계보·MITRE ATT&CK 태그 포함, 실험적). |
get_network_history |
Mac | 기억된 각 Wi-Fi 네트워크에 응답한 게이트웨이 기기 수와 마지막 확인 시각을 기록하고, 이름이 매우 유사한 다른 네트워크(Evil Twin 후보)를 탐지합니다. 이전에 접속한 적이 있는 네트워크인지 확인하는 데도 사용할 수 있습니다. |
get_vpn_status |
Linux (Client) | 신뢰할 수 없는 네트워크에서의 VPN(WireGuard / Tailscale) 활성화 설정, 실제 터널 연결 상태, 킬 스위치 무장 상태를 반환합니다. |
get_link_guard_status |
Linux (Client) | Link Guard(DNS / TLS SNI / HTTP Host 검사를 통한 피싱・악성 사이트 차단)의 활성화 설정, 동작 모드(끄기 / 경고 / 차단), 허용 목록, 최근 7일간의 차단・경고 이벤트를 반환합니다. |
get_air_gap_status |
Linux (Client) | 긴급 Air-Gap 격리(모든 통신 차단)가 현재 발동 중인지, 발동 이유, 자동 해제까지 남은 시간, SIGSTOP으로 동결된 모든 프로세스를 반환합니다. |
get_sharing_services_status |
Linux (Client) | 신뢰할 수 없는 네트워크 연결 시 SSH・Samba・화면 공유(GNOME Remote Desktop / VNC / xrdp)를 자동으로 중지하는 기능의 설정과, 실제로 중지・복원 대상이 되는 서비스의 상태를 반환합니다. |
get_bluetooth_guard_status |
Linux (Client) | 신뢰할 수 없는 네트워크에서 검색 가능 상태를 강제로 끄는 Bluetooth 가드의 설정과, 컨트롤러의 실제 상태(전원, 검색 가능 여부, 연결된 기기)를 반환합니다. |
get_usb_guard_status |
Linux (Client) | USB 스토리지 가드 및 BadUSB 키보드 가드(evdev를 통한 입력 억제만 수행하며 커널 수준에서 기기를 비활성화하지 않음)의 설정과 연결된 기기・승인 대기 중인 기기 목록을 반환합니다. |
위 도구 중 로컬 상태만 읽는 도구(격리 Vault, 캐너리, 포트 이상, 런타임 위협, 알림 기록, 인시던트 타임라인, 네트워크 기록, VPN / Link Guard / Air-Gap / 공유 서비스 / Bluetooth / USB 가드 상태 등)는 RoamSwitch가 위협 탐지로 네트워크를 긴급 차단한 상태에서도 계속 동작합니다. 로컬 LLM과 함께 사용하면 차단 중에도 그 자리에서 원인을 조사할 수 있습니다.
일상 업무 및 개발 워크플로에서의 구체적인 질문법
로컬 개발 중 포트 감사, 공용 Wi-Fi 보안 진단, 피싱 URL 검사 등 실제 상황에서 사용할 수 있는 프롬프트와 AI 응답 예시입니다. 복사하여 바로 AI에 전달할 수 있습니다.
로컬 서버·DB 포트 노출 감사
Next.js, Vite, Python, Docker, Redis 등을 실행했을 때 의도치 않게 0.0.0.0(전체 공개)으로 LAN에 노출되지 않았는지 AI에게 감사를 요청합니다.
• 🚨 포트 3000 (node / Next.js):
0.0.0.0:3000으로 외부 공개 중• 🚨 포트 6379 (redis-server):
0.0.0.0:6379으로 외부 공개 중 (인증 비활성화로 동일 Wi-Fi 내 다른 기기에서 직접 접근 가능)• ✅ 포트 5432 (postgres):
127.0.0.1:5432 (localhost 한정·안전)💡 권장 조치: Redis 설정에서
bind 127.0.0.1로 변경하고, Next.js는 npm run dev -- -H 127.0.0.1로 실행하세요.외출지 Wi-Fi 연결 시 안전 상태 점검
카페나 호텔의 무료 Wi-Fi에 연결한 직후, 작업을 시작해도 안전한지 방화벽 및 ARP 감시 등 필수 방어 설정이 활성화되어 있는지 AI에게 종합 진단을 요청합니다.
• 🛡️ 종합 점수: 88 / 100 (Grade: A-)
• 📡 네트워크 판정: 미신뢰 네트워크 (외출 모드·패킷 필터 작동 중)
• ✅ 방화벽 / 스텔스 모드: 활성 (외부 탐색 패킷 차단 중)
• ✅ ARP 스푸핑 자동 차단: 활성 (패킷 감청 감지 시 자동 격리)
• ⚠️ 개선 권장: FileVault 디스크 암호화가 비활성화 상태입니다. 시스템 설정에서 활성화를 권장합니다.
의심스러운 이메일·채팅 링크 안전성 검사
거래처를 사칭하는 의심스러운 이메일이나 Slack/Discord DM에 포함된 URL을 외부에 전송하지 않고(Zero Telemetry) Mac 기기 내에서 즉시 AI로 진단합니다.
• 🚨 위험도 판정: Dangerous (위험 / 안전 점수: 8/100)
• ❌ 브랜드 위장 서브도메인:
apple.com처럼 보이지만 실제 도메인은 login-auth-verify.xyz입니다.• ❌ 고위험 TLD:
.xyz는 일회용 피싱 사기에 자주 악용되는 고위험 도메인입니다.• 🔒 Zero Telemetry: 외부 전송 없이 Mac 기기 내에서 안전하게 검증 완료.
• 🛑 권장 조치: 링크를 절대 열지 말고 이메일을 삭제 및 신고하세요.
코딩 작업 중 자율 보안 세이프가드
Claude Code나 Antigravity에 서비스 구축 및 테스트를 맡길 때, MCP 도구를 세이프가드로 자율 실행시켜 의도치 않은 포트 노출이나 취약점을 방지합니다.
1. Fastify 백엔드 서버를 포트 8080에서 시작했습니다.
2. 🔍 RoamSwitch MCP 검증:
get_exposed_ports를 실행하여 127.0.0.1:8080(localhost 한정)에 바인딩되어 LAN 외부 노출이 없음을 확인했습니다.3. 보안 안전성이 확보되었으므로 통합 테스트를 진행합니다.
업무 시작 전 점검 및 사내 제출용 보고서 생성
사내 보안 규정 준수 확인 및 IT 부서 제출용, 또는 개인 셀프 점검용으로 현재 Mac 보안 상태를 Markdown 형식으로 한 번에 출력합니다.
## 🛡️ Mac Security Health Report (2026-08-28)
- 종합 점수: 96 / 100 (Grade: A+)
- 주요 방어 현황:
• FileVault: ✅ 활성 (APFS Encrypted)
• SIP (시스템 무결성 보호): ✅ 활성
• 방화벽 / 스텔스 모드: ✅ 활성
• ARP 스푸핑 자동 차단: ✅ 활성
• DNS 위협 보호: ✅ 활성 (Quad9 Secure DNS)
- 권장 조치: 없음 (매우 우수한 보안 상태입니다)USB·블루투스·다운로드 보호 가드 작동 확인
미확인 USB 저장장치 연결 보호, 블루투스 감시, 웹/메일 다운로드 보호, 보안 DNS 전환 등 RoamSwitch의 다양한 보호 기능이 정상 작동하는지 확인합니다.
• 🛡️ 활성 보호 레벨: Balanced (표준 보호 모드)
• ✅ USB 저장장치 가드: 활성 (미등록 USB 연결 시 경고 및 차단)
• ✅ 블루투스 가드: 활성 (페어링되지 않은 기기 접근 감시)
• ✅ 웹·메일 다운로드 보호: 활성 (격리 속성 파일을 ClamAV로 자동 검사)
• ✅ DNS 위협 보호: 활성 (악성 C2·피싱 도메인 자동 차단)
앱 사용법 및 알림 메시지 의미・대처 상담
화면에 표시된 알림이나 경고, 세부 기능 사양(패킷 필터, FSEvents, ClamAV, USB 보호 등)에 대해 AI가 공식 지식 베이스를 기반으로 정확한 설명과 대처법을 안내합니다.
• 🚪 알림 이유: 개발 서버가
0.0.0.0(전체 공개)으로 실행되어 외부 접근이 차단되었습니다.• ⚙️ 안전한 대처법:
1. 권장 (로컬 한정 실행):
npm run dev -- -H 127.0.0.1로 실행하면 외부에 노출되지 않습니다.2. 외부 공유 필요 시: RoamSwitch '포트 진단'에서 포트 3000의 외부 접근을 허용할 수 있습니다.
• 🔍 발생 사태: 공용 Wi-Fi 내의 다른 기기가 게이트웨이를 사칭하여 통신을 도청・변조하려는 중간자 공격(MITM)이 발생했습니다.
• 🛡️ RoamSwitch 자동 방어: ARP 스푸핑 자동 차단이 발동하여 네트워크를 즉시 에어갭 격리하고 패킷 감청을 차단했습니다.
• 🛑 권장 조치: 해당 Wi-Fi에는 다시 연결하지 마시고, 현재의 테더링 회선으로 작업을 계속하세요.
• 🔌 추출 이유: 미등록 기기를 통한 데이터 유출 및 악의적인 BadUSB 공격을 방지하기 위해 자동 언마운트되었습니다.
• ⚙️ 안전한 등록 절차: 1. 메뉴 바의 RoamSwitch 아이콘에서 '설정' 열기 → 2. 'USB 저장장치 보호' 탭 선택 → 3. '연결된 기기에서 추가'를 클릭하고 해당 USB 선택 → 4. 권한을 '읽기 전용(권장)'으로 지정하고 저장하면 다음 연결부터 안전하게 마운트됩니다.
• ⚠️ 원인: 패킷 필터(PF) 제어 및 특권 처리를 담당하는 데몬
RoamSwitchHelper와의 XPC 통신이 일시적으로 끊어졌습니다.• 🛠️ 복구 절차:
1. 터미널을 열고 다음 명령어로 헬퍼를 재시작하세요:
sudo killall RoamSwitchHelper2. RoamSwitch 앱을 재실행합니다.
3. macOS '시스템 설정' > '일반' > '로그인 항목 및 확장 프로그램'에서
RoamSwitchHelper가 허용되어 있는지 확인하세요.Air-Gap 발동 후 로컬 LLM + MCP를 이용한 오프라인 진단
랜섬웨어 탐지 등으로 Air-Gap(긴급 네트워크 차단)이 발동하면 Claude Desktop 같은 클라우드 AI와의 통신도 함께 차단됩니다. 하지만 RoamSwitch의 MCP 서버는 로컬 프로세스 통신만으로 동작하기 때문에, Ollama 등의 로컬 LLM과 함께 사용하면 외부 네트워크가 전혀 없는 상태에서도 진단을 계속할 수 있습니다. 로그 이상 탐지·변조 탐지·기존 취약점 대조는 모두 완전히 로컬에서 완결되므로, 바로 통신을 쓸 수 없는 이 순간에야말로 진가를 발휘합니다.
• 🐛 카나리아 발동: 14:32:07에
/var/www/decoy_invoice.pdf의 암호화를 감지, 프로세스 suspicious_enc(PID 8823)를 즉시 정지·격리함• 🔌 포트 모니터링(Port Anomaly Guard): 최근 인시던트 기록에 새로운 자동 차단 없음 — 침입 경로는 카나리아 탐지 1건뿐이며 추가 백도어 포트 개방은 확인되지 않음
• 📜 로그 상관(이상 탐지): 발동 12분 전부터
sshd 인증 실패가 급증(빈도 급증 탐지, Z-score 5.2) — 침입 경로일 가능성• 🔒 변조 탐지(FIM): 약 150개 크리티컬 패스에 변조 없음 — 시스템 영역까지 피해가 확산되지 않은 것으로 확인
• 📦 기존 취약점 대조: 로컬 CVE 맵과 대조, 해당 패키지에 심각한 기존 취약점 없음
💡 권장 대응: 침해는 웹 루트 하위로 국한되었을 가능성이 높습니다. 백업 복원 전에 해당 디렉터리의 다른 파일도 개별적으로 확인할 것을 권장합니다.
MCP 연동에 대해
Q. 정말로 외부와 통신하지 않나요?
A. 네. MCP 서버는 AI 클라이언트가 표준 입출력(stdio)을 통해 직접 실행하는 로컬 프로세스이며, 네트워크 통신 코드를 전혀 포함하지 않습니다. 진단 결과도 이 Mac / Linux 기기에서 즉시 계산됩니다.
Q. Pro 버전이 아니어도 사용할 수 있나요?
A. 네, 무료 버전에서도 모든 도구를 사용할 수 있습니다. 다만 각 자동 가드의 실제 작동 여부는 Pro 라이선스 상태에도 좌우되므로, 도구에서는 설정의 토글 상태만 확인할 수 있습니다.
Q. 지원되는 AI 클라이언트는 무엇인가요?
A. MCP(Model Context Protocol)의 stdio 전송 방식을 지원하는 클라이언트라면 위에 나열된 것 외에도 기본적으로 사용할 수 있습니다. Claude Desktop·Claude Code·OpenAI Codex CLI·OpenCode·Antigravity에서 동작을 확인했습니다.
Q. Antigravity에서 "Hook Failure" 등의 오류가 발생하여 도구를 실행할 수 없습니다.
A. Antigravity에 설치된 외부 플러그인(Google Cloud 텔레메트리 등)의 PreToolUse 훅으로 인해 도구 실행이 차단될 수 있습니다. ~/.gemini/config/plugins/.../hooks.json 파일을 열고 "enabled": false 로 설정하여 비활성화하세요.
Q. 네트워크가 차단된 상태에서도 문의할 수 있나요?
A. Ollama나 LM Studio 등 로컬 LLM(OpenCode 등 로컬 모델 연동 환경)을 사용 중인 경우 모든 처리가 Mac / Linux 기기 내에서만 이루어지므로, RoamSwitch에 의한 네트워크 긴급 차단 중에도 완전 오프라인으로 즉시 문의가 가능합니다. 클라우드 기반 LLM(Claude API 등)을 사용 중이라면 핫스팟 등 안전한 회선으로 전환 후 문의해 주세요.