"과제 제출해줘" 한마디로 끝내는 이클래스 제출
한국 대학 이클래스(Canvas LMS / LearningX)용 Claude Code 스킬 + 단일 파일 CLI
- 🪶 본체는
eclass.py파일 하나, 의존성은requests하나 - 🔌 화면 매크로가 아니라 Canvas 공식 REST API — 빠르고 안 깨짐
- 🔒 비밀번호 대신 본인이 직접 발급·삭제하는 액세스 토큰만 사용
이클래스 로그인 → 계정 → 설정 → 아래로 스크롤 → "+ 새 액세스 토큰" → 생성된 토큰 복사. (중앙대는 https://eclass3.cau.ac.kr/profile/settings)
만료일은 학기 말 추천. 같은 페이지에서 언제든 삭제 가능. 남과 공유 금지!
git clone https://github.com/NemProjects/eclass-cli
cd eclass-cli
pip install requests$ python eclass.py init
학교를 선택하세요:
[1] 중앙대학교
[2] 직접 입력 (다른 Canvas/LearningX 학교)
선택 (1-2): 1
토큰 붙여넣기 (입력 안 보임):
인증 성공: 홍길동
수강 과목 4개: 기본1과정, 기본2과정, ...
설정 저장 완료이름이 나오면 끝. 과목은 매번 자동 조회되니 학기 중 과목이 늘어도 재설정할 게 없습니다.
$ python eclass.py list
📚 기본2과정 [141483] — 과제 15개 (미제출·마감 임박순)
⬜ [1610995] 비디오처리 과제 (마감 2026-07-17 23:59 D-3)
✅ [1610990] 음성신호 처리 과제 (마감 없음)
...
$ python eclass.py push report.pdf --assignment 1610995
제출 내용 확인
과제: 비디오처리 과제 [1610995]
파일: D:\assignments\report.pdf (107,747 bytes)
제출할까요? [y/N]: y
✅ 제출 완료: 2026-07-14 15:40 (KST), attempt 1여기까지 되면 설정 완료입니다.
Claude Code에서 두 줄이면 됩니다:
/plugin marketplace add NemProjects/eclass-cli
/plugin install eclass
이후 새 세션부터 자연어로 씁니다 — "과제 목록 보여줘", "이 파일 비디오처리 과제에 제출해줘". Claude가 제출 직전 항상 확인을 받고, 재제출이면 미리 알려줍니다.
(수동 설치를 원하면 skills/eclass/SKILL.md를 ~/.claude/skills/eclass/로 복사하고 파일 안의 ${CLAUDE_PLUGIN_ROOT}를 clone 경로로 바꾸면 됩니다.)
| 명령 | 하는 일 |
|---|---|
init |
최초 설정 (학교 · 토큰) |
list |
전 과목 과제 목록 — 미제출·마감 임박순, D-day 표시 (--all 숨김 포함) |
push [파일] |
과제 제출 — 제출 전 항상 확인 |
link [URL] |
현재 폴더를 과제에 바인딩 |
status |
제출 여부 · 제출 시각 확인 |
mute <id> / unmute <id> |
제출 안 하는 과제를 목록에서 숨김 / 해제 |
매주 내는 과제라면 — 과제 폴더에서 한 번 바인딩해두면 이후 push 한 단어:
python eclass.py link https://eclass3.cau.ac.kr/courses/141483/assignments/1610995 --file "*.pdf"
python eclass.py push # 패턴에 맞는 최신 파일 자동 선택파일명 규칙이 있다면 — 로컬 파일은 그대로, 제출되는 이름만 변경:
python eclass.py push final_v3.pdf --as "비디오처리_5차시_홍길동.pdf"Colab에서 작성했다면 — files.download()로 받고:
python eclass.py push --downloads # 다운로드 폴더 최신 파일이 바로 후보로계정 정지당하지 않나요?
학교가 공식 제공하는 Canvas REST API를 본인 토큰으로 호출합니다. 스크래핑·매크로가 아니며, Canvas의 정식 3단계 업로드 플로우(슬롯 요청 → multipart 업로드 → 제출 확정)를 그대로 씁니다. 본인 과제 제출 용도로 쓰세요.
우리 학교도 되나요?
Canvas LMS / Xinics LearningX 기반이면 됩니다 (init에서 "직접 입력"으로 학교 주소 지정). 검증된 프리셋은 중앙대학교. 본인 학교에서 확인하셨다면 프리셋 추가 PR 또는 학교 등록 요청 이슈를 환영합니다 🙌 — 방법은 CONTRIBUTING.md 참고
401 오류가 나요
토큰 만료입니다. 설정 페이지에서 재발급 후 ~/.eclass/token 파일 내용을 교체하세요.
실수로 잘못 제출했어요
Canvas는 제출 취소가 없고 재제출만 가능합니다. 올바른 파일로 다시 push하면 새 attempt로 기록되고, 교수님께는 최신 제출물이 기본으로 보입니다.
텍스트 입력·퀴즈형 과제는요?
v1은 파일 업로드(online_upload) 과제만 지원합니다. 그 외 유형은 이클래스에서 직접 제출하세요.