Skip to main content

SciWriter

LaTeX manuscript compilation with CLI and MCP server integration.

CI Python License

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 citation
  • plainnat - numbered, alphabetical
  • apalike - author-year, APA style
  • IEEEtran - IEEE format
  • naturemag - Nature style
Figures
  1. Place media files in 01_manuscript/contents/figures/caption_and_media/:

    01_example_figure.png
    01_example_figure.tex  # Caption file
    
  2. 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}
    
  3. Supported formats: PNG, JPEG, PDF, SVG, TIFF, Mermaid (.mmd)

Tables
  1. Place CSV + caption in 01_manuscript/contents/tables/caption_and_media/:

    01_example_table.csv
    01_example_table.tex  # Caption file
    
  2. CSV auto-converts to LaTeX table format

  3. 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 guidelines
  • introduction.md - Introduction structure
  • methods.md - Methods section format
  • discussion.md - Discussion framework
  • proofreed.md - Proofreading checklist

SciTeX
AGPL-3.0 · ywatanabe@scitex.ai

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)

Source distribution for sciwriter 0.1.4
File Size Uploaded Provenance
sciwriter-0.1.4.tar.gz 104.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for sciwriter 0.1.4
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files No provenance

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