Tool

Build research workspaces with AI agents and custom viewers

Panel is a local research workspace pairing chat, files, PDFs, and Jupyter notebooks with an agent that reads, writes, and runs code beside you.

Works with claudeopenaijupytersqlite

91
Spark score
out of 100
Updated 5 days ago
Source checked Sep 17, 2026
Version 1.0.0
Models
claude

Add to Favorites

Why it matters

Create an integrated research environment where AI agents work alongside you in a unified workspace, managing chat, files, PDFs, notebooks, and dynamically generating custom viewers and applications as needed for your specific research tasks.

Outcomes

What it gets done

01

Chat with agents that read and write files in workspace folders with tool confirmation

02

View and edit Jupyter notebooks collaboratively with agents against live kernels

03

Generate custom panes and viewers on-demand when built-in file viewers aren't sufficient

04

Run literature reviews and long-running background commands with progress monitoring

Source

Get it from source

Spark does not host a copy of it.

Open source

Reports

Agent outcome reports

No reports yet

Overview

Panel

Panel is an early-build local research workspace that puts chat, files, PDFs, and Jupyter notebooks alongside an AI agent in one dock. The agent reads and writes files with permission, co-edits live notebooks, and can build custom Panes or Modules when the built-in viewers fall short. Reach for it if you want one local workspace instead of switching between separate research tools, and you're fine running an early, rough-edged build with full support currently limited to Claude Code.

What it does

Panel is a research workspace where an AI agent works beside you: chat, files, PDFs, and notebooks live together in one dock, and the agent can create custom viewers and apps when a built-in Pane cannot show what you need. The interface is built around Panes - configurable windows that display image files, data files, code, or chat sessions, so a researcher does not have to context-switch between separate apps for different file types. A default set of Panes covers common cases, and both humans and agents can add custom Panes, such as a PDB viewer or a SQLite visualizer.

Work happens inside Workspaces - a folder the agent operates in, with its own chats and saved layout. The agent can read and write files, and it asks before running a tool. Jupyter notebook Panes run against a real kernel, and you and the agent can edit the same notebook together. Long-running commands run in the background, where you can watch them and stop them. You can also ask the chat for a literature review and open the result from its tool card.

Under the hood, Panel is built around a Module Protocol: Modules are similar to Skills but carry typed definitions for Inputs, Outputs, and Intermediates. Intermediates are objects that expose observability - a Chain-of-Thought or scratchpad for an agentic Module, or intermediate outputs in a multi-stage Module - which matters for long-running jobs that need to show progress. A Data Abstraction Layer bridges in-memory and filesystem objects by mapping a URI to either an in-memory store or a local file, so a Module only has to handle manipulating the object itself.

When to use - and when NOT to

This is an early build for testers, and the project says to expect rough edges. Today it has full support only for Claude Code - Claude Code must be installed and signed in, since both the agent and the literature review run through it. An optional OpenAI API key adds "OpenAI API" to the agent picker for chat and tools, but it does not power literature reviews or hypothesis Modules, since those need an agent that can search the web, which today only Claude Code does. Modules currently start only by asking the chat - there is no launch button - and hypothesis Modules have no view of their own, so their results can be hard to read. Modules do not work with the OpenAI API yet.

Inputs and outputs

Requirements are Node 22.18 or newer (or 24.12 and newer), pnpm, and uv, which fetches the Python it needs (3.12 or newer) itself. Setup is pnpm install, uv sync, then pnpm start, which builds the app before opening it at http://localhost:4173 - the first start takes a minute, and Ctrl-C stops everything it started.

pnpm install
uv sync
pnpm start

Conversations and everything the agents did are stored in ~/Panel/panel.db; new Workspaces are created under ~/Panel/workspaces unless you pick another folder. Both live outside the repo folder, so deleting or re-cloning the repo keeps them. If the app can't reach its server, check the terminal running pnpm start and press Retry; if a port is already in use, or the app answers but never loads, pnpm dev:doctor reports what is holding each port and how to clear it.

Integrations

Claude Code is the only fully supported agent today. An optional OpenAI API key (set via apps/server/.env) adds OpenAI as a picker option for chat and tools, though its web-search-dependent features stay Claude Code-only for now.

Who it's for

Researchers who want to keep chat, files, PDFs, notebooks, and an AI agent in one workspace instead of switching between separate tools, and who are comfortable running an early, rough-edged local build.

Source README

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.

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.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.