Show HN: Panel – A research workspace where the agent can build its own panes

原始链接: https://github.com/greentfrapp/panel

Panel 是一个早期研究工作空间,旨在实现用户与 AI 智能体之间的无缝协作。它将聊天、文件管理、PDF 和 Jupyter Notebook 集成到一个统一界面中,允许智能体在专门的工作区内读写文件并执行代码。 **主要功能:** * **可自定义面板:** 用户界面使用模块化窗口(“Panes”)来处理各种媒体。如果标准工具无法满足需求,智能体可以创建自定义查看器(例如 SQLite 可视化工具)。 * **智能体工作流:** 支持长时间运行的后台任务、文献综述和交互式 Notebook 内核。 * **模块化:** 高级组件具有类型化输入、输出和“中间件”,可在多阶段工作流中增强可观测性。 * **数据抽象:** 内置层连接了内存数据和文件系统对象,从而简化处理流程。 **入门指南:** 该系统需要 Node (22.18+)、用于 Python 管理的 `uv` 以及用于完整功能的 `Claude Code`。安装通过 `pnpm install` 和 `uv sync` 进行,随后执行 `pnpm start` 即可访问本地 Web 界面。数据持久化在 `~/Panel/` 目录中外部处理,确保更新期间的数据安全。尽管目前仍处于粗糙的早期构建阶段,但 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.

Screenshot of Panel in action.

  • 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.
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.

  • ~/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.

  • 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.
  • 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.

  • "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.

MIT


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.

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.

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.

联系我们 contact @ memedata.com