AI CLI 서비스의 5시간 사용량 윈도우를 스케줄에 맞춰 선제적으로 트리거하는 전략적 세션 윈도우 매니저. 업무 시작 전에 윈도우를 열어두면, 자리에 앉는 순간 이미 활성화된 5시간 사용 구간이 기다리고 있습니다.
AI CLI 서비스(Claude, Codex 등)는 5시간 주기의 사용량 제한 윈도우를 적용합니다. dawn은 이 윈도우를 업무 시작 전에 선제적으로 트리거하여, 사용자가 실제로 작업을 시작할 때 이미 활성화된 5시간 사용 구간이 준비되어 있도록 합니다.
이것은 단순한 세션 유지(keep-alive)가 아닙니다. **사용량 윈도우의 전략적 선제 시작(pre-trigger)**이 핵심 가치입니다.
각 AI 플랫폼의 CLI 또는 API에 max_tokens=1 수준의 초경량 요청을 보내
윈도우를 시작하는 방식이므로, 실질적인 과금이 발생하지 않습니다.
Dawn의 핵심 철학과 목표는 MISSION.md에 상세히 기록되어 있습니다.
- 전략적 윈도우 트리거 — 업무 시작 전 5시간 사용량 윈도우를 선제적으로 열어, 작업 시작 즉시 활성 구간 확보
- 7대 AI 플랫폼 통합 지원 — Claude, Codex(OpenAI), Gemini, DeepSeek, Mistral, Grok, Llama
- AI 믹스인 매트릭스 — TUI 대시보드에서 활성화할 AI 비서를 실시간 토글(
ON/OFF) 제어 - 스케줄러 오케스트레이션 — 업무 타임라인에 맞춰 macOS LaunchAgent 스케줄 수정, 일시 정지, 삭제 지원
- 초경량 트리거 아키텍처 —
--max-tokens 1강제 인젝션으로 윈도우 시작 비용을 0원에 수렴하도록 통제 - 키보드 전용 TUI — 마우스 없이 화살표 키 + Enter 또는 숫자 키로 전체 조작
curl -sL https://raw.githubusercontent.com/woogiekim/dawn/main/install.sh | bash이 한 줄로 아래 작업이 모두 완료됩니다:
| 단계 | 설명 |
|---|---|
~/.dawn/ 디렉토리 생성 |
설정, 엔진, 로그 등 모든 런타임 파일의 홈 |
~/.dawn/config 초기화 |
AI 토글 상태, 스케줄 시간, 스케줄러 활성화 여부 |
~/.dawn/dawn.sh 생성 |
TUI 메인 스크립트 |
~/.dawn/engine.sh 생성 |
LaunchAgent가 실행하는 웨이크업 엔진 |
| 셸 alias 등록 | ~/.zshrc 및 ~/.bashrc에 alias dawn=... 추가 |
설치 후 현재 셸에 alias를 반영합니다:
source ~/.zshrc # zsh
source ~/.bashrc # bash- macOS (LaunchAgent 기반 스케줄링)
- bash 4.0+ 또는 zsh
- AI CLI 도구는 사용하려는 것만 설치되어 있으면 됩니다:
claude— Claude Code CLIcodex— OpenAI Codex CLIGOOGLE_API_KEY환경변수 — GeminiDEEPSEEK_API_KEY환경변수 — DeepSeekMISTRAL_API_KEY환경변수 — MistralXAI_API_KEY환경변수 — Grokollama또는llama— Llama
# 1. 설치
curl -sL https://raw.githubusercontent.com/woogiekim/dawn/main/install.sh | bash
source ~/.zshrc
# 2. TUI 실행
dawn
# 3. AI Agents Connection Matrix에서 사용할 AI 토글
# 4. Scheduler Automation에서 스케줄 시간 설정
# 5. 설정 완료 — LaunchAgent가 자동으로 백그라운드 웨이크업 수행터미널에서 dawn을 입력하면 TUI 콘솔이 실행됩니다.
dawn| 메뉴 | 설명 |
|---|---|
| 1. AI Agents Connection Matrix | 연동할 AI 모델 ON/OFF 토글 관리 |
| 2. Scheduler Automation | 타임라인(시간대) 변경 및 스케줄러 ON/OFF 제어 |
| 3. Cron Execution History | 실행 이력 조회 (오늘 / 최근 7일 / 전체) |
| 4. Purge | 설정·스케줄·alias 등 모든 흔적 완전 삭제 |
| 5. Exit | 종료 |
메뉴 상단에 실시간 상태 대시보드가 표시됩니다:
- 각 AI 에이전트의 ON/OFF 상태
- 스케줄러 활성화 여부
- 현재 스케줄 시간 (
HH:mm형식) - LaunchAgent 등록 상태
스케줄은 프리셋 또는 직접 입력으로 설정합니다:
시간대 프리셋:
6,11,16,21— 주중 아침/점심/퇴근 (기본)7,10,13,16,19— 집중 세션0,1,2,3,4,5— 야간 모니터링6,12,18— 두 배치 간격
분 프리셋:
30(기본),0,0,30,0,15,30,45
~/.dawn/
├── config ← AI 토글 상태, 스케줄 시간, 스케줄러 활성화 여부
├── dawn.sh ← TUI 메인 스크립트
├── engine.sh ← LaunchAgent가 실행하는 웨이크업 엔진
└── cron.log ← 실행 이력 로그
macOS LaunchAgent(~/Library/LaunchAgents/com.dawn.engine.plist)를 사용합니다.
설정된 시간마다 engine.sh가 실행되어 활성화된 AI의 5시간 사용량 윈도우를
선제적으로 트리거하고, 결과를 cron.log에 기록합니다.
LaunchAgent scheduled trigger
│
▼
engine.sh — 세션 윈도우 트리거 실행
│
▼ 활성화된 각 AI의 5시간 윈도우 시작:
├── Claude → claude -p "hi" --max-turns 1
├── Codex → codex exec "hi"
├── Gemini → curl API (maxOutputTokens: 1)
├── DeepSeek → curl API (max_tokens: 1)
├── Mistral → curl API (max_tokens: 1)
├── Grok → curl API (max_tokens: 1)
└── Llama → ollama run / llama "hi"
│
▼
~/.dawn/cron.log에 윈도우 트리거 결과 기록
(예: 2026-05-28 06:30:00 | Session window triggered | Claude=OK Codex=OK ...)
# 셸 문법 검사
bash -n install.sh
# Smoke Test 실행
bash tests/dawn_ui_smoke_test.sh테스트는 임시 디렉토리(mktemp -d)에서 격리 실행되며,
실제 ~/.dawn/ 디렉토리에는 영향을 주지 않습니다.
TUI 메뉴의 4. Purge를 선택하면 아래 항목이 모두 제거됩니다:
~/Library/LaunchAgents/com.dawn.engine.plist(LaunchAgent 해제)~/.dawn/디렉토리 전체~/.zshrc,~/.bashrc의alias dawn=...라인
또는 수동으로 삭제:
launchctl unload ~/Library/LaunchAgents/com.dawn.engine.plist 2>/dev/null
rm -f ~/Library/LaunchAgents/com.dawn.engine.plist
rm -rf ~/.dawn
sed -i '' '/alias dawn=/d' ~/.zshrc ~/.bashrc 2>/dev/nullMIT License — see LICENSE.