LaTeX 원고를 고치다 보면 PDF와 소스를 쉴 새 없이 오가게 됩니다. 문제는 PDF에서 눈에 띄는데, 고치는 사람은 .tex 파일 속 같은 자리를 다시 찾아야 하죠. Limn(림)은 이 왕복을 없앱니다. PDF에서 고칠 곳을 가리키면, 메모가 그 글이 나온 소스 줄에 그대로 붙습니다. 사람이 고치든 에이전트가 고치든 마찬가지입니다.

어떻게 동작하나
PDF에서 고칠 곳을 드래그하고 메모를 남기면, Limn이 이를 핀으로 만듭니다. 핀에는 메모와 함께 .tex 파일과 줄 범위가 담깁니다. 줄 범위는 SyncTeX로 찾고 본문 글자와 맞춰 한 번 더 확인합니다.
사람과 에이전트가 한 흐름으로
에이전트는 핀을 짧은 작업 목록(pins.md)으로 읽습니다. 핀 하나가 약 35토큰이라, 1,500토큰짜리 스크린샷을 넘기는 것보다 훨씬 가볍습니다. 에이전트가 소스를 고치고 무엇을 바꿨는지 남기며 핀을 닫으면, 사람이 확인해서 마무리합니다. 틀린 데가 있으면 답글을 달아 핀을 되돌리면 됩니다. 같은 사설망에 있는 공저자도 핀을 남길 수 있고, 누가 남겼는지는 핀마다 기록됩니다.
- 표준 라이브러리만 쓰는 Python 서버 하나, PDF를 벡터로 그리는 브라우저 뷰어(PDF.js 동봉)
- 원고 하나에 여러 문서를 탭으로 — 본문, 답변서, 보기 전용 리뷰어 PDF, 그림 문서
- 그림 문서: 코드로 그린 그림이라면 드래그 한 번으로 그 요소와 요소를 그린 스크립트 줄까지 찾아 줍니다
- 요청하거나 업스트림 브랜치가 바뀌면 다시 빌드(
--git-pull) - 스레드, 질문, @태그, 담당자 지정, 완료 전 검토, 핀별 변경 내역 보기
- 원고마다 오래 도는 인스턴스 하나(systemd 사용자 유닛),
tailscale serve로 공유
시작하기
Python 3.10 이상, uv, SyncTeX를 지원하는 TeX 배포판(latexmk/pdflatex), Poppler(pdftoppm·pdfinfo)가 필요합니다.
uv tool install git+https://github.com/dartworklabs/limn@v0.4.22
limn version 혼자 자기 컴퓨터에서 검토한다면 로컬 신원 방식으로 서버를 하나 띄우고 http://127.0.0.1:18300/을 엽니다.
limn serve --manuscript ~/papers/paper2 --main main.tex --port 18300 --auth local 신원 확인 장치 없이 Limn을 외부에 열어 두면 안 됩니다. 테일넷에서 함께 쓰는 법, 인스턴스 관리, 에이전트 절차, 보안 모델은 README와 SECURITY.md에 정리돼 있습니다.
라이선스
AGPL-3.0-only. 상업 라이선스는 Dartwork에서 받을 수 있습니다.