Show HN: Panel – AI 에이전트가 직접 창을 만드는 연구 워크스페이스
Panel은 연구자를 위한 워크스페이스로, 채팅·파일·PDF·노트북을 하나의 도크에서 관리하고, Claude Code 기반 에이전트가 파일을 읽고 쓰며 필요 시 커스텀 뷰어와 앱(Pane)을 직접 만들어 줍니다. 모듈 프로토콜(입력·출력·중간 결과의 타입 정의)과 데이터 추상화 계층(DAL)을 갖춰 에이전트 간 워크플로와 파일시스템 연동을 지원하는 것이 핵심 설계입니다. 아직 초기 테스트 빌드로 Claude Code만 완전 지원하며 MIT 라이선스 오픈소스입니다.
Panel – 에이전트가 당신 옆에서 함께 일하는 연구 워크스페이스입니다. 채팅, 파일, PDF, 노트북이 하나의 도크에 모여 있고, 필요할 때 에이전트가 커스텀 뷰어와 앱을 직접 만들 수도 있습니다.
이것은 테스터용 초기 빌드입니다. 거친 부분이 있을 수 있으니 이슈를 자유롭게 제기해 주세요.
시작하기 전에
- Node 22.18 이상(또는 24.12 이상)
- pnpm
- uv – 필요한 Python(3.12 이상)을 스스로 설치합니다
- Claude Code – 설치 후 로그인(claude를 한 번 실행해 로그인). 에이전트와 문헌 리뷰가 이를 통해 실행됩니다.
설치 및 시작 pnpm install uv sync pnpm start 그런 다음 http://localhost:4173 을 여세요. pnpm start는 먼저 앱을 빌드하므로 첫 시작에는 1분 정도 걸립니다. Ctrl-C로 시작된 모든 것을 중지합니다.
데이터 위치
- ~/Panel/panel.db – 대화 내용과 에이전트가 수행한 모든 작업이 저장됩니다.
- ~/Panel/workspaces – 다른 폴더를 선택하지 않으면 새 워크스페이스가 여기 생성됩니다. 둘 다 이 저장소 폴더 밖에 있으므로, 저장소를 삭제하거나 다시 클론해도 유지됩니다.
작동하는 기능
- 파일을 읽고 쓸 수 있으며 도구 실행 전에 허가를 요청하는 에이전트와의 채팅
- 워크스페이스: 에이전트가 작업하는 폴더로, 자체 채팅과 저장된 레이아웃을 가집니다
- 파일, PDF, 마크다운, Jupyter 노트북용 Pane. 노트북은 실제 커널에서 실행되며 사용자와 에이전트가 같은 노트북을 편집할 수 있습니다
- 백그라운드에서 장기 실행 명령을 실행하고, 관찰하고 중지할 수 있습니다
- 내장 Pane으로 표시할 수 없는 것을 보여달라고 요청하면 에이전트가 직접 작성해 주는 Pane
- 문헌 리뷰: 채팅으로 요청하면 결과를 도구 카드에서 열 수 있습니다
아직 작동하지 않는 기능
- 현재 Claude Code만 완전 지원
- 모듈은 채팅으로 요청해야만 시작되며, 실행 버튼이 없음
- 가설(Hypothesis) 모듈은 자체 뷰가 없어 결과를 읽기 어려울 수 있음
- 모듈은 아직 OpenAI API에서 작동하지 않음
OpenAI 키(선택 사항) apps/server/.env.example을 apps/server/.env로 복사하고 OPENAI_API_KEY를 설정하세요. 그러면 에이전트 선택기에 "OpenAI API"가 추가되어 채팅과 도구에 사용할 수 있습니다. 단, 문헌 리뷰나 가설 모듈은 실행되지 않습니다. 이들에는 웹 검색이 가능한 에이전트가 필요하며, 현재는 Claude Code만 가능합니다. 키가 없으면 선택기에 OpenAI가 설정되지 않았다고 표시되는데, 정상입니다.
문제가 있을 때
- "Panel couldn't reach its server." – 서버가 실행되지 않는 것입니다. pnpm start가 실행 중인 터미널을 확인한 후 재시도를 누르세요.
- 에이전트가 설정되지 않은 것으로 표시됨 – 이유가 메시지 박스 아래에 표시됩니다.
- 포트가 이미 사용 중이거나 앱이 응답하지만 로딩되지 않으면 pnpm dev:doctor를 실행하세요. 각 포트를 점유한 것이 무엇이고 어떻게 해제하는지 알려줍니다.
라이선스: MIT
아이디어 UI UI에는 Pane이라고 불리는 여러 설정 가능한 창이 있으며, 이미지 파일, 데이터 파일, 코드, 채팅 세션 등을 표시할 수 있습니다. 이는 다양한 유형의 파일 사이에서 컨텍스트 전환을 자주 해야 하는 연구자에게 매우 중요합니다. 일반적인 사용 사례를 위한 기본 Pane 세트가 제공되지만, PDB 뷰어나 SQLite 시각화 도구처럼 사람과 에이전트 모두 커스텀 Pane을 추가할 수 있습니다.
모듈 프로토콜(Module Protocol) 모듈은 스킬(Skills)과 비슷하지만, 모듈 간 워크플로와 워크스페이스 통합을 지원하는 추가 정의를 갖습니다. 구체적으로 모듈은 입력(Inputs), 출력(Outputs), 중간 결과(Intermediates)에 대한 타입 정의를 갖습니다. 입력과 출력은 명확합니다. 중간 결과는 관측 가능성을 제공하는 객체를 의미하는데, 예를 들어 에이전트형 모듈의 사고 과정(Chain-of-Thought)이나 스크래치패드, 또는 다단계 모듈의 중간 출력이 이에 해당합니다. 이러한 타입 정의 덕분에 런타임 검증이 가능하고, 사람과 에이전트가 다운스트림 작업용 커스텀 모듈과 시각화용 Pane을 더 쉽게 개발할 수 있습니다.
데이터 추상화 계층(Data Abstraction Layer, DAL) 데이터 추상화 계층은 메모리 내 객체와 파일시스템 객체를 연결합니다. DAL은 URI를 메모리 저장소 또는 로컬 파일에 매핑해 주므로, 모듈은 객체 조작 자체에만 집중하면 됩니다.