Paper Fluff Cutter
A CLI tool that cuts through academic paper fluff to extract what actually matters.
Most research has close to zero value. This tool uses multimodal LLMs to analyze papers and answer three questions:
- Why should I care? - What problem does this address and why does it matter?
- What's the actual innovation? - What's the core idea in plain terms?
- Is the evidence convincing? - Do the experiments actually support the claims?
Acknowledgement: the design of the fluff-cutter wiki is inspired by Andrej Karpathy's gist on LLM Wiki: https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f
Quick Start
pip install fluff-cutter
fluff-cutter init # set up API keys and defaults
fluff-cutter analyze paper.pdf
Requires Python 3.10+.
Usage
# Local file
fluff-cutter analyze paper.pdf
# URL (arxiv /abs/ and GitHub /blob/ links are normalized automatically)
fluff-cutter analyze https://arxiv.org/pdf/2411.19870
fluff-cutter analyze https://github.com/MoonshotAI/Kimi-K3/blob/main/k3_tech_report.pdf
# Options
fluff-cutter analyze paper.pdf --output analysis.md # custom output path
fluff-cutter analyze paper.pdf --print # stdout only, no file
fluff-cutter analyze paper.pdf --provider openai # openai, anthropic, openrouter
fluff-cutter analyze paper.pdf --model gpt-5.2 # override default model
fluff-cutter analyze paper.pdf --max-pages 30 # limit pages for long papers
Wiki workflow
For persistent research tracking, you can keep a markdown wiki alongside the raw PDFs:
# Create a wiki project
fluff-cutter wiki init ./research-wiki
# `wiki init` saves this as your default wiki root, so later commands work
# from anywhere unless you explicitly override with --root
fluff-cutter wiki add https://arxiv.org/pdf/2411.19870
# Inspect the wiki
fluff-cutter wiki ls
fluff-cutter wiki show agents-for-useful-things
fluff-cutter wiki pdf agents-for-useful-things
fluff-cutter wiki query "agents planning"
# Maintenance
fluff-cutter wiki rebuild --root ./research-wiki
fluff-cutter wiki doctor --root ./research-wiki
fluff-cutter wiki remove paper-slug --root ./research-wiki --delete-pdf
The wiki layout looks like this:
research-wiki/
├── fluff-cutter.yaml
├── raw/
│ └── pdfs/
└── wiki/
├── papers/
├── index.md
├── overview.md
└── log.md
By default, results are printed to the terminal and saved next to the input PDF with a
recognizable title, source identifier, and extraction date. Modern arXiv notes retain their
numeric paper ID, for example scaling-does-it-work-2411.19870-2026-07-30.md.
Model output streams live during analysis (provider-side streaming), so you see tokens immediately instead of waiting for full completion.
Obsidian-ready notes
Saved analyses and wiki paper pages include YAML properties that Obsidian can index:
---
title: Scaling Test-Time Compute
source: https://arxiv.org/abs/2411.19870
created: 2026-07-30
content_type: research-paper
authors:
- Example Author
published_year: 2025
research_type: empirical
concepts:
- verifier-guided search
prerequisites:
- transformer architecture
tags:
- paper
- summary
- language-models
- reasoning
model: OpenAI (gpt-5.2)
---
The visible note uses one paper-title H1 followed by consistent H2 analysis sections. Model-generated metadata is validated and removed from the note body, so files can be dropped directly into an Obsidian vault and organized with Properties, tags, and search.
Supported Providers
| Provider | Default Model | Env Variable |
|---|---|---|
| OpenAI | gpt-5.2 | OPENAI_API_KEY |
| Anthropic | claude-sonnet-4-5 | ANTHROPIC_API_KEY |
| OpenRouter | anthropic/claude-sonnet-4-5 | OPENROUTER_API_KEY |
All providers support native PDF input -- no external dependencies like poppler needed.
Configuration
Run fluff-cutter init for interactive setup. It asks which provider to configure,
then prompts only for that provider's API key and model. Run it again to configure
another provider; existing provider settings are preserved.
You can also set environment variables directly:
export OPENAI_API_KEY=sk-your-key-here
export FLUFF_CUTTER_PROVIDER=anthropic # default provider
export FLUFF_CUTTER_ANTHROPIC_MODEL=claude-sonnet-4-5 # override model
Config is read in this order (highest priority first): CLI flags, env variables, ~/.fluff-cutter/config.yaml, provider defaults.
License
MIT
Metadata
Release files for fluff-cutter 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fluff_cutter-0.7.0.tar.gz | 40.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fluff_cutter-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 69.1 kB
Release files / fluff_cutter-0.7.0.tar.gz
| Download URL | fluff_cutter-0.7.0.tar.gz |
|---|---|
| Size | 40.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
03ff443380bb9963b19d51f0d3a8ee4d5b0747c2c07b4c41afa7ca0f594e4763
|
|
BLAKE2b-256 checksum How to use checksums |
168cf1276d9afb0d9f4e78e9359d84d86a320b9072c5a3056a6dd12a6cd130a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 30, 2026.
Transparency logRelease files / fluff_cutter-0.7.0-py3-none-any.whl
| Download URL | fluff_cutter-0.7.0-py3-none-any.whl |
|---|---|
| Size | 28.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7a6b70e7511610a8967bca0013c31a39bcd3707e93aa7aeb193e5dbced8efe94
|
|
BLAKE2b-256 checksum How to use checksums |
7c6686eec7caaa7c9e2d0a0b0c5738fff1db29a64bfbc29bc35a61101212cfb1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 30, 2026.
Transparency log