광운대학교 KLAS(종합정보시스템)를 대체하기 위한 크로스 플랫폼 CLI입니다. 현재는 one-shot 명령 중심으로 시작하며, 추후 Bubble Tea 기반 TUI와 앱 코어를 공유하는 하이브리드 앱으로 확장할 계획입니다.
- Go
- Swift (
bridges/macos— macOS 연동 브리지) - macOS 26 이상의 Apple
Speech.framework(강의 음성 전사)
- 인증: 학번/비밀번호로 KLAS 로그인 검증, 비밀번호와 세션 쿠키는 OS 보안 저장소에 저장
- 대시보드 / TUI: 학기별 현황을 한 번에 확인
- 통합 검색: 과목·과제·공지·온라인 강의·학사일정을 한 번에 검색
- 마감 관리: 과제, 미완료 온라인 강의/학습활동, 학사일정을 마감순으로 통합 조회
- 과목/성적/출결/등수 조회
- 강의평가: 기본은 미리보기만 출력,
--yes가 있어야 실제 제출 - 온라인 강의 다운로드: 동시 다운로드 수·저장 폴더 설정 가능, macOS 26+에서는 강의 음성 전사(.txt)까지 지원
- Reminder(미리 알림) 연동: 마감 1일 전 알림 자동 생성
- 디스크 캐시: 대시보드/목록 조회는 기본 5분 캐시,
--refresh로 즉시 갱신
go run ./cmd/klap --helpklap auth
klap user list
klap user select <학번>
klap user rm <학번>
klap dashboard
klap dashboard --refresh
klap tui
klap search <키워드>
klap search <키워드> --type assignment
klap due
klap due --week
klap due --days 30
klap term list
klap term select <학기번호|학기값>
klap course list
klap course list --refresh
klap subject search --name 컴퓨터그래픽스 --professor 김동준
klap syllabus <과목명|과목번호|학정번호>
klap syllabus I040-3-3951-01 --term 2026-1
klap academic list
klap academic list --year 2026
klap academic list --refresh
klap attendance
klap attendance list
klap attendance detail <과목명|번호|학정번호>
klap attendance cdp
klap grade
klap grade list
klap grade 2025-1
klap rank
klap rank list
klap rank 2025-1
klap evaluation list
klap evaluation submit all
klap evaluation submit all --yes
klap evaluation submit <과목명|번호> --yes
klap assignment list
klap assignment list --course <과목명|번호>
klap assignment list --refresh
klap assignment detail <과목번호:과제번호>
klap assignment open <과목번호:과제번호>
klap assignment remind
klap assignment remind --auto
klap notice open <과목번호:게시판번호:글번호>
klap lecture list --course <과목명|번호>
klap lecture status
klap lecture status --course <과목명|번호>
klap lecture status --refresh
klap lecture download status
klap lecture download open
klap lecture download <과목명|과목번호>
klap lecture download <과목번호:강의콘텐츠ID>
klap lecture open <과목번호:강의콘텐츠ID>
klap lecture attend <과목번호:강의콘텐츠ID>
klap lecture attend <과목번호:lrn-학습활동번호>
klap attend <과목명|번호>
klap attend all
klap config reminder
klap config reminder --name "광운대학교"
klap config list
klap config set term 2026-1
klap config set reminder.name "광운대학교"
klap config set reminder.use-existing-list true
klap config download
klap config download --dir ~/Downloads/KLAP
klap config download --concurrency 8
klap auth는 학번/비밀번호를 입력받아 KLAS 로그인 API로 즉시 검증하며, 검증에 성공한 계정만 저장합니다.klap term select로 선택한 학기는course,assignment,notice,timetable,lecture,attend명령에 공통 적용되며, 선택하지 않으면 KLAS가 반환하는 최신 학기를 사용합니다.klap evaluation submit은 기본적으로 미리보기만 하고,--yes가 있을 때만 실제 저장 API를 호출합니다 (공학인증 추가 문항은 기본 제외).- 캐시는 특정 scope 단위로 지울 수 있습니다 (예:
klap cache clear assignment). klap lecture download는 CLI 출력으로 직접 다운로드하거나,klap tui의 Lectures 화면에서d→ Space로 대상 선택 → 전사 여부 선택 후 진행률을 보며 다운로드할 수 있습니다.- Reminder 기본 목록 이름은
Kwangwoon Univ.이며,--use-existing-list를 쓰면 새 목록을 만들지 않고 지정한 기존 목록만 사용합니다.
TUI 확장을 고려한 패키지 경계와 마이그레이션 계획은 docs/ARCHITECTURE.md를 기준으로 합니다.