loopgrade
Autonomous dependency upgrader powered by LangGraph and LLMs.
Upgrades your dependencies one at a time, runs your tests, reverts what breaks — without you touching anything.
The Problem
Running ncu -u or pip install --upgrade upgrades everything
at once. When something breaks you have no idea which package
caused it. So you don't upgrade. Deps rot. Security patches pile up.
loopgrade fixes this — one dependency at a time.
How It Works
- Detects all outdated dependencies
- Picks one, checks for version conflicts before touching any file
- Upgrades it, runs your tests
- Tests pass → keeps the change, moves to next dep
- Tests fail → reverts the file automatically, logs the reason
- Gives you a full report of what upgraded, what failed, and why
Installation
pip install loopgrade
Prerequisites:
- Python 3.10+
- For npm projects:
npm install -g npm-check-updates - A Groq or Gemini API key (both have free tiers)
Quick Start
cd your-project
loopgrade init
# add your API key to .env
loopgrade run
Supported Package Managers
- npm (
package.json) - pip (
requirements.txt)
Configuration
{
"llm_provider": "groq",
"model": "llama-3.3-70b-versatile",
"max_iterations": 20,
"max_retries_per_dep": 3,
"package_manager": "npm",
"test_command": "npm test",
"skip_major_versions": false,
"skip": []
}
Links
- GitHub: https://github.com/Sagar-S-R/loopgrade
- Groq API: https://console.groq.com
- Gemini API: https://aistudio.google.com
Release files for loopgrade 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| loopgrade-0.1.2.tar.gz | 24.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| loopgrade-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.9 kB
Release files / loopgrade-0.1.2.tar.gz
| Download URL | loopgrade-0.1.2.tar.gz |
|---|---|
| Size | 24.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c6d3ccc2ac4060b41257e083d223dc689ea77d51b00d19d6ad340ac8d698bd4c
|
|
BLAKE2b-256 checksum How to use checksums |
ee0262fb650065d6f19b32542a5768d2df427e6c1d1fd4451834b00aeb94de69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.1
|
Release files / loopgrade-0.1.2-py3-none-any.whl
| Download URL | loopgrade-0.1.2-py3-none-any.whl |
|---|---|
| Size | 29.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b8876f7d9486e4012517c17bf611471eaf7d0b465d056371e4afec19b6b8fcc3
|
|
BLAKE2b-256 checksum How to use checksums |
64c6355037597f75f658e857bac9ebb02401f298340f0632865928389bf9ebe2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.1
|