Skip to content
ryotwellPublic

About

MayaXL - CLI tool untuk mengelola nomor XL prepaid - OTP login, cek kuota, beli paket, redeem poin, bayar via saldo/e-wallet/QRIS dengan teknik decoy. Data disimpan lokal di SQLite, komunikasi dengan API XL Axiata.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MayaXL - XL Manager CLI

A CLI tool for managing XL prepaid numbers: OTP login, quota checking, package purchases, point redemption, and payments via balance/e-wallet/QRIS including decoy techniques.

All data including saved numbers, OTP tokens, decoy data, and transaction history is stored locally in a SQLite database on your device. Nothing is sent to external servers beyond what's required for XL API interactions. Your data stays with you.


Features

Menu Feature Description
1 Active Number Dashboard View active number dashboard: profile, balance, tiering, active packages, history, point redemption, notifications, and package purchases
2 Select Active Number Switch between saved numbers
3 Login New Number Login with a new XL number via OTP (send OTP, enter OTP code)
4 Delete Number Remove a number from the saved list
5 Decoy Management CRUD operations for decoy data: view, add, edit, delete, reset to defaults
6 Exit Exit the application

Dashboard (Menu 1)

Once an active number is selected, the dashboard provides these sub-menus:

Sub-menu Feature
History View transaction history
Redeem Search & redeem items using reward points
Active Packages View active package quotas
Notifications View notifications
Buy via Option Code Purchase a package by entering an option code directly, choose payment method
Buy via Family Code Search for packages via family code, select variant & payment method
Buy All Family Purchase all packages within a family code via balance+decoy
Validate MSISDN Validate number via Family Plan API
Family Code List View & search available family codes (server-side data, encrypted)
Option Code List View, search & browse packages by option code (server-side data, encrypted)

Payment Methods

Method Description
Balance Pay using prepaid balance
E-Wallet Pay via DANA, GoPay, ShopeePay, or OVO
QRIS Pay via QRIS
Balance + Decoy Pay via balance using decoy technique (standard)
Balance + Decoy V2 Pay via balance using decoy technique V2 (with decoy confirmation token)
QRIS + Decoy Pay via QRIS with decoy technique (+1K)
QRIS + Decoy V2 Pay via QRIS with decoy technique V2
Balance Nx Pay via balance in multiple installments (in development)
Payment Method Prio Decoy Name Reguler Decoy Name
PulsaDecoy PRIO PASS XL PASS
PulsaDecoyV2 PRIO PASS XL PASS
QRISDecoy Conference Apps Quota Xtra Combo Plus 2GB
QRISDecoyV2 Conference Kuota Aplikasi BIZ 2GB
Payment Method Prio Decoy ID Reguler Decoy ID
PulsaDecoy 4 1
PulsaDecoyV2 4 1
QRISDecoy 5 2
QRISDecoyV2 5 3

How It Works

  1. Login: Enter an XL number → the application sends an OTP to that number → enter the OTP code → token is stored in a local SQLite database
  2. Select Active Number: If you have multiple saved numbers, pick one to use
  3. Dashboard: Displays active number information and provides access to various transaction features
  4. Purchase: Select a package → choose a payment method → confirm
  5. Decoy: A purchase technique that adds inexpensive "decoy" items to a single multipayment request in order to manipulate the total transaction amount

Installation

MayaXL is distributed as a pre-compiled binary via GitHub Releases. The installer scripts automatically detect your platform, download the correct binary along with database migrations, and set up everything needed to run the CLI.

Prerequisites: curl and sudo (Linux/macOS only for PATH update), or a Bash-compatible shell. No Node.js, Python, or Go runtime required the binary is self-contained.


Linux / macOS

The installer downloads the binary to ~/.local/bin/mayaxl, extracts database migration files alongside it, and optionally adds ~/.local/bin to your PATH via your shell RC file (.bashrc or .zshrc).

Supported Architectures Binary Name
Linux x86_64 mayaxl-linux-x64
Linux ARM64 (aarch64) mayaxl-linux-arm64
macOS Intel (x86_64) mayaxl-darwin-x64
macOS Apple Silicon (ARM64) mayaxl-darwin-arm64

Fresh install:

bash <(curl -fsSL https://raw.githubusercontent.com/ryotwell/mayaxl/main/install.sh)

After installation, run the tool with:

mayaxl

Update to the latest version:

bash <(curl -fsSL https://raw.githubusercontent.com/ryotwell/mayaxl/main/install.sh) update

The updater checks the installed version and only downloads the binary when a newer release exists. Your database and configuration are preserved.

Uninstall:

bash <(curl -fsSL https://raw.githubusercontent.com/ryotwell/mayaxl/main/install.sh) uninstall

This removes the binary, version file, and drizzle migrations. The SQLite database is kept by default delete it manually if desired:

  • Linux: ~/.local/share/mayaxl
  • macOS: ~/Library/Application Support/mayaxl

Termux (Android ARM64)

The Termux installer works similarly to the Linux one but handles the additional requirements for running a glibc-linked binary on Termux's bionic-based environment.

Note: Only ARM64 (aarch64) devices are supported.

Fresh install:

bash <(curl -fsSL https://raw.githubusercontent.com/ryotwell/mayaxl/main/install-termux.sh)

Update:

bash <(curl -fsSL https://raw.githubusercontent.com/ryotwell/mayaxl/main/install-termux.sh) update

Uninstall:

bash <(curl -fsSL https://raw.githubusercontent.com/ryotwell/mayaxl/main/install-termux.sh) uninstall

Removes the binary (mayaxl.bin), wrapper script (mayaxl), version file, and migrations. The SQLite database at ~/mayaxl.db is retained.


Windows (PowerShell)

The PowerShell installer places the binary in %LOCALAPPDATA%\mayaxl\mayaxl.exe and adds this directory to the user-level PATH environment variable.

Fresh install:

irm https://raw.githubusercontent.com/ryotwell/mayaxl/main/install.ps1 | iex

After installation, open a new terminal and run:

mayaxl

Update:

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/ryotwell/mayaxl/main/install.ps1))) update

Uninstall:

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/ryotwell/mayaxl/main/install.ps1))) uninstall

Removes the binary, version file, and migrations. The SQLite database at %APPDATA%\mayaxl is kept. The user-level PATH entry is cleaned up automatically.

About

MayaXL - CLI tool untuk mengelola nomor XL prepaid - OTP login, cek kuota, beli paket, redeem poin, bayar via saldo/e-wallet/QRIS dengan teknik decoy. Data disimpan lokal di SQLite, komunikasi dengan API XL Axiata.

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages