TL;DR

  • 코딩 에이전트의 작업 결과를 이해하는 일이 늘어나는 만큼, 다이어그램·코드·브라우저·메모를 사람과 에이전트가 함께 보고 수정하고 가리킬 수 있는 공간이 필요함.
  • 채팅 트랜스크립트는 시간순 로그일 뿐이며, 다시 참고할 다이어그램이나 수정 중인 버튼 같은 지속적인 상태를 담기에는 적합하지 않음.
  • easl은 저장소마다 무한 보드 하나를 제공하는 네이티브 Mac 앱으로, 터미널 옆에 코드 타일·호출 그래프·브라우저·메모·HTML 페이지·그리기 도구를 배치함.
  • ⌃⌥⇧⌘ 키를 누른 채 보드의 다이어그램 상자, 브라우저의 DOM 요소, 메모의 문단을 클릭하면 해당 항목이 다음 프롬프트의 문맥으로 추가됨.
  • easl은 무료·MIT 라이선스이며, macOS 14 이상 및 Apple silicon에서 사용할 수 있고 libghostty, zmx, JSON 스키마를 사용하는 로컬 소켓 등을 기반으로 동작함.

에이전트 결과물에는 머물 공간이 필요함

  • 금요일, Andrej Karpathy는 코딩 에이전트를 사용할 때 모델이 더 많은 일을 맡을수록 사람이 한 일을 이해하는 데 더 많은 시간을 쓰게 된다는 생각을 공유함.

“언어 모델의 출력을 이해하려고 훨씬 더 많은 시간을 보내게 될 것임.”

  • 그는 더 깔끔한 산문을 요청하는 것에서 시작해 다이어그램, 웹 페이지(“HTML로 출력 요청”), 설명 동영상으로 이어지는 방식을 제안함. 결론은 우리의 일이 “추상화의 상위 단계인 감독과 이해로 올라갈 것”이라는 것임.
  • 오랫동안 에이전트에 다이어그램과 작은 HTML 페이지를 자주 요청해 왔으며, 이런 결과물은 설명 문단을 몇 개 더 받는 것보다 나은 경우가 많음.
  • 하지만 현재 인터페이스는 여전히 결과물을 도구 호출이나 채팅 트랜스크립트처럼 다룸.
  • 다이어그램은 트랜스크립트에 나타난 뒤 화면을 따라 밀려 올라가고, HTML 설명 페이지는 브라우저 탭에서 열림.
  • 에이전트가 산문보다 훨씬 나은 시스템 표현을 만드는 데 10분을 썼더라도, 그 표현을 대화의 일부로 이어갈 공간이 없음.
  • 다이어그램의 상자를 가리키며 “이것이 왜 이것을 호출함?”이라고 자연스럽게 물을 수 없고, 구현 코드와 다이어그램을 나란히 놓고 서로 동기화하도록 요청할 수도 없음. 한 시간 뒤 같은 설명이 필요하면 다시 만들어 달라고 요청하는 경우가 많음.
  • 결과물의 품질이 좋아질수록 이런 상황은 더 낯설게 느껴짐.
  • 다이어그램·페이지·코드·추적 정보·메모가 에이전트의 작업을 이해하는 데 쓰이는 대상이 된다면, 사람과 에이전트가 함께 보고 수정하고 가리킬 수 있는 공간이 필요함. 이런 결과물 자체가 논의의 주제임.
  • 이 철학은 HTML 설명 페이지나 Mermaid 다이어그램에만 적용되는 것이 아니라, 사람과 에이전트가 함께 작업하는 데 필요한 모든 것에 적용되어야 함.
  • LSP 코드 탐색 기능을 갖춘 깃 디렉터리의 모든 파일
  • 에이전트가 테스트에 사용하는 브라우저와 Linear를 확인하는 데 사용하는 브라우저
  • 그 밖의 모든 작업 대상
  • 이를 위해 easl을 구축함.

트랜스크립트는 로그임

  • GUI 앱이든 터미널이든 채팅 트랜스크립트는 아래쪽으로만 늘어나는 기록임. 일어난 일을 순서대로 저장하지만, 세션이 진행될수록 중요한 내용은 화면 위쪽으로 밀려 보이지 않게 됨.
  • 이해한 내용과 의도는 상태임. 다시 보고 싶은 다이어그램, 수정 중인 버튼, 그 버튼의 모양을 설명하는 회의 메모가 여기에 해당함.
  • 원하는 것은 에이전트가 읽고 내용을 더할 수 있고 사람이 가리킬 수 있는, 계속 제자리에 머무는 표면임.
  • Karpathy는 이런 결과물을 “버려도 되는 것”이라고 부르며, 대부분은 실제로 버려도 됨. 하지만 일부는 다시 가리키게 되므로 보관하고 싶음.

easl

  • easl은 이런 표면을 만들려는 시도임. 저장소마다 무한 보드 하나를 제공하는 네이티브 Mac 앱임.
  • 에이전트는 보드 위의 실제 터미널에서 실행되며, 사용자의 계정으로 로그인한 claude, codex 또는 다른 CLI를 사용함.
  • 에이전트가 만든 결과물은 터미널 옆에 배치됨.
  • 정확한 코드 줄과 언어 서버를 연결한 코드 타일
  • 계산된 호출 그래프
  • 브라우저와 메모
  • 에이전트가 작성한 HTML 페이지
  • 도형과 화살표 등을 포함하는 전체 tldraw 스타일 그리기 도구
  • 무엇이든 가리킬 수 있는 점이 핵심임. ⌃⌥⇧⌘ 키를 누른 채 다이어그램 상자, 브라우저의 DOM 요소, 메모의 문단을 클릭하면 가리킨 항목이 다음 프롬프트의 문맥으로 추가됨.
  • 무료이며 MIT 라이선스임: GitHub 저장소, easl.sh.

사용 방식

  • easl에서 보내는 하루의 대부분은 활성 티켓과 상태, 풀 리퀘스트(PR)를 보여 주는 브라우저 타일을 티켓을 처리하는 에이전트 옆에 두는 것임.
  • 티켓·PR·변경 사항을 에이전트에게 맡길 때 보드에서 해당 항목을 ⌃⌥⇧⌘ 키를 누른 채 클릭하면 다음 프롬프트에 포함됨.

작동 방식

  • 각 터미널은 libghostty를 사용하며, 사용자의 Ghostty 설정이 있으면 이를 적용함. 터미널은 zmx 세션에서 실행되므로 easl을 종료하거나 앱이 충돌해도 에이전트는 멈추지 않음.
  • 타일 안의 claude와 codex는 easl이 PATH 앞쪽에 배치하는 작은 래퍼임. 이 래퍼는 실제 실행 파일을 해당 세션에만 적용되는 easl 훅과 스킬로 실행하며, 전역 에이전트·셸·Ghostty 설정에는 아무것도 추가하지 않음.
  • 훅은 에이전트의 작업 중·사용자 응답 대기·완료 상태를 easl에 알리고, 사용자가 클릭한 항목을 다음 프롬프트와 함께 전달함.
  • 에이전트는 JSON 스키마를 사용하는 로컬 소켓을 통해 easl CLI로 보드에 내용을 추가함. 나머지 내용은 문서에 안내됨.

설치

  • macOS 14 이상, Apple silicon 전용임. 설치 스크립트를 먼저 확인할 수 있음.
  • https://easl.sh/install에서 설치 스크립트를 내려받아 셸로 전달해 실행함.
  • brew install neurosnap/tap/zmx oven-sh/bun/bun으로 zmx와 bun을 설치함.
  • 설치 후 ⌘T를 누르고 claude, codex 또는 다른 에이전트 CLI를 실행함.
  • 버그와 아이디어는 GitHub 이슈로 전달함.