Skip to main content

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

linksaver-3.0.0.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

linksaver-3.0.0-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

Details for the file linksaver-3.0.0.tar.gz.

File metadata

  • Download URL: linksaver-3.0.0.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.2

File hashes

Hashes for linksaver-3.0.0.tar.gz
Algorithm Hash digest
SHA256 cd832ee397e66d28e9ba118a5041bd2c5a4e78ae776dbe0e57cae23c10375e65
MD5 0937f4fc633df905df68bfa7fc40f48f
BLAKE2b-256 f3a49f37a48306da51fa9912f66a86f041ca1d99c34941f26e1607645574759d

See more details on using hashes here.

File details

Details for the file linksaver-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: linksaver-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 14.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.2

File hashes

Hashes for linksaver-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f5731031f7251a026acd940b093c30f1bee3ccc19cf500dd6e3772add7148b7b
MD5 0f0a5720098f4294730e96a216a03f26
BLAKE2b-256 3e8e5d44a3ac30e6fd89796d9714f7d1bc9a42542924f7fd169e756bef798a5e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page