Local-first dependency decision CLI for JS/TS projects
Project description
🚀 Depsly
Depsly is a local-first dependency decision CLI for JavaScript/TypeScript projects.
It helps you answer:
- What dependencies actually matter?
- What should I review first?
- Why is this transitive package even here?
- What happens if I remove something?
🧠 Why Depsly
Most dependency tools focus on:
- vulnerabilities
- compliance
- audit reports
Depsly focuses on:
Decision-making
It combines:
- dependency graph analysis
- structural impact simulation
- feasibility-aware recommendations
So you can decide where to spend your time.
✨ What Depsly Does
- Builds a full dependency graph from
package-lock.json - Analyzes structural risk (depth, fanout, transitive exposure)
- Ranks dependencies by impact × actionability
- Explains why transitive dependencies exist
- Simulates structural impact of removing packages
- Runs entirely locally (no code upload required)
⚡ Install
Recommended (pipx)
pipx install depsly
If needed:
pipx install --python python3.11 depsly
Alternative (pip)
pip install depsly
🚀 Quick Start
Analyze your dependency graph
depsly analyze package-lock.json
Get prioritized recommendations
depsly recommend package-lock.json
Trace why a package exists
depsly trace package-lock.json @babel/core@7.29.0
Preview structural impact of removal
depsly simulate-remove package-lock.json eslint@9.39.4
🧪 Example Output
Depsly Recommendations
Project: frontend
Packages analyzed: 204
1. eslint@9.39.4
Action: REVIEW
Actionability: MEDIUM
Reason confidence: HIGH
Impact: 35%
Classification: Direct (dev dependency)
Why:
- Direct dev dependency (user-controlled)
- Structural impact: 35% (71 packages)
🧭 How to Read the Output
Action
What Depsly suggests:
- REVIEW → investigate before changing
- REMOVE → strong candidate to remove
- TRACE_UPSTREAM → change parent dependency instead
- DEFER → low priority
Actionability
How easy it is to change:
- HIGH → easy to modify
- MEDIUM → moderate effort
- LOW → difficult or risky
Impact
Percentage of your dependency graph affected.
Reason confidence
How strong the structural signal is:
- HIGH → direct + clear signals
- MEDIUM → inferred from structure
- LOW → limited information
🔁 Typical Workflow
analyze → recommend → trace → simulate-remove
⚠️ Important
Structural analysis only.
Does not guarantee install, build, or runtime correctness.
🔐 Why Local-First Matters
- No source code upload
- No account required
- No rate limits
- Fully deterministic
🎯 Philosophy
Depsly is not a scanner.
It is a:
Dependency decision support system
📚 Docs
Run the CLI help to explore all commands and options:
depsly --help
For command-specific help:
depsly analyze --help
depsly recommend --help
depsly trace --help
depsly simulate-remove --help
Example:
depsly recommend package-lock.json
🚧 Status
Early release (v0.1.3)
Core features are stable:
- analyze
- recommend
- recommend --json
- trace
- simulate-remove
💬 Feedback
If you try Depsly on your project, I’d love to hear:
- what felt useful
- what felt off
- what you expected but didn’t see
Email: info+depsly@convologix.com or open an issue on GitHub: https://github.com/sshiraz/depsly
Even a quick note or screenshot is incredibly helpful.
I read every message.
🏁 Summary
Depsly helps you move from:
“I have 200 dependencies…”
to:
“Here’s exactly what I should look at first.”
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 depsly-0.1.3.tar.gz.
File metadata
- Download URL: depsly-0.1.3.tar.gz
- Upload date:
- Size: 35.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fa6ccc4150e11898bc89badd507ac0766b4b4e1fda169036eeb7853a82d79da
|
|
| MD5 |
5592e7ebabba7139f01e094eaa9ca137
|
|
| BLAKE2b-256 |
8247b8ee1f17a99c64e4b1474d6613afa5eb23201b47858ff53e5cad9323ffd7
|
File details
Details for the file depsly-0.1.3-py3-none-any.whl.
File metadata
- Download URL: depsly-0.1.3-py3-none-any.whl
- Upload date:
- Size: 24.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbac6b0c721a0978b72b4dba9d024d12dd0d814a19407dd4a6ea39837dab205e
|
|
| MD5 |
acdf9f553ea935b7dcb79ee3de536b65
|
|
| BLAKE2b-256 |
54871e477c99a4bc800d2010b04aaedd8ad77fa4c46bdf0c27e5a0e90d4e469c
|