Skip to content
/ proxxi Public

Proxxi is a plugin-based CLI tool for fetching proxies. Choose your source, configure parameters, and get your proxy list.

License

Notifications You must be signed in to change notification settings

ImuS663/proxxi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

proxxi

proxxi is a .NET toolchain for fetching proxies from plugins and serializing them into multiple output formats.

Features

  • Plugin-based proxy sources (load providers via plugins)
  • Configurable data directory (supports environment-based configuration)
  • Multiple output formats:
    • Plain text
    • URL list
    • JSON / JSONL
    • CSV / TSV / PSV
    • XML

Requirements

  • .NET SDK 10.0+ (for building)

Installation

Option 1: Download a release attachment

Go to the GitHub Releases page and download the binary for your OS/architecture (e.g. linux-x64, win-x64, etc.).

Option 2: Build from source

git clone https://github.com/proxxi/proxxi.git
cd proxxi
dotnet restore
dotnet build -c Release --self-contained true -p:DebugType=embedded -o publish

CLI usage

The CLI provides afetch command that loads configured plugins, fetches proxies, and writes them in the chosen format.

Run

./proxxi --help

Fetch proxies (example)

./proxxi fetch publisher.plugin --output proxies.csv

Configuration

Proxxi data directory

Proxxi supports configuring its working directory via an environment variable.

export PROXXI_DIR="<PATH>"

(If your shell is PowerShell on Windows, use $env:PROXXI_DIR="...".)

Proxxi will initialize required directories/files on the first run.

Plugin configuration

You can manage plugins using the plugin command and its subcommands:

  • plugin <PLUGIN-ID> info - Show information about a plugin
  • plugin <PLUGIN-ID> alias [ALIAS] - Set or remove an alias for a plugin
  • plugin <PLUGIN-ID> enable - Enable a plugin
  • plugin <PLUGIN-ID> disable - Disable a plugin
  • plugin <PLUGIN-ID> parameter <NAME> [VALUE] - Set or remove a parameter for a plugin
  • plugin <PLUGIN-ID> parameters - List parameters for a plugin

You can also use the plugins command to list all installed plugins.

Output formats

Proxxi can write proxies in several formats depending on command options:

  • plain (one proxy per line)
  • url (URL-style entries)
  • json, jsonl
  • csv, tsv, psv
  • xml

Plugins

Creating plugins

To create Proxxi plugins, use the official plugin SDK as the base:

Plugins overview

A plugin exposes one or more proxy sources, and the CLI orchestrates:

  1. locating/loading plugins
  2. validating parameters
  3. fetching proxies
  4. writing output using the selected writer

Adding plugins

For automatic adding plugins from .pxp package use the command:

./proxxi pack install <PATH_TO_PLUGIN_PACKAGE>.pxp

This command unpackage .pxp package in to the plugins directory, and register in the plugins configuration plugins.json.

Manual adding plugins

  1. Copy the plugin into the plugins directory. Typically, this is the plugin .dll plus any required dependency files that ship with it (keep every plugin in its own folder for simplicity and conflict prevention):
    cp -r <PLUGIN_FOLDER> "$PROXXI_DIR/plugins/"
  2. Register/enable the plugin in the plugins configuration plugins.json under the Proxxi directory.
    [
      {
        "id": "publisher.plugin",
        "path": "path/to/plugin/dll", // relative path from `$PROXXI_DIR/plugins/`
        "alias": "publisher", // optional
        "version": "1.0.0",
        "enabled": true,
        "params": {
          // plugin parameters if needed
          "param1": "value1",
          "param2": "value2"
        }
      }
    ]

Tip: If a plugin is not discovered, ensure the plugin and its dependencies are present in the plugins folder and that the plugin is added/enabled in the JSON config.

License

This project is licensed under the GNU General Public License v3.0 – see the LICENSE file for details.

About

Proxxi is a plugin-based CLI tool for fetching proxies. Choose your source, configure parameters, and get your proxy list.

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages