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-0.1.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-0.1.0-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: linksaver-0.1.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-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a93f0383e108d881686b30b78f8a3dad5e8ee0257063f0d10bbd8676bba8d3d0
MD5 0d0ebf665a34b8c5f4e608934798a1b5
BLAKE2b-256 235c3cc2d17198b374e5549c009927cfb7f4f05cef16e4290eebbbef6d72e95b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: linksaver-0.1.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-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8d49232fd25e785f8e66ec11db0cbab74d610fb89f0e7a5aaef3fc4ef5d7320f
MD5 7a64fa44002a93558f17b438ba9c932a
BLAKE2b-256 e16e893a9b92a888b472949ca313a86eb99cf905d2956b85d1b4e588a39770b5

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