Evidence snapshot reviewed Sep 1, 2026GitHub checked Aug 21, 2026
Source-reviewedStandalone SkillSearch, Vision & DataClaude Paper Profile

claude-paper-webui

Starts a local web interface for browsing and studying papers in Claude Paper.

At a glance

What it does

Starts a local web interface for browsing and studying papers in Claude Paper.

Capabilities
Search, Vision & DataSearchDocumentationUI

Before you choose it

This skill prepares the Claude Paper web dependencies, builds its Nuxt.js production server when needed, and serves the paper viewer locally at http://localhost:5815. It checks whether the port is occupied and uses a PID file to identify the server it started.

Best for

People using Claude Paper who want to explore their papers through a local browser interface.

Common tasks

  • Open the Claude Paper viewer in a browser.
  • Build the viewer after a plugin update.
  • Check whether an existing viewer on port 5815 can be reused.

Permissions and data

Runs local shell commands to install packages, build the web app, inspect port 5815, and manage a local server process.

Permissions
  • Shell access
  • Write access to the plugin web build and dependency directories
  • Ability to bind localhost port 5815
  • Ability to create and remove /tmp/claude-paper-webui.pid
Data handling
  • Queries the local viewer health endpoint at /api/papers.
  • No remote data destination is declared in the supplied skill document.
External services
  • npm package installation is invoked through npm ci.
Credentials
  • No credentials are declared in the supplied evidence.

Limitations

  • The viewer is available only on the local machine at 127.0.0.1:5815.
  • If port 5815 is used by another process that is not identified by the PID file, the skill stops with an error.
  • A dependency-corruption path removes node_modules before reinstalling.

What DSHub checked

  • The pinned skill document was captured completely.
  • The source commit is pinned and the skill-document hard check passed.
  • An MIT license was detected.

What DSHub did not check

  • The skill was not installed or executed by DSHub.
  • Successful dependency installation, build, server startup, and paper loading were not verified.

Pinned install

Primary action

This standalone skill does not have a DSH Plugin install action. Use its source documentation for the delivery method.

Visit the source project

Maintainer source

Skill instructions

View at commit 0af55d0
Maintainer-authored contentCaptured from .agents/skills/claude-paper-webui/SKILL.md on Aug 30, 2026. The text and repository-relative media are fixed to commit 0af55d0daeae with content hash 161c98dd9838; provider-hosted badges may update independently. SKILL.md commands are upstream documentation; use the type-correct primary action above and verify it against this pinned source.

name: claude-paper-webui description: Start the Claude Paper web viewer to browse and study papers allowed-tools: Bash

Cross-Agent Compatibility

This file is generated from the existing Claude Paper Skill. Its workflow and output requirements are unchanged; only equivalent host metadata, the plugin-root variable, and cross-skill invocation are adapted.

Resolve CLAUDE_PAPER_PLUGIN_ROOT to the absolute plugin/ directory in this package before each shell invocation. From this SKILL.md, that directory is ../../../plugin. Treat every ${CLAUDE_PAPER_PLUGIN_ROOT} reference below as that resolved absolute directory. Do not substitute the current workspace root.

When this workflow asks to launch the viewer, load and follow the claude-paper-webui skill.


Start Web UI

This skill starts the Claude Paper web viewer using the production Nuxt.js server.

Step 1: Check and Install Dependencies (First Run Only)

Check if web dependencies are installed (with corruption check):

cd "${CLAUDE_PAPER_PLUGIN_ROOT}/src/web"

if [ ! -d "node_modules" ]; then
  echo "First run - installing web dependencies..."
  npm ci
  echo "Web dependencies installed!"
elif [ ! -f "node_modules/.package-lock.json" ] || [ ! -d "node_modules/nuxt" ]; then
  echo "ERROR: node_modules is corrupted, performing clean install..."
  rm -rf node_modules
  npm ci
  echo "Web dependencies installed!"
else
  echo "Dependencies already installed"
fi

Step 2: Build Production Server (auto-rebuilds on plugin update)

Build if needed or if plugin version changed:

cd ${CLAUDE_PAPER_PLUGIN_ROOT}/src/web

PLUGIN_VERSION=$(node -e "console.log(require('${CLAUDE_PAPER_PLUGIN_ROOT}/.claude-plugin/plugin.json').version)")
BUILD_VERSION=""
if [ -f ".output/.build-version" ]; then
  BUILD_VERSION=$(cat ".output/.build-version")
fi

if [ ! -f ".output/server/index.mjs" ] || [ "$PLUGIN_VERSION" != "$BUILD_VERSION" ]; then
  echo "Building production server (v${PLUGIN_VERSION})..."
  npm run build
  echo "$PLUGIN_VERSION" > .output/.build-version
  echo "Build complete!"
else
  echo "Production build is up to date (v${BUILD_VERSION})"
fi

Step 3: Check Port Availability

Ensure port 5815 is available (with version check restart):

# Get version info for comparison
PLUGIN_VERSION=$(node -e "console.log(require('${CLAUDE_PAPER_PLUGIN_ROOT}/.claude-plugin/plugin.json').version)")
BUILD_VERSION=""
if [ -f ".output/.build-version" ]; then
  BUILD_VERSION=$(cat ".output/.build-version")
fi

if lsof -i :5815 > /dev/null 2>&1; then
  echo "INFO: Port 5815 is already in use"
  PID_FILE="/tmp/claude-paper-webui.pid"
  if [ -f "$PID_FILE" ] && kill -0 $(cat "$PID_FILE") 2>/dev/null; then
    # Check version match - restart if plugin was updated
    if [ "$PLUGIN_VERSION" = "$BUILD_VERSION" ]; then
      echo "Claude Paper web UI is already running (version ${PLUGIN_VERSION})"
      echo "Access it at: http://localhost:5815"
      exit 0
    else
      echo "Version mismatch: running ${BUILD_VERSION}, need ${PLUGIN_VERSION}"
      echo "Stopping old server..."
      kill $(cat "$PID_FILE") 2>/dev/null
      sleep 2
      rm -f "$PID_FILE"
      echo "Old server stopped, will restart with new version"
    fi
  else
    echo "ERROR: Port 5815 is occupied by another process"
    exit 1
  fi
fi

Step 4: Start Production Server

Start the server in background:

HOST=127.0.0.1 PORT=5815 node .output/server/index.mjs &
SERVER_PID=$!

# Save PID for later cleanup
echo $SERVER_PID > /tmp/claude-paper-webui.pid
echo "Server PID: $SERVER_PID"

Step 5: Verify Server Health

Wait for server to be ready:

timeout=10
while [ $timeout -gt 0 ]; do
  if curl -s http://localhost:5815/api/papers > /dev/null 2>&1; then
    echo "Server is ready!"
    break
  fi
  sleep 1
  timeout=$((timeout - 1))
done

if [ $timeout -eq 0 ]; then
  echo "ERROR: Server failed to start properly"
  kill $SERVER_PID 2>/dev/null
  rm -f /tmp/claude-paper-webui.pid
  exit 1
fi

Step 6: Inform User

Tell the user the web viewer is available and provide cleanup instructions:

Claude Paper web UI is now running!

Access it at: http://localhost:5815

To stop the server, run:
  kill $(cat /tmp/claude-paper-webui.pid)

Operate deliberately

Install and manage

Prerequisites and target Profile

Target Claude Paper Profile

Delivery Skill Files — https://raw.githubusercontent.com/alaliqing/claude-paper/0af55d0daeae8e86571700fd1839feb6be9440a6/.agents/skills/claude-paper-webui/SKILL.md

Compatibility and access

Local Nuxt.js web viewer workflow; host compatibility metadata is included Not declared in supplied evidence

Review compatibility evidence

Risk facts

Local Process Management

Starts a background server on 127.0.0.1:5815 and records its PID for later stopping.

Evidence
Dependency Management

Runs npm ci and may delete the web node_modules directory when it considers dependencies corrupted.

Evidence
Evidence and editorial reviewManifest, Bundle patch, distribution and freshness

Immutable evidence

Review status and source activity

Human approved

Approved for publication after reviewing the source-linked content and immutable release record. AI assisted with the draft; the publication decision was human.

Human reviewed Sep 1, 2026, 9:41 AM UTCGitHub facts last checked Sep 1, 2026, 8:45 AM UTC

No material source change has been recorded since this evidence baseline.

Next step

Compare ecosystem artifact types

Subscribe to material changes for claude-paper-webui