Skip to main content

reqsync

Keep your requirements.txt (and included requirement files) synced to what is actually installed — fast, safe, and low-effort.

Built for the "I just want my requirements file updated" workflow.

PyPI Version Python Versions CI Status License


What reqsync is

reqsync reads your active environment and rewrites requirement specifiers so files reflect what you're currently running.

  • Preserves comments, extras, markers, and line endings.
  • Follows -r includes.
  • Skips -c constraints unless you opt in.
  • Uses backups + atomic writes.

What reqsync is not

  • Not a lockfile manager.
  • Not a dependency solver replacement.
  • Not a hash-regenerator for --hash pinned lines.

Install

pip install reqsync

Optional extras:

pip install "reqsync[mcp]"      # built-in MCP server support
pip install "reqsync[pretty]"   # optional pretty ecosystem deps

Quick start

# 1) Preview only (no writes)
reqsync run --no-upgrade --dry-run --show-diff

# 2) Apply updates
reqsync run --show-diff

# 3) CI drift gate (fails if changes needed)
reqsync run --check --no-upgrade

Before / after example

# before
requests>=2.30.0
pydantic>=2.5.0

# after (installed env has requests 2.32.3, pydantic 2.7.0)
requests>=2.32.3
pydantic>=2.7.0

Terminal demos

Quick sync preview (--dry-run --show-diff)

Quick sync preview demo

CI check mode (--check --no-upgrade)

Check mode demo


Integration Guide

Standalone usage

reqsync run --path requirements.txt
reqsync run --path requirements/base.txt --follow-includes

Agentic / MCP usage

# MCP server (stdio)
reqsync mcp

# or dedicated entrypoint
reqsync-mcp

Python API (tool-friendly)

from reqsync.api import run_sync_payload

result = run_sync_payload(
    {
        "path": "requirements.txt",
        "dry_run": True,
        "no_upgrade": True,
        "show_diff": True,
        "policy": "lower-bound",
    }
)
print(result["changed"])
print(result["changes"])

Core commands

reqsync run [OPTIONS]
reqsync help [all|run|version|mcp]
reqsync --version
reqsync version
reqsync mcp [--transport stdio|sse|streamable-http]

Most-used options:

  • --path
  • --no-upgrade
  • --dry-run
  • --check
  • --show-diff
  • --output human|json|both
  • --json-report <file>
  • --backup-keep-last <n> (default 5)
  • --policy lower-bound|floor-only|floor-and-cap|update-in-place

Help discoverability:

reqsync help all
reqsync run --help
reqsync mcp --help

Common workflows

# quick local refresh
reqsync run --show-diff

# no network / no pip upgrade
reqsync run --no-upgrade --dry-run --show-diff

# machine output for tools/models
reqsync run --no-upgrade --dry-run --output json

# update constraints too
reqsync run --path requirements/base.txt --update-constraints

Output shape (for models/tools)

--output json or Python API returns structured keys:

  • changed
  • files (with role, changed, change_count)
  • changes (file, package, installed_version, old_line, new_line)
  • backup_paths
  • diff

Safety model

  • Blocks outside virtualenv unless --system-ok.
  • Blocks hash-pinned files unless --allow-hashes.
  • Optional dirty-repo guard via --allow-dirty.
  • Lock + backup + atomic write for safer file operations.
  • Timestamped backups are auto-pruned (keep latest 5 per file by default).

Docs


Author & Links

Created by: Roy Dawson IV
GitHub: https://github.com/imyourboyroy
PyPi: https://pypi.org/user/ImYourBoyRoy/

Project repo: https://github.com/ImYourBoyRoy/reqsync


License

MIT — see LICENSE.

Metadata

Release files for reqsync 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reqsync 0.1.5
File Size Uploaded
reqsync-0.1.5.tar.gz 28.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for reqsync 0.1.5
File Interpreter ABI Platform
reqsync-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 55.4 kB

Release files / reqsync-0.1.5.tar.gz

Download URL reqsync-0.1.5.tar.gz
Size 28.2 kB
Tags Source
SHA-256 checksum
How to use checksums
05320ac484ec746382c1115dafcc6169fb2a170cd5a5eebf6b2cdf189308493d
BLAKE2b-256 checksum
How to use checksums
dcc798b3dbaae2fa90bf9be739bdd119ab8e6bcd3e9e38c1bc81b6f87c137828
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 23, 2026.

Transparency log

Release files / reqsync-0.1.5-py3-none-any.whl

Download URL reqsync-0.1.5-py3-none-any.whl
Size 27.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9780f49eb63024e353af5df78d554747dd413640deed02d95e4b32451535a48
BLAKE2b-256 checksum
How to use checksums
6a8c4624c124bb7cf65119c64ed6d82c93355e8f395fdf7e2afb640c36d38086
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

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