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.2.tar.gz (17.5 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.2-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

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

Hashes for linksaver-3.0.2.tar.gz
Algorithm Hash digest
SHA256 ea1176d884ccf072d68fa6103581257f360e4c1a3b8325ae16682d05300fa929
MD5 03c11238a3f6ed583cde75a913f7dae7
BLAKE2b-256 3b346be2b99b8c79164d086f7bef174d8550beb85e19115f34f8e83dbbeb734f

See more details on using hashes here.

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

Hashes for linksaver-3.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 33b615040c8dfe5fa1a81d6ef69c31896b02266dd9835f1babbabdba4545e353
MD5 dec6c854e1f886d7d206989fc2f69bc2
BLAKE2b-256 4a6ec15032cac07db74b8cd82a9d9c58a65a1efdbbeb263d1e862aa432c940e2

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