003random
getJS
Go

A tool to fastly get all javascript sources/files

Last updated Jul 3, 2026
882
Stars
118
Forks
3
Issues
0
Stars/day
Attention Score
38
Language breakdown
Go 100.0%
Files click to expand
README

JavaScript Extraction CLI & Package

This is a powerful tool for extracting JavaScript sources from URLs and web pages / HTTP responses. It offers a command-line interface (CLI) for straightforward URL processing and a package interface for custom integrations, making it ideal for pentesters, bug bounty hunters, and developers needing to extract JS sources efficiently.

Table of Contents

- Options - Examples - Importing the Extractor - Example

Installation

To install getJS, use the following command:

go install github.com/003random/getJS/v2@latest

CLI Usage

Options

getJS provides several command-line options to customize its behavior:

  • -url string: The URL from which JavaScript sources should be extracted.
  • -input string: Optional URLs input files. Each URL should be on a new line in plain text format. Can be used multiple times.
  • -output string: Optional output file where results are written to. Can be used multiple times.
  • -complete: Complete/Autofill relative URLs by adding the current origin.
  • -resolve: Resolve the JavaScript files. Can only be used in combination with --complete.
  • -threads int: The number of processing threads to spawn (default: 2).
  • -verbose: Print verbose runtime information and errors.
  • -method string: The request method used to fetch remote contents (default: "GET").
  • -header string: Optional request headers to add to the requests. Can be used multiple times.
  • -timeout duration: The request timeout while fetching remote contents (default: 5s).

Examples

Extracting JavaScript from a Single URL

getJS -url https://destroy.ai

or

curl https://destroy.ai | getJS

Using Custom Request Options

getJS -url "http://example.com" -header "User-Agent: foo bar" -method POST --timeout=15s

Processing Multiple URLs from a File

getJS -input foo.txt -input bar.txt

Saving Results to an Output File

getJS -url "http://example.com" -output results.txt

Package Usage

Importing the Extractor

To use getJS as a package, you need to import the extractor package and utilize its functions directly.

Example

package main

import ( "fmt" "log" "net/http" "net/url"

"github.com/003random/getJS/extractor" )

func main() { baseURL, err := url.Parse("https://google.com") if (err != nil) { log.Fatalf("Error parsing base URL: %v", err) }

resp, err := extractor.FetchResponse(baseURL.String(), "GET", http.Header{}) if (err != nil) { log.Fatalf("Error fetching response: %v", err) } defer resp.Body.Close()

// Custom extraction points (optional). extractionPoints := map[string][]string{ "script": {"src", "data-src"}, "a": {"href"}, }

sources, err := extractor.ExtractSources(resp.Body, extractionPoints) if (err != nil) { log.Fatalf("Error extracting sources: %v", err) }

// Filtering and extending extracted sources. filtered, err := extractor.Filter(sources, extractor.WithComplete(baseURL), extractor.WithResolve()) if (err != nil) { log.Fatalf("Error filtering sources: %v", err) }

for source := range filtered { fmt.Println(source.String()) } }

Version Information

This is the v2 version of getJS. The original version can be found under the tag v1.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any bugs, feature requests, or improvements.

License

This project is licensed under the MIT License. See the LICENSE file for details.

🔗 More in this category

© 2026 GitRepoTrend · 003random/getJS · Updated daily from GitHub