Automatically track your LaTeX manuscript writing progress with beautiful visualizations and GitHub Actions integration. Perfect for academic papers, theses, and any LaTeX documents managed through Overleaf's GitHub sync.
- Automatic Word Counting: Uses
texcount
(Overleaf's official method) for accurate word counts - Progress Visualization: Beautiful matplotlib plots showing your writing progress over time
- Commit Annotations: Parse commit messages to add categorized milestones to your plot
- GitHub Actions Integration: Runs automatically on every Overleaf sync
- Easy Setup: Simple Python script to configure everything
- Customizable: Configure plot styles, categories, and tracking options
- An Overleaf project with GitHub synchronization enabled
- Python 3.7+ installed locally
Note: No GitHub Personal Access Token required! The tracker uses GitHub's built-in token automatically.
- Clone this repository:
git clone https://github.com/yourusername/overleaf-progress-tracker.git
cd overleaf-progress-tracker
- Install dependencies:
# Create virtual environment (recommended)
python3 -m venv venv
source venv/bin/activate
# Install packages
pip install -r requirements.txt
- Run the setup script:
python setup.py
The setup script will only prompt you for:
- Path to your manuscript repository
That's it! No tokens or complex authentication needed.
Use categorized commit messages to add annotations to your progress plot:
Notes: Added introduction section
→ 📝Milestone: Completed literature review
→ 🎯Revisions: Addressed reviewer comments
→ ✏️��Progress: Wrote methodology section
→ 📈Fix: Corrected equations in section 3
→ 🔧Reference: Added citations
→ 📚
You can also trigger the tracking manually:
# In your manuscript repository
python .github/scripts/track_progress.py
Edit .progress-tracker.config
in your manuscript repository:
{
"main_tex_file": "auto", // or specify like "manuscript.tex"
"plot_style": {
"figure_size": [10, 6],
"line_color": "#2E86AB",
"categories": {
"Notes": {"icon": "=�", "color": "#4CAF50"},
"Milestone": {"icon": "<�", "color": "#FF9800"},
// Add custom categories here
}
},
"texcount_options": "-inc -chinese -japanese -korean -total"
}
- Overleaf + GitHub: When you make changes in Overleaf and sync, it pushes to GitHub
- GitHub Actions: The push triggers the tracking workflow
- Word Counting:
texcount
analyzes your LaTeX files - Data Storage: Progress data is stored in
.progress-data/progress.json
- Visualization: matplotlib creates an updated progress plot
- README Update: The plot is embedded in your repository's README
Your README will automatically include a section like:
## Manuscript Progress

*Last updated: 2024-01-15 10:30:00 UTC*
The plot shows:
- Word count over time
- Total words, total change, and average words per commit
- Categorized commit annotations with dates
-
"No .tex files found"
- Ensure your LaTeX files are in the repository root
- Check
.progress-tracker.config
to specify the main file
-
"texcount: command not found"
- The GitHub Action installs it automatically
- For local testing:
sudo apt-get install texlive-extra-utils
-
Plot not updating
- Check GitHub Actions tab for errors
- Ensure
GITHUB_TOKEN
secret is set correctly
-
Word count seems wrong
- Adjust
texcount_options
in config - Check if all included files are being counted
- Adjust
Run locally with verbose output:
cd your-manuscript-repo
python .github/scripts/track_progress.py --verbose
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by latex-progress-tracker
- Uses texcount for accurate word counting
- Built with matplotlib for visualizations
- Create an issue for bugs
- Start a discussion for features
- Check the wiki for advanced usage