손필기 수학 풀이를 화면에서 첨삭하는 AI 멘토 penmentor 공개

Hacker News11일 전

penmentor는 손으로 푼 수학 문제를 화면에서 바로 첨삭해 주는 오픈소스 도구다. 펜 태블릿으로 xournal++에 풀이를 적다가 단축키를 한 번 누르면, 지금 화면에 있는 필기 위에 색펜 자국이 얹힌다. 처음 틀린 지점에는 동그라미가, 맞게 넘어간 줄에는 체크가, 그 오류를 물려받은 뒤쪽 줄에는 밑줄이 붙는다. 표시는 계속 필기를 이어가는 동안 남아 있고 Esc로 지운다.

백엔드는 새로 만든 모델 서버가 아니라 이미 설치해서 로그인해 둔 AI 커맨드라인 에이전트다. Claude Code, Codex, Antigravity 중 하나를 그대로 쓰고, 설정에서 모델을 고르면 접두사가 어느 에이전트가 답할지를 결정한다. claude:opus, claude:sonnet, claude:haiku처럼 Claude 쪽 모델을 지정하거나, agy:gemini-4-argon-medium, agy:gemini-3.8-flash-medium처럼 Antigravity 경유 모델을 고르는 식이다. 별도 API 키를 발급받는 대신 이미 쓰고 있는 구독을 그대로 활용한다는 점이 이 구조의 핵심이다.

가장 눈에 띄는 설계는 '답을 주지 않는' 쪽이다. 힌트는 한 번에 쏟아지지 않고 단계로 나뉜다. 우선 방향만 살짝 흔들어 주고, 다음에는 어떤 기법을 써야 하는지 이름을 짚고, 마지막에는 다음 줄의 희미한 윤곽만 보여준다. 생각하는 몫은 사용자에게 남겨 두겠다는 의도다. 여기에 핵심 단계에 대한 질문에 타이핑이나 필기로 답하는 연습, 틀린 곳을 찾아내는 훈련, 상황에 맞는 기법을 고르는 문제도 붙어 있다.

이해가 안 되는 부분은 상자로 지정하면 된다. 선택한 영역을 3Blue1Brown이 쓰는 애니메이션 도구 manim으로 렌더링해 인터랙티브 결과물로 돌려준다. 적분 구간을 드래그하거나 값을 다시 입력하면서 리만 합이 어떻게 수렴하는지 직접 확인할 수 있다. 화면에 보이는 부분만이 아니라 현재 페이지 전체를 공유하도록 xournal++ 플러그인도 함께 제공된다.

만들어진 계기는 펜 태블릿으로 미적분을 공부하던 개발자 자신의 불편이었다. 풀이를 캡처해 챗봇에 넣고 장문의 해설을 읽는 방식은, 어깨너머로 봐주며 틀린 곳을 짚고 다음 단계로 밀어주는 선생님과는 거리가 멀었다. 그 역할을 단축키 하나 거리로 옮긴 것이 이 프로젝트다.

개발자 입장에서 볼 만한 지점은 에이전트를 애플리케이션에 끼워 넣는 방식이다. 모델 호출과 오케스트레이션을 직접 구현하지 않고, 사용자가 이미 인증해 둔 CLI 에이전트를 얇게 감싸 화면 좌표와 필기 이미지를 넘긴다. 화면 캡처, 영역 선택, 결과 오버레이로 이어지는 파이프라인은 필기가 아닌 다른 도메인에도 같은 형태로 응용할 수 있다.

설치와 실행 환경은 좁은 편이다. 리포지토리를 클론한 뒤 셀프테스트 바이너리를 돌려 확인하고, Linux X11 환경에서 claude, codex, agy 중 하나에 로그인한 상태여야 한다. i3에서 가장 잘 동작하며 rofi, slop, xdotool, PyQt6가 필요하고, 바이너리를 단축키에 바인딩해서 쓴다. 공개된 시연 영상은 재현 가능한 녹화를 위해 펜 입력을 스크립트로 돌리고 모델 응답도 고정된 예시로 대체했다는 점도 함께 밝히고 있다.