SciWriter
LaTeX manuscript compilation with CLI and MCP server integration.
Quick Start
Shell Scripts (Recommended)
git clone https://github.com/ywatanabe1989/sciwriter.git my-paper
cd my-paper
./scripts/shell/compile_manuscript.sh
Python CLI
pip install sciwriter
sciwriter compile ./my-paper # Compile manuscript
sciwriter compile ./my-paper -t suppl # Compile supplementary
sciwriter status ./my-paper # Check dependencies
MCP Server
Add to Claude Desktop config (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"sciwriter": {
"command": "python",
"args": ["-m", "sciwriter.mcp_server"]
}
}
}
Tools: compile, status, clean, get_project_info
Features
Features
- Templates - Manuscript, supplementary material, and revision letter
- Modular LaTeX - Section-separated .tex files
- MCP Server - Claude Desktop integration
- Media Support - Figures, tables, and citations
- Citation Management - Multi-file .bib with auto-merge
- Citation Styles - 20+ journal formats (Nature, IEEE, APA, etc.)
- Auto Counts - Words and media per section
- Diff Visualization - Track changes between versions
- Git Friendly - Auto-archive with version history
Installation
Python Package
pip install sciwriter
Ubuntu/Debian
sudo apt-get install texlive-latex-extra latexdiff parallel imagemagick ghostscript
macOS
brew install texlive latexdiff parallel imagemagick ghostscript
HPC / Containers
# Module system
module load texlive latexdiff parallel
# Docker
docker run -v $(pwd):/work scitex-writer
# Singularity/Apptainer
singularity run scitex-writer.sif
Project Structure
Directory Layout
my-paper/
├── 00_shared/ # Shared resources (bibliography, styles)
│ ├── bib_files/ # Multiple .bib files (auto-merged)
│ └── latex_styles/ # Common LaTeX configurations
├── 01_manuscript/ # Main manuscript
│ ├── contents/ # Modular content sections
│ │ ├── abstract.tex
│ │ ├── introduction.tex
│ │ ├── methods.tex
│ │ ├── results.tex
│ │ ├── discussion.tex
│ │ ├── figures/ # Figure captions + media
│ │ └── tables/ # Table captions + CSV data
│ ├── archive/ # Version history (auto-generated)
│ ├── manuscript.tex # Compiled LaTeX
│ └── manuscript.pdf # Output PDF
├── 02_supplementary/ # Supplementary materials
├── 03_revision/ # Revision response letter
└── scripts/shell/ # Compilation scripts
PDF Compilation
Basic Commands
./scripts/shell/compile_manuscript.sh # Manuscript
./scripts/shell/compile_supplementary.sh # Supplementary
./scripts/shell/compile_revision.sh # Revision letter
Performance Options
./scripts/shell/compile_manuscript.sh --draft # Fast single-pass
./scripts/shell/compile_manuscript.sh --no-figs # Skip figures
./scripts/shell/compile_manuscript.sh --no-tables # Skip tables
./scripts/shell/compile_manuscript.sh --no-diff # Skip diff generation
Engine Selection
./scripts/shell/compile_manuscript.sh --engine tectonic # Fastest
./scripts/shell/compile_manuscript.sh --engine latexmk # Standard
./scripts/shell/compile_manuscript.sh --engine 3pass # Most compatible
Development Mode
./scripts/shell/compile_manuscript.sh --watch # Hot-reload on file changes
./scripts/shell/compile_manuscript.sh --clean # Remove cache
Content Management
Bibliography
Organize references in multiple .bib files - they auto-merge with deduplication:
00_shared/bib_files/
├── methods_refs.bib # Method-related references
├── field_background.bib # Background literature
└── my_papers.bib # Your own publications
Citation Styles (set in config/config_manuscript.yaml):
unsrtnat- numbered, order of citationplainnat- numbered, alphabeticalapalike- author-year, APA styleIEEEtran- IEEE formatnaturemag- Nature style
Figures
-
Place media files in
01_manuscript/contents/figures/caption_and_media/:01_example_figure.png 01_example_figure.tex # Caption file -
Caption file format (
01_example_figure.tex):%% Figure caption \caption{Your figure caption here. Explain panels (A, B, C) if applicable.} \label{fig:example_figure_01}
-
Supported formats: PNG, JPEG, PDF, SVG, TIFF, Mermaid (.mmd)
Tables
-
Place CSV + caption in
01_manuscript/contents/tables/caption_and_media/:01_example_table.csv 01_example_table.tex # Caption file -
CSV auto-converts to LaTeX table format
-
Caption file format (
01_example_table.tex):%% Table caption \caption{Your table caption. Define abbreviations used.} \label{tab:example_table_01}
Documentation
Guides
| Guide | Description |
|---|---|
| Installation | Setup for all environments |
| Quick Start | Common workflows |
| Content Creation | Writing manuscripts |
| Bibliography | Reference management |
| Architecture | Technical details |
AI Prompts
Writing assistance prompts in docs/prompts/:
abstract.md- Abstract writing guidelinesintroduction.md- Introduction structuremethods.md- Methods section formatdiscussion.md- Discussion frameworkproofreed.md- Proofreading checklist
Metadata
Release files for sciwriter 0.1.4
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 | |
|---|---|---|---|---|
| sciwriter-0.1.4.tar.gz | 104.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sciwriter-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 249.1 kB
Release files / sciwriter-0.1.4.tar.gz
| Download URL | sciwriter-0.1.4.tar.gz |
|---|---|
| Size | 104.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0986f120367a879ab4824a79fa999440377034b9e51ce9ee42f7c904a37ae028
|
|
BLAKE2b-256 checksum How to use checksums |
b15b98511b305a2278ec9e1e4a413afd6631b8b94e563eb2b4d2141252cf275c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / sciwriter-0.1.4-py3-none-any.whl
| Download URL | sciwriter-0.1.4-py3-none-any.whl |
|---|---|
| Size | 144.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ed9c2fa225fcf7dc0f805443f9280f5cd315013066034d8a81f6aa025fc20af0
|
|
BLAKE2b-256 checksum How to use checksums |
ba8edb1519496a750698e97b9549496cbf835d2e1fa9046c4d108c9b450a0f9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Security for sciwriter 0.1.4
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.