Transform research papers into comprehensive learning environments A powerful Claude Code plugin that automates research paper study through intelligent material generation, code demonstrations, and an interactive web viewer.
> /plugin marketplace add alaliqing/claude-paper> /plugin install claude-paper@claude-paper
What's inside
Transform research papers into comprehensive learning environments
A powerful Claude Code plugin that automates research paper study through intelligent material generation, code demonstrations, and an interactive web viewer.
Install from the Claude Code marketplace:
# Add the marketplace
/plugin marketplace add alaliqing/claude-paper
# Install the plugin
/plugin install claude-paper
# Restart Claude Code for the plugin to take effect
That's it! The plugin will automatically:
~/claude-papers/brew install popplersudo apt-get install poppler-utilssudo pacman -S popplerSimply talk to Claude Code to study a paper:
Help me study the paper at ~/Downloads/attention-is-all-you-need.pdf
You can also use URLs:
# Direct PDF URL
Help me study the paper at https://arxiv.org/pdf/1706.03762.pdf
# arXiv abstract URL (automatically converted to PDF)
Help me study the paper at https://arxiv.org/abs/1706.03762
Claude will automatically trigger the study workflow and:
/claude-paper:webui
Opens the interactive web interface at http://localhost:5815 where you can:
Papers are organized in ~/claude-papers/papers/{paper-slug}/:
~/claude-papers/
βββ papers/
β βββ {paper-slug}/
β βββ paper.pdf # Original PDF file
β βββ meta.json # Paper metadata (title, authors, etc.)
β βββ README.md # Quick navigation and overview
β βββ summary.md # Detailed summary
β βββ insights.md # Key insights (most important!)
β βββ method.md # Methodology (if complex)
β βββ mental-model.md # Paper categorization (if needed)
β βββ reflection.md # Future directions (if needed)
β βββ qa.md # Learning questions
β βββ index.html # Interactive HTML explorer
β βββ images/ # Extracted figures and tables
β β βββ fig1.png
β β βββ fig2.png
β βββ code/ # Code demonstrations
β βββ core-demo.py # Clean reference implementation
β βββ concept-demo.ipynb # Interactive Jupyter notebook
β
βββ index.json # Global search index
claude-paper/
βββ .claude-plugin/
β βββ marketplace.json # Marketplace catalog entry
βββ plugin/
β βββ .claude-plugin/
β β βββ plugin.json # Plugin manifest
β βββ skills/
β β βββ study/
β β βββ SKILL.md # Study workflow definition
β β βββ scripts/
β β βββ parse-pdf.js # PDF parsing utility
β β βββ extract-images.py # Image extraction
β βββ commands/
β β βββ webui.md # /webui command
β βββ hooks/
β β βββ hooks.json # Session lifecycle hooks
β β βββ check-install.sh # Installation verification
β βββ src/
β β βββ web/ # Nuxt.js web viewer
β β βββ components/ # Vue components
β β βββ composables/ # Vue composables
β β βββ server/ # API endpoints
β β βββ package.json
β βββ package.json
βββ README.md
# Test PDF parsing
node plugin/skills/study/scripts/parse-pdf.js /path/to/paper.pdf
# Test web viewer
cd plugin/src/web
npm run dev
# Test full workflow
cd /path/to/claude-paper
claude --plugin-dir ./plugin
/claude-paper:study /path/to/paper.pdf
# Build web viewer
cd plugin/src/web
npm run build
# The built viewer will be in .output/
No configuration required! The plugin uses sensible defaults:
~/claude-papers/581550,000 characters (with intelligent truncation)You can modify behavior by editing the skill file at:
plugin/skills/study/SKILL.md
Contributions are welcome! Please:
git checkout -b feature/amazing-feature)git commit -m 'add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
.claude-plugin/
marketplace.json
assets/
screenshot1.png
screenshot2.png
LICENSE
plugin/
.claude-plugin/
plugin.json
commands/
webui.md
hooks/
check-install.sh
hooks.json
package.json
skills/
study/
scripts/
download-pdf.cjs
extract-images.py
parse-pdf.js
SKILL.md
summary/
SKILL.md
webui/
SKILL.md
src/
web/
.gitignore
components/
FileTreeNode.vue
PaperCard.vue
PaperContent.vue
SearchFilterBar.vue
TagBadge.vue
TagEditor.vue
VSCodeButton.vue
composables/
usePapers.ts
node_modules/
.bin/
esbuild
nanoid
parser
rollup
vite
.package-lock.json
@babel/
helper-string-parser/
lib/
index.js
index.js.map
LICENSE
package.json
README.md
helper-validator-identifier/
lib/
identifier.js
identifier.js.map
index.js
index.js.map
keyword.js
keyword.js.map
LICENSE
package.json
README.md
parser/
bin/
babel-parser.js
CHANGELOG.md
lib/
index.js
index.js.map
LICENSE
package.json
README.md
typings/
babel-parser.d.ts
types/
lib/
asserts/
assertNode.js
assertNode.js.map
generated/
index.js
index.js.map
ast-types/
generated/
index.js
index.js.map
builders/
flow/
createFlowUnionType.js
createFlowUnionType.js.map
createTypeAnnotationBasedOnTypeof.js
createTypeAnnotationBasedOnTypeof.js.map
generated/
index.js
index.js.map
lowercase.js
lowercase.js.map
uppercase.js
uppercase.js.map
productions.js
productions.js.map
react/
buildChildren.js
buildChildren.js.map
typescript/
createTSUnionType.js
createTSUnionType.js.map
validateNode.js
validateNode.js.map
clone/
clone.js
clone.js.map
cloneDeep.js
cloneDeep.js.map
cloneDeepWithoutLoc.js
cloneDeepWithoutLoc.js.map
cloneNode.js
cloneNode.js.map
cloneWithoutLoc.js
cloneWithoutLoc.js.map
comments/
addComment.js
addComment.js.map
addComments.js
addComments.js.map
inheritInnerComments.js
inheritInnerComments.js.map
inheritLeadingComments.js
inheritLeadingComments.js.map
inheritsComments.js
inheritsComments.js.map
inheritTrailingComments.js
inheritTrailingComments.js.map
removeComments.js
removeComments.js.map
constants/
generated/
index.js
index.js.map
index.js
index.js.map
converters/
ensureBlock.js
ensureBlock.js.map
gatherSequenceExpressions.js
gatherSequenceExpressions.js.map
toBindingIdentifierName.js
toBindingIdentifierName.js.map
toBlock.js
toBlock.js.map
toComputedKey.js
toComputedKey.js.map
toExpression.js
toExpression.js.map
toIdentifier.js
toIdentifier.js.map
toKeyAlias.js
toKeyAlias.js.map
toSequenceExpression.js
toSequenceExpression.js.map
toStatement.js
toStatement.js.map
valueToNode.js
valueToNode.js.map
definitions/
core.js
core.js.map
deprecated-aliases.js
deprecated-aliases.js.map
experimental.js
experimental.js.map
flow.js
flow.js.map
index.js
index.js.map
jsx.js
jsx.js.map
misc.js
misc.js.map
placeholders.js
placeholders.js.map
typescript.js
typescript.js.map
utils.js
utils.js.map
index-legacy.d.ts
index.d.ts
index.js
index.js.flow
index.js.map
modifications/
appendToMemberExpression.js
appendToMemberExpression.js.map
flow/
removeTypeDuplicates.js
removeTypeDuplicates.js.map
inherits.js
inherits.js.map
prependToMemberExpression.js
prependToMemberExpression.js.map
removeProperties.js
removeProperties.js.map
removePropertiesDeep.js
removePropertiesDeep.js.map
typescript/
removeTypeDuplicates.js
removeTypeDuplicates.js.map
retrievers/
getAssignmentIdentifiers.js
getAssignmentIdentifiers.js.map
getBindingIdentifiers.js
getBindingIdentifiers.js.map
getFunctionName.js
getFunctionName.js.map
getOuterBindingIdentifiers.js
getOuterBindingIdentifiers.js.map
traverse/
traverse.js
traverse.js.map
traverseFast.js
traverseFast.js.map
utils/
deprecationWarning.js
deprecationWarning.js.map
inherit.js
inherit.js.map
react/
cleanJSXElementLiteralChild.js
cleanJSXElementLiteralChild.js.map
shallowEqual.js
shallowEqual.js.map
validators/
buildMatchMemberExpression.js
buildMatchMemberExpression.js.map
generated/
index.js
index.js.map
is.js
is.js.map
isBinding.js
isBinding.js.map
isBlockScoped.js
isBlockScoped.js.map
isImmutable.js
isImmutable.js.map
isLet.js
isLet.js.map
isNode.js
isNode.js.map
isNodesEquivalent.js
isNodesEquivalent.js.map
isPlaceholderType.js
isPlaceholderType.js.map
isReferenced.js
isReferenced.js.map
isScope.js
isScope.js.map
isSpecifierDefault.js
isSpecifierDefault.js.map
isType.js
isType.js.map
isValidES3Identifier.js
isValidES3Identifier.js.map
isValidIdentifier.js
isValidIdentifier.js.map
isVar.js
isVar.js.map
matchesPattern.js
matchesPattern.js.map
react/
isCompatTag.js
isCompatTag.js.map
isReactComponent.js
isReactComponent.js.map
validate.js
validate.js.map
LICENSE
package.json
README.md
@esbuild/
darwin-arm64/
bin/
esbuild
package.json
README.md
@jridgewell/
sourcemap-codec/
dist/
sourcemap-codec.mjs
sourcemap-codec.mjs.map
sourcemap-codec.umd.js
sourcemap-codec.umd.js.map
LICENSE
package.json
README.md
src/
scopes.ts
sourcemap-codec.ts
strings.ts
vlq.ts
types/
scopes.d.cts
scopes.d.cts.map
scopes.d.mts
scopes.d.mts.map
sourcemap-codec.d.cts
sourcemap-codec.d.cts.map
sourcemap-codec.d.mts
sourcemap-codec.d.mts.map
strings.d.cts
strings.d.cts.map
strings.d.mts
strings.d.mts.map
vlq.d.cts
vlq.d.cts.map
vlq.d.mts
vlq.d.mts.map
@rollup/
rollup-darwin-arm64/
package.json
README.md
rollup.darwin-arm64.node
@shikijs/
core/
dist/
index.d.mts
index.d.ts
index.mjs
textmate.d.mts
textmate.d.ts
textmate.mjs
types.d.mts
types.d.ts
types.mjs
wasm-inlined.d.mts
wasm-inlined.d.ts
wasm-inlined.mjs
LICENSE
package.json
README.md
engine-javascript/
dist/
engine-compile.d.mts
engine-compile.d.ts
engine-compile.mjs
engine-raw.d.mts
engine-raw.d.ts
engine-raw.mjs
index.d.mts
index.d.ts
index.mjs
shared/
engine-javascript.hzpS1_41.mjs
LICENSE
package.json
README.md
engine-oniguruma/
dist/
chunk-index.d.d.mts
index.d.mts
index.mjs
onig.d.mts
wasm-inlined.d.mts
wasm-inlined.mjs
LICENSE
package.json
README.md
langs/
dist/
1c-query.d.mts
1c-query.mjs
1c.d.mts
1c.mjs
abap.d.mts
abap.mjs
actionscript-3.d.mts
actionscript-3.mjs
ada.d.mts
ada.mjs
adoc.d.mts
adoc.mjs
angular-expression.d.mts
angular-expression.mjs
angular-html.d.mts
angular-html.mjs
angular-inline-style.d.mts
angular-inline-style.mjs
angular-inline-template.d.mts
angular-inline-template.mjs
angular-let-declaration.d.mts
angular-let-declaration.mjs
angular-template-blocks.d.mts
angular-template-blocks.mjs
angular-template.d.mts
angular-template.mjs
angular-ts.d.mts
... 1600 moreShowing a partial view of a very large repo.
FAQ
claude-paper is a Claude Code plugin with 3 hand-picked skills for content work, indexed on Flowy. Install it with the command on its page. It includes study, summary, webui. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.