메뉴
HN
Hacker News • 10일 전

Show HN: Panel – AI 에이전트가 직접 창을 만드는 연구 워크스페이스

IMP
5/10
핵심 요약

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를 메모리 저장소 또는 로컬 파일에 매핑해 주므로, 모듈은 객체 조작 자체에만 집중하면 됩니다.

원문 보기
원문 보기 (영어)
Panel A research workspace where the agent works beside you: chat, files, PDFs and notebooks in one dock, and the agent can also create custom viewers and apps when necessary This is an early build for testers. Expect rough edges, and feel free to raise issues. Before you start Node 22.18 or newer (or 24.12 and newer) pnpm uv , which fetches the Python it needs (3.12 or newer) by itself Claude Code , installed and signed in: run claude once and log in. The agent and the literature review run through it. Install and start pnpm install uv sync pnpm start Then open http://localhost:4173 . pnpm start builds the app first, so the first start takes a minute. Ctrl-C stops everything it started. Where your things are ~/Panel/panel.db holds your conversations and everything the agents did. ~/Panel/workspaces is where new Workspaces are created, unless you pick another folder. Both are outside this folder, so deleting or re-cloning the repo keeps them. What works Chatting with an agent that can read and write files, and asks before running a tool. Workspaces: a folder the agent works in, with its own chats and saved layout. Panes for files, PDFs, markdown and Jupyter notebooks. Notebooks run against a real kernel, and you and the agent can edit the same one. Long-running commands in the background, which you can watch and stop. Panes the agent writes for you when you ask to see something a built-in Pane cannot show. A literature review: ask the chat for one, and open its result from the tool card. What doesn't yet Currently only has full support for Claude Code. Modules start only by asking the chat. There is no button to launch one. The hypothesis Modules have no view of their own, so their results can be hard to read. Modules don't work with OpenAI API yet. The OpenAI key (optional) Copy apps/server/.env.example to apps/server/.env and set OPENAI_API_KEY . This adds "OpenAI API" to the agent picker, for chat and tools. It does not run literature reviews or the hypothesis Modules: those need an agent that can search the web, and today only Claude Code can. Without a key, the picker shows OpenAI as not set up, which is expected. If something's wrong "Panel couldn't reach its server." The server half is not running. Check the terminal pnpm start is in, then press Retry. An agent shows as not set up. The reason is written under the message box. A port is already in use , or the app answers but never loads: run pnpm dev:doctor . It says what is holding each port and how to clear it. Licence MIT The idea UI The UI has multiple configurable windows, called Panes, that can display things ranging from image files, data files, code, as well as chat sessions. This is critical for researchers who often have to context switch between different types of files. A default set of Panes are provided for common use cases. But custom Panes can also be added by humans and agents, such as a PDB viewer or SQLite visualizer. Module Protocol Modules are similar to Skills but with additional definitions to support inter-module workflows and integration with the workspace. Specifically, Modules have typed definitions for Inputs, Outputs, and Intermediates. Inputs and Outputs are straightforward. Intermediates refer to objects that provide observability, such as the Chain-of-Thought or scratchpad for an agentic Module, or may be intermediate outputs in a multi-stage Module. These are especially important for processes that need transparency or long-running jobs that should show progress. Having typed definitions for these enable validation at runtime and make it easier for humans and agents to develop custom Modules for downstream tasks and Panes for visualizations. Data Abstraction Layer A data abstraction layer (DAL) bridges in-memory and filesystem objects. A DAL helps to map a URI to either an in-memory store or a local file, so that the Module just has to concern itself with the manipulation of the object.