Skip to content
This repository was archived by the owner on Dec 21, 2025. It is now read-only.

klemjul/fremen

Fremen

⚠️ ARCHIVED: This project is no longer maintained. We recommend using OSV Scanner instead, which provides comprehensive vulnerability scanning across multiple ecosystems with active support and regular updates.

A fast, parallelized security scanner for detecting infected packages in lockfiles.

Table of Contents

About

Fremen is a security tool designed to scan your project's lockfiles for known malicious package versions. It helps protect your supply chain by identifying compromised dependencies before they are installed or deployed.

It currently supports:

  • npm (package-lock.json)
  • Yarn (yarn.lock)
  • pnpm (pnpm-lock.yaml)

Fremen is designed for performance, utilizing parallel execution to scan large directories and monorepos efficiently.

Built with

Acknowledgments

  • This project is based on the work of Cobenian/shai-hulud-detect.
  • It uses the same database format for identifying vulnerable package versions.

Disclaimer

This tool is developed and tested primarily on UNIX-like systems (Linux, macOS). The code has been written with the help of AI tools.

Getting started

Prerequisites

  • Go 1.25+ installed on your system. You can download it from go.dev.

Installation

  1. Download the binary from the Releases page

  2. Download or create a database.txt file containing the list of infected packages. By default, Fremen looks for database.txt where the script is located.

Using

Run the scanner against your project directories:

./fremen [paths...]

Common Options

  • Recursive Scan: Scan the current directory and all subdirectories.

    ./fremen -r
  • Include Ignored Directories: By default, .git and node_modules are ignored. You can include them if needed:

    ./fremen -r --include-git --include-node-modules
  • Specify Database: Use a custom database file.

    ./fremen -d /path/to/database.txt
  • Full Report: Show all projects, including clean ones.

    ./fremen --full-report
  • JSON Output: Generate a machine-readable JSON report.

    ./fremen --json

For a full list of options, run:

./fremen --help

Contributing

Bug reports, feature requests, other issues and pull requests are welcome. See CONTRIBUTING.md for more information.

License

Distributed under the MIT License. See LICENSE for more information.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors