快速了解
它能做什么
启动 Claude Paper 的本地网页界面,用于浏览和研读论文。
本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。
选择前先看
此技能会准备 Claude Paper 的 Web 依赖,在需要时构建 Nuxt.js 生产服务器,并在本机 http://localhost:5815 提供论文查看器。它会检查端口占用情况,并通过 PID 文件识别自己启动的服务器。
适合谁
希望通过本地浏览器界面查看和研读 Claude Paper 中论文的用户。
常见任务
- 在浏览器中打开 Claude Paper 查看器。
- 插件更新后重新构建查看器。
- 检查 5815 端口上的现有查看器是否可复用。
权限与数据
会运行本地 Shell 命令以安装包、构建 Web 应用、检查 5815 端口并管理本地服务器进程。
权限- Shell 访问权限
- 对插件 Web 构建目录和依赖目录的写入权限
- 绑定本机 5815 端口的能力
- 创建和删除 /tmp/claude-paper-webui.pid 的能力
- 会请求本地查看器的 /api/papers 健康检查端点。
- 提供的技能文档未声明远程数据去向。
- 通过 npm ci 执行 npm 包安装。
- 提供的证据中未声明需要凭据。
局限
- 查看器仅在本机 127.0.0.1:5815 上可用。
- 若 5815 端口被 PID 文件无法识别的其他进程占用,技能会报错退出。
- 在依赖损坏的恢复路径中,会先删除 node_modules 再重新安装。
DSHub 已核对
- 已完整获取固定版本的技能文档。
- 源码提交已固定,且技能文档硬检查通过。
- 已检测到 MIT 许可证。
DSHub 未核对
- DSHub 未安装或执行此技能。
- 未验证依赖安装、构建、服务器启动及论文加载是否成功。
固定版本安装
主要操作
这个独立 Skill没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。
维护者原文
Skill 使用说明
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)
有意识地管理
安装与管理
前置条件与目标 Profile
目标: claude-paper Profile
交付方式: Skill 文件 — https://raw.githubusercontent.com/alaliqing/claude-paper/0af55d0daeae8e86571700fd1839feb6be9440a6/.agents/skills/claude-paper-webui/SKILL.md。
兼容性与访问范围
Local Nuxt.js web viewer workflow; host compatibility metadata is included: Not declared in supplied evidence。
风险事实
证据与编辑审查Manifest、Bundle patch、分发与新鲜度
不可变证据
审查状态与源码活动
在核对来源内容和不可变发布记录后,已由人工批准发布。AI 参与了内容草稿生成,最终发布决定由人工完成。
人工审查于 2026/9/1 UTC 09:41。GitHub 事实核对日期: 2026/9/1 UTC 08:45。
自当前证据基线以来,没有记录到重要源码变化。