A python script to extract the open-review comments for a paper into a markdown file for easy copy/pasting during rebuttals
Project description
Extract OpenReview Comments
A Python command-line tool to extract OpenReview comments for a paper into markdown format for easy copy/pasting when writing rebuttals.
Features
- 📥 Extract all comments and reviews from any OpenReview forum
- 📝 Format comments as clean, readable Markdown
- 🔐 Support for both public and private content (with authentication)
- 📁 Save to a single file or split into separate files per comment
- 🔄 Preserves reply threads and nested discussions
- ⚡ Fast and easy to use
Installation
pip install extract-openreview-comments
Usage
Basic Usage
Extract comments from a public OpenReview forum:
extract-openreview-comments <forum_id>
This will save all comments to comments.md in the current directory.
With Authentication
For private content or to access additional information:
extract-openreview-comments <forum_id> -u your_email@example.com -p your_password
Save to Custom File
extract-openreview-comments <forum_id> -o my_reviews.md
Split into Separate Files
Save each comment to a separate file in a directory:
extract-openreview-comments <forum_id> --separate-files -d output_directory/
Finding the Forum ID
The forum ID is the unique identifier for a paper on OpenReview. You can find it in the URL:
https://openreview.net/forum?id=FORUM_ID_HERE
For example, in https://openreview.net/forum?id=rJXMpikCZ, the forum ID is rJXMpikCZ.
Command-Line Options
Usage: extract-openreview-comments [OPTIONS] FORUM_ID
Options:
-u, --username TEXT OpenReview username (optional for public content)
-p, --password TEXT OpenReview password (optional for public content)
-o, --output PATH Output file path (default: comments.md)
-s, --separate-files Save each comment to a separate file
-d, --output-dir PATH Output directory for separate files (default: comments/)
--baseurl TEXT OpenReview API base URL (default: https://api2.openreview.net)
--help Show this message and exit.
Output Format
The tool generates well-formatted Markdown with:
- Comment metadata (author, date)
- Review content (summary, strengths, weaknesses, questions)
- Ratings and confidence scores
- Nested reply threads
- Clear section separators
Example output:
# Paper Title
**Total Comments:** 5
---
## Comment by Reviewer_ABC
**Date:** 2024-01-15 10:30:00
**Review:**
This paper presents an interesting approach to...
**Rating:** 8: Top 50% of accepted papers
**Confidence:** 4: High
### Replies:
## Comment by Authors
**Date:** 2024-01-20 14:00:00
**Response:**
We thank the reviewer for their feedback...
---
Development
Running Tests
uv run pytest
Linting and Formatting
uv run ruff check .
uv run ruff format .
Type Checking
uv run pyright
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Built using the OpenReview Python API
- CLI powered by Click
- Built using Claude Code
Links
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file extract_openreview_comments-0.2.1.tar.gz.
File metadata
- Download URL: extract_openreview_comments-0.2.1.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9ced4223f457570a564157d733551f721dc39a9544fa6bad66b30e974af94c3
|
|
| MD5 |
d51f04f1572463373cde4ba87293ef42
|
|
| BLAKE2b-256 |
c9968911e84f6294c34c1eb44bf819f541faccd720e35a0c62ab75c94bbe7c93
|
Provenance
The following attestation bundles were made for extract_openreview_comments-0.2.1.tar.gz:
Publisher:
ci.yaml on chanind/extract-openreview-comments
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
extract_openreview_comments-0.2.1.tar.gz -
Subject digest:
e9ced4223f457570a564157d733551f721dc39a9544fa6bad66b30e974af94c3 - Sigstore transparency entry: 1175439398
- Sigstore integration time:
-
Permalink:
chanind/extract-openreview-comments@b53eabf3e0adc9a90bc620131f3408d93788f79d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/chanind
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yaml@b53eabf3e0adc9a90bc620131f3408d93788f79d -
Trigger Event:
push
-
Statement type:
File details
Details for the file extract_openreview_comments-0.2.1-py3-none-any.whl.
File metadata
- Download URL: extract_openreview_comments-0.2.1-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9aae3c3f72be052dac1d443d0a2fff714e5acf28235c9662c3a3092a9579d7a
|
|
| MD5 |
1853778dc31aa905f3d45e5acddfb121
|
|
| BLAKE2b-256 |
474dc80bf3fac8b5dce02a5f00ee3c66cd06a6caa8e710fec67dd04d8124ed14
|
Provenance
The following attestation bundles were made for extract_openreview_comments-0.2.1-py3-none-any.whl:
Publisher:
ci.yaml on chanind/extract-openreview-comments
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
extract_openreview_comments-0.2.1-py3-none-any.whl -
Subject digest:
c9aae3c3f72be052dac1d443d0a2fff714e5acf28235c9662c3a3092a9579d7a - Sigstore transparency entry: 1175439419
- Sigstore integration time:
-
Permalink:
chanind/extract-openreview-comments@b53eabf3e0adc9a90bc620131f3408d93788f79d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/chanind
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yaml@b53eabf3e0adc9a90bc620131f3408d93788f79d -
Trigger Event:
push
-
Statement type: