Paper Bartender
A CLI tool to help researchers manage multiple paper submission deadlines by tracking milestones into daily tasks using AI.
Features
- Natural language interface - Just tell it what you want in plain English
- Track multiple papers with deadlines
- Link papers to PDF files for context-aware task generation
- Create sequential milestones with automatic task decomposition
- AI reads your paper's PDF to generate tasks tailored to your current progress
- View today's tasks at a glance
Installation
# Using pip
pip install paper-bartender
# Or using pipx (recommended for CLI tools)
pipx install paper-bartender
Configuration
Set your API key:
# For Anthropic Claude (recommended)
export PAPER_BARTENDER_ANTHROPIC_API_KEY="your-anthropic-key"
# Or for OpenAI
export PAPER_BARTENDER_OPENAI_API_KEY="your-openai-key"
Usage
The do Command - Natural Language Interface
The easiest way to use Paper Bartender is with natural language:
# Add a paper with deadline
paper-bartender do "add paper ABC deadline Feb 20"
# Add a paper with PDF for smarter task generation
paper-bartender do "add paper ABC deadline Feb 20 pdf ~/papers/draft.pdf"
# Link a PDF to an existing paper
paper-bartender do "add pdf ~/Downloads/draft.pdf to ABC"
# Add a single milestone
paper-bartender do "milestone for ABC: finish experiments by Feb 10"
# Add multiple milestones at once (they become sequential!)
paper-bartender do "for ABC paper: fix pipeline bug by 2/4, rerun experiments by 2/10, rewrite results by 2/15"
When you add multiple milestones, they are automatically sequenced:
- fix pipeline bug: Today → 2/4
- rerun experiments: 2/4 → 2/10
- rewrite results: 2/10 → 2/15
View Your Tasks
# Show today's tasks (default)
paper-bartender
# Show all upcoming progress
paper-bartender all
# Show timeline for a specific paper
paper-bartender timeline "ABC"
# Or filter any view by paper
paper-bartender today --paper "ABC"
paper-bartender all --paper "ABC"
Mark Tasks Complete
# Mark a task as done (partial match)
paper-bartender done "fix pipeline"
# Skip a task
paper-bartender skip "review literature"
Example Workflow
# 1. Add a paper with your PDF draft
paper-bartender do "add paper ICML Submission deadline Feb 20 pdf ~/papers/icml-draft.pdf"
# 2. Add all your milestones in one command
paper-bartender do "for ICML Submission: fix training bug by 2/4, run all experiments by 2/10, rewrite results section by 2/15, final polish by 2/19"
# 3. Check your tasks daily
paper-bartender
# 4. Mark tasks as done
paper-bartender done "identify bug"
# 5. See the full schedule
paper-bartender all
Today's tasks with progress bars:
📋 Today's Tasks (Sat, Jan 31)
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Paper ┃ Checkpoint ┃ Detailed Task ┃
┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ ICML Submission │ ███░░░░░░░░░ 25% fix training bug │ Review pipeline code and... │
│ Other Paper │ ██████░░░░░░ 50% finish experiments │ N/A │
└──────────────────┴───────────────────────────────────────────────┴─────────────────────────────────┘
Timeline for a specific paper:
$ paper-bartender timeline "ICML Submission"
📅 Upcoming Progress (8 tasks across 5 days)
Today (1 task)
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Paper ┃ Checkpoint ┃ Detailed Task ┃
┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ ICML Submission │ ███░░░░░░░░░ 25% fix training bug │ Review pipeline code... │
└──────────────────┴───────────────────────────────────────────────┴─────────────────────────────────┘
Tomorrow (1 task)
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Paper ┃ Checkpoint ┃ Detailed Task ┃
┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ ICML Submission │ ██████░░░░░░ 50% fix training bug │ Implement fixes... │
└──────────────────┴───────────────────────────────────────────────┴─────────────────────────────────┘
Advanced Commands
Add Paper (explicit command)
paper-bartender add paper "My Paper" --deadline 2025-05-15 --pdf ~/draft.pdf
Date formats: 2025-05-15, 5/15, in 2 weeks, tomorrow
Add Milestone (explicit command)
paper-bartender add milestone "My Paper" "Write intro" --due 5/10
# With priority (1-5)
paper-bartender add milestone "My Paper" "Experiments" --due 5/5 --priority 3
# Skip auto task generation
paper-bartender add milestone "My Paper" "Review" --due 5/8 --no-decompose
List Papers & Milestones
paper-bartender list papers
paper-bartender list papers --archived
paper-bartender list milestones "My Paper"
paper-bartender list milestones "My Paper" --completed
Re-generate Tasks
# Re-generate tasks (re-reads PDF for updated context)
paper-bartender decompose "My Paper" --force
# Preview without saving
paper-bartender decompose "My Paper" --dry-run
Delete Data
paper-bartender delete paper "My Paper"
paper-bartender delete milestone "My Paper" "Write intro"
# Clear everything (creates backup first)
paper-bartender clear
# Restore from backup
paper-bartender restore
Commands Reference
| Command | Description |
|---|---|
paper-bartender |
Show today's tasks |
paper-bartender all |
Show all upcoming tasks |
paper-bartender timeline "Paper" |
Show timeline for a specific paper |
paper-bartender do "..." |
Natural language command |
paper-bartender done "task" |
Mark task complete |
paper-bartender skip "task" |
Skip a task |
paper-bartender add paper ... |
Add paper (explicit) |
paper-bartender add milestone ... |
Add milestone (explicit) |
paper-bartender list papers |
List papers |
paper-bartender list milestones |
List milestones |
paper-bartender decompose |
Re-generate tasks |
paper-bartender delete |
Delete paper/milestone |
paper-bartender clear |
Clear all data |
paper-bartender restore |
Restore from backup |
Data Storage
All data is stored locally at ~/.paper-bartender/data.json. Backups are created automatically before destructive operations.
Development
poetry install
pytest
mypy --strict paper_bartender
ruff format . && ruff check --fix .
License
Apache 2.0 License
Metadata
Release files for paper-bartender 0.1.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 | Provenance | Actions |
|---|---|---|---|---|
| paper_bartender-0.1.0.tar.gz | 28.2 kB | Without provenance | Details for paper_bartender-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| paper_bartender-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for paper_bartender-0.1.0-py3-none-any.whl |
Total release size: 64.7 kB
Release files / paper_bartender-0.1.0.tar.gz
| Download URL | paper_bartender-0.1.0.tar.gz |
|---|---|
| Size | 28.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f26be5af1bbd7b29cf915774daa9337c482fec75a9c8c94b737013da2e5019f4
|
|
BLAKE2b-256 checksum How to use checksums |
14d347cb839ff74e4f8f46ee9471a503769bbd95ca01b81730b3c7e0a8e18d50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.10.16 Darwin/22.6.0
|
Release files / paper_bartender-0.1.0-py3-none-any.whl
| Download URL | paper_bartender-0.1.0-py3-none-any.whl |
|---|---|
| Size | 36.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
054b2aa235ae942ef887558d7861b78ecb73377d48d297298a6681f1dd7022da
|
|
BLAKE2b-256 checksum How to use checksums |
f6c3af4f44c133cd19a2225c9c3d561955d83d3259607dab1e6c6778325d51f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.2.1 CPython/3.10.16 Darwin/22.6.0
|
Security for paper-bartender 0.1.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.