Skip to main content

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

Release files for linksaver 3.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for linksaver 3.0.3
File Size Uploaded
linksaver-3.0.3.tar.gz 17.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for linksaver 3.0.3
File Interpreter ABI Platform
linksaver-3.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 36.1 kB

Release files / linksaver-3.0.3.tar.gz

Download URL linksaver-3.0.3.tar.gz
Size 17.9 kB
Tags Source
SHA-256 checksum
How to use checksums
89f28728cb4a6ceb02488357f4c68336cf3e7df7c054a13c37ef260907676336
BLAKE2b-256 checksum
How to use checksums
97cbd5a89cdad53b15d59c81859719b981eeda7c7883619374706d7c03e999ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.2

Release files / linksaver-3.0.3-py3-none-any.whl

Download URL linksaver-3.0.3-py3-none-any.whl
Size 18.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a12a391b5abbc9365d77ef0cd955a37d89c13c725148662dba8bc40f1d08585
BLAKE2b-256 checksum
How to use checksums
80b3603967418b5f81618a1620f3af9af54f32f625798fd416b6651efff926cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.2

Release history Release notifications | RSS feed

This release

3.0.3 This release

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page