Skip to main content

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:

  1. Why should I care? - What problem does this address and why does it matter?
  2. What's the actual innovation? - What's the core idea in plain terms?
  3. 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)

Source distribution for fluff-cutter 0.7.0
File Size Uploaded
fluff_cutter-0.7.0.tar.gz 40.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fluff-cutter 0.7.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page