Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

android-security-engineer/apkpure-skills

Open more actions menu

Repository files navigation

apkpure

CLI & SDK to search, inspect, and download Android APKs/XAPKs from APKPure — zero config, proxy auto-detected.

License: MIT Node.js >=20

apkpure search telegram

No install, no setup. Works behind GFW out of the box.


Install

Claude Code (Recommended)

# Add the marketplace
claude plugin marketplace add android-security-engineer/apkpure-skills

# Install the plugin
claude plugin install apkpure@apkpure-skills

This installs the apkpure skill with 24 built-in workflows, slash commands, and auto-detection — directly inside Claude Code.

From Source

git clone https://github.com/android-security-engineer/apkpure-skills.git
cd apkpure-skills
npm install && npm run build

# Use the CLI directly
node dist/cli.js search telegram

Note: The npm package name apkpure is already taken by another project. npm install -g apkpure and npx apkpure will install a different, unrelated package. Use the Claude Code skill installation or build from source instead.


Quick Start

After installing as a Claude Code skill, use the /apkpure command:

/apkpure search telegram

Or use the CLI directly if building from source:

# Search
node dist/cli.js search "whatsapp"
node dist/cli.js search "微信" --page 2

# Get app details
node dist/cli.js info com.whatsapp

# List all versions
node dist/cli.js versions org.telegram.messenger

# Download latest APK/XAPK
node dist/cli.js download com.whatsapp

# Download a specific version
node dist/cli.js download org.telegram.messenger -v 10.5.1

# Download to a custom directory
node dist/cli.js download com.whatsapp -o ~/Downloads

# Output as JSON (for scripting)
node dist/cli.js search telegram --json
node dist/cli.js info com.whatsapp --json

CLI Reference

Global Options

Option Description Default
-m, --mode <mode> API mode: api, scraping, or auto auto
-p, --proxy <url> HTTP proxy URL auto-detected
-j, --json Output raw JSON

Commands

search <query>

Search for apps on APKPure.

apkpure search "telegram"
apkpure search "微信" --page 2 --json
Option Description Default
--page <num> Page number 1

info <package>

Get detailed information about an app.

apkpure info com.whatsapp
apkpure info org.telegram.messenger --json

download <package>

Download an APK or XAPK file.

apkpure download com.whatsapp
apkpure download org.telegram.messenger -v 10.5.1 -o ~/Downloads
Option Description Default
-o, --output <dir> Output directory ~/.apkpure/downloads
-v, --version <ver> Specific version to download latest

versions <package>

List all available versions of an app.

apkpure versions org.telegram.messenger

trending

List trending apps.

apkpure trending

Workflows

24 built-in workflows for common multi-step operations. Each workflow chains multiple SDK calls into a single command.

Listing Workflows

apkpure workflows

Running a Workflow

apkpure workflow download-by-name --query "Telegram"

Available Workflows

Search-based (input app name, no package name needed)

Workflow Input Description
download-by-name -q <name> Search by name, download best match
search-and-download -q <query> Search and download, return composed result
search-and-info -q <query> Search and get detailed info in one call
search-and-report -q <query> Search + info + versions without package name
search-intelligence -q <query> Search + deep intelligence report
quick-lookup -q <query> Search + return key metadata only
explore-category -q <query> Search + structured app listing

Package-based (input package name)

Workflow Input Description
app-report -p <package> Full info + all available versions
download-latest -p <package> Download latest with app metadata in result
download-version -p <pkg> -v <ver> Download a specific version
download-oldest -p <package> Download oldest version for vuln research
verify-and-download -p <package> Verify app exists before downloading
download-and-verify -p <package> Download + return SHA256 for integrity check
info-and-versions -p <package> Get info + all versions
validate-package -p <package> Check if package exists on APKPure

Intelligence & Analysis

Workflow Input Description
app-intelligence -p <package> Deep report: info + versions + file types + range
version-audit -p <package> Version comparison table for diff analysis
compare-versions -p <package> Version jump analysis for diff targeting
check-update -p <pkg> --current-version Check if update available
security-scan -p <package> Download + version analysis for vuln research

Batch & Discovery

Workflow Input Description
batch-download --packages <csv> Download multiple apps at once
batch-info --packages <csv> Get info for multiple apps
batch-validate --packages <csv> Validate multiple package names
trending-and-info List trending apps

Programmatic Workflows

import { runWorkflow, listWorkflows } from "apkpure";

// List available workflows
const workflows = listWorkflows();

// Run a workflow
const result = await runWorkflow("download-by-name", {
  query: "Telegram",
}, { outputDir: "/tmp/apks" });

if (result.success) {
  const output = result.output as {
    app: string;
    packageName: string;
    version: string;
    filePath: string;
    sha256: string;
  };
  console.log(`Downloaded ${output.app} to ${output.filePath}`);
}

Note: Programmatic import (import from "apkpure") requires building from source and referencing the local package. It is not available via the npm registry.


Proxy Auto-Detection

Works behind GFW without any configuration. The SDK auto-detects proxy settings in this order:

  1. Environment variables: HTTPS_PROXY, HTTP_PROXY, ALL_PROXY (case-insensitive, including lowercase variants)
  2. Clash config: Reads mixed-port from Clash/Mihomo config directories
  3. Port scan: Checks common proxy ports (7897, 7890, 1080, 1087, 10809, etc.) on localhost

Override with --proxy flag if auto-detection fails:

apkpure search telegram --proxy http://127.0.0.1:7890

Programmatic SDK

Use as a Node.js library (requires building from source):

import { ApkPure } from "apkpure";

const sdk = new ApkPure({ mode: "auto" });

// Search
const { apps } = await sdk.search("telegram");

// Get app details
const detail = await sdk.getInfo("org.telegram.messenger");

// Download
const result = await sdk.download("com.whatsapp", {
  outputDir: "/path/to/downloads",
  version: "2.24.5",  // optional, defaults to latest
  onProgress: (downloaded, total) => {
    console.log(`${(downloaded / total * 100).toFixed(1)}%`);
  },
});
console.log(`Downloaded: ${result.filePath}`);
console.log(`SHA-256: ${result.sha256}`);

// List versions
const versions = await sdk.getVersions("org.telegram.messenger");

Note: Programmatic import requires building from source and referencing the local package. The apkpure name on npm is an unrelated package.


AI Agent Integration

Built-in skill handler for AI agents (Claude, GPT, etc.):

import { handleSkillRequest } from "apkpure";

const result = await handleSkillRequest({
  action: "download",
  package: "com.whatsapp",
  outputDir: "/tmp/apks",  // optional, defaults to ~/.apkpure/downloads
});

Supported actions: search, info, download, versions, trending, workflow, list-workflows.


SDK Types

interface AppInfo {
  packageName: string;
  name: string;
  version: string;
  versionCode?: number;
  size?: number;
  iconUrl?: string;
  description?: string;
  developer?: string;
  rating?: string;
  category?: string;
}

interface AppDetail extends AppInfo {
  downloadUrl: string;
  fileType: "apk" | "xapk" | "apks";
  screenshots?: string[];
  updateDate?: string;
  requiresAndroid?: string;
  olderVersions?: AppVersion[];
}

interface AppVersion {
  version: string;
  versionCode: number;
  downloadUrl: string;
  fileSize?: string;
  type: "apk" | "xapk" | "apks";
}

interface DownloadOptions {
  outputDir: string;
  version?: string;
  fileName?: string;
  onProgress?: (downloaded: number, total: number) => void;
}

interface DownloadResult {
  filePath: string;
  packageName: string;
  version: string;
  fileType: string;
  fileSize: number;
  sha256: string;
}

License

MIT

About

CLI & SDK to search, inspect, and download Android APK/XAPKs from APKPure — dual-mode (API + scraping), proxy auto-detected, AI-agent ready

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.