Skip to content

woogiekim/dawn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

dawn

AI CLI 서비스의 5시간 사용량 윈도우를 스케줄에 맞춰 선제적으로 트리거하는 전략적 세션 윈도우 매니저. 업무 시작 전에 윈도우를 열어두면, 자리에 앉는 순간 이미 활성화된 5시간 사용 구간이 기다리고 있습니다.

Platform Shell License

Table of Contents


Overview

AI CLI 서비스(Claude, Codex 등)는 5시간 주기의 사용량 제한 윈도우를 적용합니다. dawn은 이 윈도우를 업무 시작 전에 선제적으로 트리거하여, 사용자가 실제로 작업을 시작할 때 이미 활성화된 5시간 사용 구간이 준비되어 있도록 합니다.

이것은 단순한 세션 유지(keep-alive)가 아닙니다. **사용량 윈도우의 전략적 선제 시작(pre-trigger)**이 핵심 가치입니다.

각 AI 플랫폼의 CLI 또는 API에 max_tokens=1 수준의 초경량 요청을 보내 윈도우를 시작하는 방식이므로, 실질적인 과금이 발생하지 않습니다.

Mission

Dawn의 핵심 철학과 목표는 MISSION.md에 상세히 기록되어 있습니다.

Key Features

  • 전략적 윈도우 트리거 — 업무 시작 전 5시간 사용량 윈도우를 선제적으로 열어, 작업 시작 즉시 활성 구간 확보
  • 7대 AI 플랫폼 통합 지원 — Claude, Codex(OpenAI), Gemini, DeepSeek, Mistral, Grok, Llama
  • AI 믹스인 매트릭스 — TUI 대시보드에서 활성화할 AI 비서를 실시간 토글(ON/OFF) 제어
  • 스케줄러 오케스트레이션 — 업무 타임라인에 맞춰 macOS LaunchAgent 스케줄 수정, 일시 정지, 삭제 지원
  • 초경량 트리거 아키텍처--max-tokens 1 강제 인젝션으로 윈도우 시작 비용을 0원에 수렴하도록 통제
  • 키보드 전용 TUI — 마우스 없이 화살표 키 + Enter 또는 숫자 키로 전체 조작

Installation

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~/.bashrcalias dawn=... 추가

설치 후 현재 셸에 alias를 반영합니다:

source ~/.zshrc   # zsh
source ~/.bashrc  # bash

요구 사항

  • macOS (LaunchAgent 기반 스케줄링)
  • bash 4.0+ 또는 zsh
  • AI CLI 도구는 사용하려는 것만 설치되어 있으면 됩니다:
    • claude — Claude Code CLI
    • codex — OpenAI Codex CLI
    • GOOGLE_API_KEY 환경변수 — Gemini
    • DEEPSEEK_API_KEY 환경변수 — DeepSeek
    • MISTRAL_API_KEY 환경변수 — Mistral
    • XAI_API_KEY 환경변수 — Grok
    • ollama 또는 llama — Llama

Quick Start

# 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가 자동으로 백그라운드 웨이크업 수행

Usage

터미널에서 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

Architecture

파일 구조

~/.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 ...)

Testing

# 셸 문법 검사
bash -n install.sh

# Smoke Test 실행
bash tests/dawn_ui_smoke_test.sh

테스트는 임시 디렉토리(mktemp -d)에서 격리 실행되며, 실제 ~/.dawn/ 디렉토리에는 영향을 주지 않습니다.

Uninstall

TUI 메뉴의 4. Purge를 선택하면 아래 항목이 모두 제거됩니다:

  • ~/Library/LaunchAgents/com.dawn.engine.plist (LaunchAgent 해제)
  • ~/.dawn/ 디렉토리 전체
  • ~/.zshrc, ~/.bashrcalias 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/null

License

MIT License — see LICENSE.

About

LLM wakup!

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages