CLI tool to save project links, licenses and dependencies
Project description
Linksaver (l2)
Save, organize and document your project links, licenses and dependencies.
Linksaver is a command-line tool for developers who want to keep track of external resources used in their projects.
The CLI command is:
l2
Linksaver stores all information in a structured linksaver.json file and can generate Markdown and TXT documentation containing:
- Project links
- Credits
- Licenses
- License files
- Package dependencies
- Cargo dependencies
- Git submodules
Features
✅ Save project links
✅ Store author and license information
✅ Generate Markdown documentation
✅ Generate TXT license reports
✅ Import npm dependencies from package-lock.json
✅ Import Rust dependencies from Cargo.lock
✅ Manage Git submodules
✅ Open saved links in your browser
✅ JSON based configuration
✅ Cross-platform support
Supported platforms:
- Windows
- Linux
- macOS
Installation
Install from PyPI:
pip install linksaver
After installation:
l2 help
should work.
Quick Start
Initialize Linksaver in your project:
l2 init
Example:
Init Linksaver
Projectname: MyProject
Created config at linksaver.json
Your project now contains:
MyProject/
│
├── linksaver.json
└── .samengine/
├── links.info.md
└── links.info.txt
Basic Usage
Add a link
l2 add
Example:
Name:
SDL2
Author:
SDL Team
License:
zlib
New Link:
https://github.com/libsdl-org/SDL
Description:
Cross platform multimedia library
List saved links
l2 list
Example:
"SDL2"
https://github.com/libsdl-org/SDL
by SDL Team
licensed under zlib
Generate documentation
Generate Markdown:
l2 view
Creates:
.samengine/links.md
Generate TXT:
l2 viewx
Creates:
.samengine/links.txt
Dependency Tracking
npm / Node.js
Import dependencies from:
package-lock.json
Run:
l2 addpkg
Linksaver collects:
- Package name
- Version
- License
- npm URL
- Date
Example:
{
"name": "typescript",
"version": "5.x",
"license": "Apache-2.0"
}
Rust / Cargo
Import dependencies from:
Cargo.lock
Run:
l2 addcargo
Requires:
cargo fetch
Linksaver collects:
- Crate name
- Version
- License
- crates.io URL
Git Submodules
Linksaver can store and clone external repositories.
Add a submodule:
l2 addsubmodule
Clone all saved repositories:
l2 clonesubm
Example:
Cloning dependencies
wxWidgets source
Cloned wxWidgets successfully!
Finished cloning every submodule!
Configuration
The main configuration file:
linksaver.json
Example:
{
"projectname": "Example",
"pretty": true,
"links": [],
"linkspkglock": [],
"linkscargolock": [],
"settings": {
"selectmenu": false
},
"git": {
"submodules": []
}
}
Interactive Menu
Enable the menu system:
{
"settings": {
"selectmenu": true
}
}
Now running:
l2
opens an interactive menu.
Commands
| Command | Description |
|---|---|
help |
Show help |
init |
Create configuration |
add |
Add link |
add2 |
Add text entry |
add3 |
Add license file |
view |
Generate Markdown |
viewx |
Generate TXT |
list |
Show credits |
addpkg |
Import npm dependencies |
addcargo |
Import Cargo dependencies |
open |
Open all links |
addsubmodule |
Add Git submodule |
clonesubm |
Clone Git submodules |
Why Linksaver?
Many projects use external libraries, assets and tools but often forget to document them.
Linksaver helps with:
- Open source compliance
- Creating credits pages
- License documentation
- Dependency tracking
- Project maintenance
Development
Linksaver is written in:
Python
Main technologies:
- Python Dataclasses
- JSON
- pathlib
- subprocess
- Git integration
License
Linksaver is licensed under:
Apache License 2.0
Copyright:
ShadowDara 2026
Links
Documentation:
https://shadowdara.github.io/docs/#/linksaver
Version
Current version:
3.0.0
Made with ❤️ by ShadowDara
Project details
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 linksaver-3.0.2.tar.gz.
File metadata
- Download URL: linksaver-3.0.2.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea1176d884ccf072d68fa6103581257f360e4c1a3b8325ae16682d05300fa929
|
|
| MD5 |
03c11238a3f6ed583cde75a913f7dae7
|
|
| BLAKE2b-256 |
3b346be2b99b8c79164d086f7bef174d8550beb85e19115f34f8e83dbbeb734f
|
File details
Details for the file linksaver-3.0.2-py3-none-any.whl.
File metadata
- Download URL: linksaver-3.0.2-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33b615040c8dfe5fa1a81d6ef69c31896b02266dd9835f1babbabdba4545e353
|
|
| MD5 |
dec6c854e1f886d7d206989fc2f69bc2
|
|
| BLAKE2b-256 |
4a6ec15032cac07db74b8cd82a9d9c58a65a1efdbbeb263d1e862aa432c940e2
|