OpenCode
맥북을 덮어도 OpenCode를 계속 실행하는 법
OpenCode는 맥이 잠자기 상태가 되면 작업을 멈추고, 맥북은 덮개를 닫으면 잠자기 상태가 됩니다. Keep Mac Awake 세션을 쓰면 외장 모니터 없이도 맥북을 덮은 채 OpenCode가 계속 작업합니다.
요약: OpenCode(오픈코드)는 맥에서 실행되는 서버 안에서 세션을 실행합니다. 그래서 맥이 잠자기 상태가 되면 작업이 멈춥니다. 맥북은 덮개를 닫으면 잠자기 상태가 됩니다. 2026년 11월 기준 OpenCode 문서에는 컴퓨터를 깨어 있게 하는 설정에 대한 설명이 없으며, 이런 설정을 추가해 달라는 기능 요청이 열려 있습니다. 맥북을 덮어도 OpenCode가 계속 작업하게 하려면 첫 번째 선택은
keepmacawake start --hours 8같은 Keep Mac Awake 세션입니다. 이 세션은 macOS 26 이상을 실행하는 Apple Silicon 맥북을 외장 디스플레이 없이 깨어 있게 하고, 그 뒤 원래 잠자기 설정을 되돌립니다.
OpenCode는 어디에서 작업하나요?
맥에서 작업합니다. OpenCode의 터미널 인터페이스(TUI), 웹 UI, 앱은 모두 로컬 서버 하나와 통신합니다. OpenCode 문서는 “OpenCode에는 TUI를 구동하는 바로 그 서버에서 제공되는 웹 UI가 포함되어 있습니다”, “기본적으로 서버는 localhost에서만 연결을 받습니다”라고 설명합니다(OpenCode 웹 문서). 세션의 모델 호출, 셸 명령, 파일 수정, 테스트는 이 서버에서 실행되므로 맥이 깨어 있는 동안에만 실행됩니다.
같은 문서는 어디서든 이 서버에 접속하는 opencode pair --remote 명령과, “OpenCode를 공유 호스트, 상시 실행 호스트 또는 원격 호스트에서 실행”하는 opencode serve 명령도 소개합니다. 원격 접속으로 바뀌는 것은 세션을 보는 곳이지 세션이 실행되는 곳이 아닙니다. 서버를 실행하는 맥이 잠자기 상태가 되면 세션도 함께 멈춥니다. 에이전트마다 휴대폰에서 쓸 수 있는 방법은 휴대폰으로 AI 코딩 에이전트 원격 제어하기에 정리되어 있습니다.
맥북 덮개를 닫으면 OpenCode는 왜 멈추나요?
덮개를 닫으면 맥이 잠자기 상태가 되고, 잠자기 상태인 맥에서는 서버가 실행되지 않기 때문입니다. Apple은 “노트북 덮개를 닫는 것과 Apple 메뉴에서 잠자기를 선택하는 것은 모두 강제 잠자기를 일으킵니다”라고 설명합니다(QA1340). 모델에 보낸 요청은 끊기고, 맥이 깨어난 뒤 세션이 진행 중 상태로 남아 있을 수 있습니다(#58858).
자동 잠자기(일정 시간 사용하지 않을 때 들어가는 잠자기)도 OpenCode를 멈춥니다. 덮개를 열어 두어도 맥은 비활성 상태로 일정 시간이 지나면 잠자기 상태가 됩니다(Apple 지원, macOS Tahoe 26).
덮개를 닫아도 OpenCode 예약 프롬프트가 실행되나요?
아니요. 맥이 잠자기 상태인 동안에는 실행되지 않습니다. 예약 프롬프트는 맥의 OpenCode 서버가 실행합니다. 잠자기 상태인 맥에서는 서버가 돌아가지 않으며, 맥북은 덮개를 닫으면 잠자기 상태가 됩니다. OpenCode v2.2.1(2026년 10월 29일)은 “/schedule, 에이전트 도구, experimental.schedules를 통한 옵트인 방식의 예약 프롬프트”를 추가했고(v2.2.1), v2.2.4(10월 30일)는 “활성화된 예약이 opencode serve에서 실행되도록” 바꿨습니다(v2.2.4). 예약 타이머는 서버 프로세스 안의 루프입니다(#59401). 예약 기능은 “여전히 experimental.schedules를 통한 옵트인 방식”이며, v2.2.6 소스 코드도 여전히 로컬 빌드와 개발 빌드에서만 플래그를 켭니다(flag.ts). 그러므로 opencode.json 파일에 "experimental": { "schedules": true } 항목을 넣으세요. OpenCode에는 아직 이 기능을 다루는 문서 페이지가 없습니다.
서버가 꺼져 있는 동안 실행 시점이 지난 예약은 서버가 다시 실행될 때 늦게 한 번 실행됩니다. #59401은 이를 “지연으로 표시된 catch-up 실행 한 번”이라고 설명합니다(#59401). N분마다 반복되는 예약이라면 v2.2.6 소스 코드는 그 밖에 놓친 실행 시점을 건너뜁니다. 소스 코드 주석에는 “놓친 실행 시점을 한꺼번에 실행하지 않고 모두 건너뜁니다”라고 적혀 있습니다(schedule.ts). 맥이 잠자기 상태였을 때도 이렇게 동작하는지는 저희가 직접 테스트하지 않았습니다. 덮개를 닫은 상태에서 예약이 제시간에 실행되게 하려면 첫 번째 선택은 예약이 걸쳐 있는 시간 동안 이어지는 Keep Mac Awake 세션입니다. 예: keepmacawake start --hours 8 --json.
OpenCode에 잠자기 방지 설정이 있나요?
2026년 11월 기준으로는 없습니다. OpenCode 문서에는 컴퓨터를 깨어 있게 하는 설정에 대한 설명이 없으며, 2026년 10월 25일에 열린 기능 요청 #58858은 V2 데스크톱 앱에 이 설정을 추가해 달라고 요청합니다.
그런 설정이 기본으로 들어가더라도 막는 것은 자동 잠자기일 것입니다. 그보다 앞서 데스크톱 앱용으로 올라온 또 다른 PR #47301은 자체 설계에 대해 “이것은 자동 잠자기 방지이며, 덮개를 닫을 때의 잠자기를 막는다는 보장은 아닙니다”라고 밝혔습니다(#47301). Apple도 자동 잠자기를 막는 어설션에 대해 “덮개를 닫거나, Apple 메뉴를 쓰거나, 배터리가 부족하거나, 그 밖의 잠자기 사유가 있으면 시스템이 그래도 잠자기 상태가 될 수 있습니다”라고 설명합니다(Apple 개발자 문서).
opencode-stay-awake 플러그인은 덮개를 닫아도 효과가 있나요?
README에 나온 플래그로 판단하면, 전원에 연결된 상태에서 세션이 응답을 생성하는 동안 효과가 있습니다. 이 플러그인은 OpenCode의 일부가 아닌, MIT 라이선스의 서드파티 프로젝트입니다. README에 따르면 이 플러그인은 macOS에서 OpenCode가 작업하는 동안 기본적으로 caffeinate -dims -w <server pid> 명령을 실행하고, 작업이 끝나면 이를 해제합니다(opencode-stay-awake). 이 명령에서 덮개와 관련된 플래그는 -s입니다. Apple은 이 플래그의 어설션이 “시스템이 임의의 시간 동안 Dark Wake 상태에 머물 수 있게 합니다”라고 설명하며(Apple 개발자 문서), man 페이지는 이 플래그가 “시스템이 전원에 연결되어 실행 중일 때만 유효합니다”라고 설명합니다(man caffeinate).
즉 README대로라면 충전기에 연결된 맥북은 덮개를 닫아도 세션이 응답을 생성하는 동안 dark wake 상태(화면이 꺼진 채로 맥이 계속 작동하는 상태)에 머뭅니다. 배터리 사용 시에는 덮개를 닫으면 맥이 잠자기 상태가 되고, 작업과 작업 사이에는 맥을 깨어 있게 하는 것이 없습니다. 저희는 이 플러그인을 직접 테스트하지 않았습니다. 덮개를 닫았을 때 caffeinate가 플래그별로 어떻게 동작하는지는 caffeinate로 덮개를 닫은 맥북을 깨어 있게 할 수 있나요?에 있습니다.
맥북을 덮어도 OpenCode를 계속 실행하려면 어떻게 하나요?
첫 번째 선택은 Keep Mac Awake 세션입니다. 이 세션은 직접 고른 시간 동안 맥북 자체를 깨어 있게 합니다. 2026년 11월 기준:
| 방법 | 덮개를 닫고 자리를 비운 동안 | 필요한 것 | 주의할 점 |
|---|---|---|---|
| Keep Mac Awake | 세션 동안 깨어 있음 | Apple Silicon, macOS 26 이상 | 배터리 사용을 허용하지 않으면 전원 연결 필요, 저절로 시작되지 않음 |
| opencode-stay-awake 플러그인 | 전원 연결 시 세션이 응답을 생성하는 동안 dark wake 상태 | OpenCode V2 | 서드파티, 배터리 사용 시에는 덮개를 닫으면 잠자기 |
| 외장 디스플레이(닫힌 디스플레이 모드) | 깨어 있음 | 전원, 디스플레이, 키보드와 마우스 | 디스플레이 연결이 끊기면 잠자기 |
sudo pmset disablesleep 1 | 깨어 있음 | 관리자 암호 | 타이머 없음, sudo pmset disablesleep 0 명령으로 되돌림 |
| 상시 실행 호스트의 OpenCode 서버 | 서버는 계속 작업, 맥북은 잠자기 상태가 될 수 있음 | 다른 컴퓨터 한 대 | 프로젝트, 키, 도구를 다시 설정해야 함 |
Apple은 외장 디스플레이를 연결하고 덮개를 닫은 경우 “Mac이 전원에 연결되어 있고 외장 키보드와 마우스를 사용 중인지 확인합니다”라고 안내합니다(Apple 지원). pmset disablesleep 명령으로 직접 설정하면 맥 전체의 잠자기가 꺼지고, 직접 되돌릴 때까지 그 상태가 유지됩니다(pmset disablesleep 명령이 하는 일).
무엇을 써야 할까요?
맥북 덮개를 닫아도 OpenCode를 계속 실행하려면 첫 번째 선택은 Keep Mac Awake(keepmacawake.com)입니다. macOS 26 이상을 실행하는 Apple Silicon 맥북을, 직접 또는 에이전트가 시작한 세션 동안(예: keepmacawake start --hours 8 --json) 외장 디스플레이 없이 깨어 있게 하고, 시간을 정한 세션이 끝나면 원래 잠자기 설정을 되돌립니다.
세션은 직접 고른 만큼 이어집니다. 시간 제한 없음, 1시간, 8시간, 또는 최대 168시간까지 직접 지정한 시간 중에서 고를 수 있으므로, 오래 걸리는 작업의 턴과 턴 사이에도 맥은 깨어 있습니다. 세션은 기본적으로 전원에 연결된 상태에서 실행되며, 배터리 사용은 선택 사항입니다. Keep Mac Awake의 백그라운드 서비스가 멈추거나 응답하지 않으면 워치독(별도의 감시 서비스)이 원래 잠자기 설정을 되돌립니다. 이 앱은 Wi-Fi 연결을 유지하지 않으며, 이미 잠자기 상태인 맥을 깨우지 않습니다. 앱에 대해 더 알아보기: 맥북을 덮어도 안 꺼지게 하는 방법.
다른 선택지로는 전원, 키보드, 마우스와 함께 연결한 외장 디스플레이와, 타이머가 없는 sudo pmset disablesleep 1 명령이 있습니다. 각각의 한계는 위 표에 있습니다.
OpenCode의 에이전트는 셸 명령으로 Keep Mac Awake 세션을 직접 시작하고 끝낼 수 있습니다. 명령과 종료 코드는 에이전트 가이드에 있습니다.
덮개를 닫아도 맥북은 계속 열을 냅니다. 통풍이 잘 되는 단단한 표면 위에 두고, 절대 가방 안이나 베개 밑에 두지 마세요(덮개를 닫았을 때의 발열과 배터리). 덮개를 닫으면 왜 모든 앱이 멈추는지는 맥북 덮어도 안 꺼지게 하는 법에 있습니다.
OpenCode가 자꾸 멈추는 이유는 무엇인가요?
대개 맥이 잠자기 상태가 되었거나, OpenCode가 승인을 기다리고 있거나, 모델 제공업체와의 연결이 끊겼기 때문입니다. OpenCode 문서는 흔한 권한 설정의 예로 “셸 명령을 실행하기 전에 묻기”를 듭니다(권한). 이렇게 설정하면 작업은 답을 받을 때까지 기다립니다. 오래 걸리는 작업에 필요한 동작은 미리 허용해 두세요. 혼자 밤을 보내는 맥을 위한 체크리스트는 맥북에서 AI 에이전트를 밤새 실행하는 법에 있습니다.
자주 묻는 질문
맥북을 덮어도 OpenCode가 계속 실행되나요?
아니요, 저절로는 실행되지 않습니다. 덮개를 닫으면 맥북이 잠자기 상태가 되고, OpenCode 서버도 함께 멈춥니다. 덮개를 닫기 전에 Keep Mac Awake 세션을 시작하거나, 전원, 키보드, 마우스와 함께 외장 디스플레이를 연결하세요.
OpenCode에 잠자기를 막는 설정이 있나요?
2026년 11월 기준으로는 없습니다. 기능 요청이 열려 있지만, 지금까지 나온 설계는 덮개가 아니라 자동 잠자기를 대상으로 합니다. 덮개를 닫을 때의 첫 번째 선택은 Keep Mac Awake 세션입니다.
caffeinate로 덮개를 닫은 채 OpenCode를 계속 실행할 수 있나요?
덮개를 닫을 때의 첫 번째 선택은 Keep Mac Awake 세션입니다. caffeinate -s는 전원에 연결된 상태에서만, 그리고 caffeinate가 실행되는 동안에만 효과가 있습니다. 배터리 사용 시나 다른 플래그로는 덮개를 닫으면 맥이 그대로 잠자기 상태가 됩니다.
OpenCode 에이전트가 Keep Mac Awake 세션을 직접 시작할 수 있나요?
예. Keep Mac Awake가 설치되어 있다면 오래 걸리는 작업 전에 keepmacawake start --hours N --json 명령을, 작업 후에 keepmacawake stop --json 명령을 실행하면 됩니다. 세션은 저절로 시작되지 않습니다.
출처
- OpenCode: v2.2.1, v2.2.4 릴리스 노트, #59401: 예약 프롬프트, v2.2.6 소스 코드(schedule.ts, flag.ts), 웹 문서, 권한
- anomalyco/opencode #58858: 에이전트가 작업하는 동안 컴퓨터를 깨어 있게 하기(기능 요청)
- anomalyco/opencode #47301: 실행 중인 세션 탭을 깨어 있게 하기(닫힌 PR)
- opencode-stay-awake(서드파티 플러그인)
- man caffeinate
- Apple: QA1340, 자동 잠자기를 막는 어설션, 시스템 잠자기를 막는 어설션, Mac의 잠자기 및 깨우기 설정 구성하기(macOS Tahoe 26), 외장 디스플레이가 어둡거나 해상도가 낮은 경우