AI-powered agentic dependency manager that analyzes changelogs and safely upgrades packages.
Project description
Anvil - An Agentic Dependency Manager
Anvil is an AI-powered dependency upgrade system that autonomously analyzes, reasons about, and applies package updates.
Features
✧ Autonomous upgrade analysis with AI-powered reasoning
✧ Multi-format support: requirements.txt, poetry, uv, and conda environments
✧ Breaking change prediction and mitigation strategies
✧ Safe rollback on failure
✧ Changelog forensics to understand what's changing
Installation
Recommended: Install via pipx for isolation.
pipx install anvil-py
Or with pip (not recommended as it may conflict with project dependencies):
pip install anvil-py
Configuration
Anvil requires an LLM to perform AI analysis. You have two options:
Option 1: Local Ollama (Free)
Install and run Ollama locally:
# Install Ollama, then pull a model
ollama pull llama3.2
Anvil will automatically use Ollama if it's running on localhost:11434.
Option 2: OpenAI API
Set your OpenAI API key:
export OPENAI_API_KEY="sk-..."
Anvil will use OpenAI's models for analysis when the API key is present.
Quick Start
Go to your project directory (supports pip, poetry, or uv) and run:
anvil upgrade
Anvil will:
- Detect your dependencies.
- Check for updates.
- Fetch changelogs & perform AI Forensic Analysis.
- Safely Trial Install, Test, and Commit upgrades.
Usage
Interactive Upgrade (Recommended)
The main way to use Anvil is the interactive wizard:
anvil upgrade
Analysis Only (Dry Run)
If you just want to see what packages are outdated and read their changelogs without making changes:
anvil check .
Check Version
anvil version
Development
If you want to contribute to Anvil:
Check out TODO.md for a list of planned features and improvements you can help with! Other contributions are also welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
# Run tests
pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anvil_py-0.1.0.tar.gz.
File metadata
- Download URL: anvil_py-0.1.0.tar.gz
- Upload date:
- Size: 86.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7332d74548907b831712b8daca019f4a7e1e3c839ea7acce5ad2849d3981d10c
|
|
| MD5 |
c4523d727cd5e94c15d32baac4c49028
|
|
| BLAKE2b-256 |
b2b7bbe6174a077635a8480be963b8831d6a9641597452272be6f6b9ce4a580e
|
File details
Details for the file anvil_py-0.1.0-py3-none-any.whl.
File metadata
- Download URL: anvil_py-0.1.0-py3-none-any.whl
- Upload date:
- Size: 31.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23e908fe2d1dd5dc8d1055c7e4dc35ac8189c74934333f831209bcd9512bf056
|
|
| MD5 |
412bd72b50316b3ad4eee2e8d21a2688
|
|
| BLAKE2b-256 |
5193d15ecde69029511599f918d568cd75e8d03dbc88490555d24f72222f3ce4
|