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

Uploaded Python 3

File details

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

File metadata

  • Download URL: linksaver-3.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 f071d787fb233f4c3debe738a6d9a97a881b4e69fad6bf427f7c175f53c6b371
MD5 7992ccf7121062dc1bee5f06e99672dc
BLAKE2b-256 5e924506a58e8e5cf16c28c8968234821179121665b30b0111b1e11ec857578c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: linksaver-3.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e49aa804e9c1b165eb67f79c03cb0dea0fd4111df53181f6812a6cc1daa3b274
MD5 5324d66d9d7bd68a396d705fd66d8356
BLAKE2b-256 b852a36b504520173a3a05bdb936484ad0561db99531f52ec44e46e602eb9583

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