{"id":35739141,"url":"https://github.com/axpnet/aeroftp","last_synced_at":"2026-03-15T23:47:01.251Z","repository":{"id":332740929,"uuid":"1119622081","full_name":"axpnet/aeroftp","owner":"axpnet","description":"AeroFTP is a Cross-platform desktop client for FTP, FTPS, SFTP, WebDAV, S3-compatible storage, and Cloud providers, built with Tauri + React","archived":false,"fork":false,"pushed_at":"2026-02-27T12:10:34.000Z","size":51249,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-27T14:36:29.919Z","etag":null,"topics":["ftp","ftp-client","ftps","i18n","open-source","react","rust","tauri","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/axpnet.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"axpnet","buy_me_a_coffee":"axpnet"}},"created_at":"2025-12-19T15:12:50.000Z","updated_at":"2026-02-27T12:10:36.000Z","dependencies_parsed_at":"2026-02-08T04:01:27.947Z","dependency_job_id":null,"html_url":"https://github.com/axpnet/aeroftp","commit_stats":null,"previous_names":["axpnet/aeroftp"],"tags_count":78,"template":false,"template_full_name":null,"purl":"pkg:github/axpnet/aeroftp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axpnet%2Faeroftp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axpnet%2Faeroftp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axpnet%2Faeroftp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axpnet%2Faeroftp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/axpnet","download_url":"https://codeload.github.com/axpnet/aeroftp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/axpnet%2Faeroftp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30069604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T01:03:42.280Z","status":"online","status_checked_at":"2026-03-04T02:00:07.464Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ftp","ftp-client","ftps","i18n","open-source","react","rust","tauri","typescript"],"created_at":"2026-01-06T14:11:41.703Z","updated_at":"2026-03-15T23:47:01.233Z","avatar_url":"https://github.com/axpnet.png","language":"TypeScript","funding_links":["https://github.com/sponsors/axpnet","https://buymeacoffee.com/axpnet","https://buymeacoffee.com/AXPNetwork"],"categories":["Index"],"sub_categories":["\u003ca name=\"open-source\"\u003eOpen Source\u003c/a\u003e"],"readme":"# AeroFTP\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/axpnet/aeroftp/raw/main/icons/AeroFTP_simbol_color_512x512.png\" alt=\"AeroFTP Logo\" width=\"128\" height=\"128\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eFTP-First. Multi-Protocol. AI-Powered. Encrypted. Privacy-Enhanced.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  The modern FTP client that grew into a complete file management platform. 21 protocols, 6 integrated product modules, 47 languages, one app.\n\u003c/p\u003e\n\n\u003c!-- Row 1: Project Identity --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/axpnet/aeroftp/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/axpnet/aeroftp\" alt=\"Release\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.bestpractices.dev/projects/11994\"\u003e\u003cimg src=\"https://www.bestpractices.dev/projects/11994/badge\" alt=\"OpenSSF Best Practices\" /\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/axpnet/aeroftp\" alt=\"License\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/protocols-21-green\" alt=\"Protocols\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/AI%20providers-19-ff6600?logo=openai\u0026logoColor=white\" alt=\"AI Providers\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/languages-47-orange\" alt=\"Languages\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/encryption-AES--256-purple?logo=letsencrypt\u0026logoColor=white\" alt=\"AES-256 Encryption\" /\u003e\n\u003c/p\u003e\n\n\u003c!-- Row 2: Tech Stack \u0026 OS --\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/tauri-2-blue?logo=tauri\u0026logoColor=white\" alt=\"Tauri 2\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/rust-backend-B7410E?logo=rust\u0026logoColor=white\" alt=\"Rust\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/react-18-61DAFB?logo=react\u0026logoColor=white\" alt=\"React 18\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/typescript-strict-3178C6?logo=typescript\u0026logoColor=white\" alt=\"TypeScript\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Linux-FCC624?logo=linux\u0026logoColor=black\" alt=\"Linux\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Windows-0078D4?logoColor=white\" alt=\"Windows\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/macOS-000000?logo=apple\u0026logoColor=white\" alt=\"macOS\" /\u003e\n\u003c/p\u003e\n\n\u003c!-- Row 3: Package Managers --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://snapcraft.io/aeroftp\"\u003e\u003cimg src=\"https://img.shields.io/badge/snap-aeroftp-blue?logo=snapcraft\" alt=\"Snap Store\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://aur.archlinux.org/packages/aeroftp-bin\"\u003e\u003cimg src=\"https://img.shields.io/badge/AUR-aeroftp--bin-1793D1?logo=archlinux\u0026logoColor=white\" alt=\"AUR\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://launchpad.net/aeroftp\"\u003e\u003cimg src=\"https://img.shields.io/badge/Launchpad-aeroftp-F8C300?logo=launchpad\u0026logoColor=black\" alt=\"Launchpad\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://winstall.app/apps/axpnet.AeroFTP\"\u003e\u003cimg src=\"https://img.shields.io/badge/winget-axpnet.AeroFTP-0078D4?logo=windows\u0026logoColor=white\" alt=\"Winget\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://appimage.github.io/AeroFTP/\"\u003e\u003cimg src=\"https://img.shields.io/badge/AppImageHub-AeroFTP-blue?logo=linux\u0026logoColor=white\" alt=\"AppImageHub\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- Row 3: Community \u0026 Listings --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/tauri-apps/awesome-tauri\"\u003e\u003cimg src=\"https://img.shields.io/badge/awesome--tauri-listed-blue?logo=tauri\u0026logoColor=white\" alt=\"Awesome Tauri\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://gitster.dev/repo/axpnet/aeroftp\"\u003e\u003cimg src=\"https://gitster.dev/api/repositories/badge/cmlvgk6mj00002g6soo0qyh82\" alt=\"Gitster\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://alternativeto.net/software/aeroftp/\"\u003e\u003cimg src=\"https://img.shields.io/badge/AlternativeTo-AeroFTP-orange\" alt=\"AlternativeTo\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://buymeacoffee.com/AXPNetwork\"\u003e\u003cimg src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-FFDD00?logo=buymeacoffee\u0026logoColor=black\" alt=\"Buy Me a Coffee\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sponsors/axpnet\"\u003e\u003cimg src=\"https://img.shields.io/badge/sponsor-EA4AAA?logo=githubsponsors\u0026logoColor=white\" alt=\"GitHub Sponsors\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## FTP-First Design\n\nAeroFTP is an FTP client first. Full encryption support with configurable TLS modes (Explicit AUTH TLS, Implicit TLS, opportunistic TLS), certificate verification control, MLSD/MLST machine-readable listings (RFC 3659), and resume transfers (REST/APPE). It then extends this foundation to 21 protocols and a complete file management platform through six integrated product modules — the **Aero Family**.\n\n---\n\n## The Aero Family\n\n```\nAeroFTP\n├── AeroCloud    — Personal cloud (21 protocols, sync, share)\n├── AeroFile     — Professional file manager\n├── AeroSync     — Bidirectional sync engine\n├── AeroVault    — Military-grade encryption\n├── AeroTools    — Code editor + Terminal + AI chat\n│   └── AeroAgent    — AI-powered assistant (47 tools, 19 providers)\n├── AeroFTP CLI  — Production command-line client (14 commands, 12 protocols)\n└── AeroPlayer   — Media player with visualizers\n```\n\n---\n\n### AeroCloud — Your Personal Cloud\n\nTurn **any server** into a private personal cloud. Connect to all 21 protocols through a unified interface with bidirectional sync, tray background sync, share links, and per-project local folders.\n\n| Protocol | Encryption | Features |\n|----------|-----------|----------|\n| **FTP** | None / Explicit TLS / Implicit TLS | MLSD/MLST (RFC 3659), resume transfers, TLS mode selection |\n| **FTPS** | TLS/SSL (Explicit + Implicit) | Certificate verification options, self-signed cert support |\n| **SFTP** | SSH | Key authentication, host key verification (TOFU), ed25519/RSA |\n| **WebDAV** | HTTPS | Nextcloud, CloudMe, Koofr, Jianguoyun, InfiniCLOUD, Seafile. HTTP Digest auth (RFC 2617), file locking (RFC 4918) |\n| **S3** | HTTPS | AWS S3, MinIO, Backblaze B2, Wasabi, Cloudflare R2, Alibaba OSS, Tencent COS. Multipart upload |\n| **Google Drive** | OAuth2 PKCE | File versions, thumbnails, share permissions, workspace export |\n| **Dropbox** | OAuth2 PKCE | File versions, thumbnails, native sharing |\n| **OneDrive** | OAuth2 PKCE | Resumable upload, file versions, share permissions |\n| **MEGA.nz** | Client-side AES | 20GB free, end-to-end encrypted, zero-knowledge |\n| **Box** | OAuth2 PKCE | 10GB free, enterprise-grade, file versions, share links |\n| **pCloud** | OAuth2 | 10GB free, US/EU regions, file versions, share links |\n| **Azure Blob** | HMAC-SHA256 / SAS | Enterprise blob storage, container-based, XML API |\n| **4shared** | OAuth 1.0 (HMAC-SHA1) | 15GB free, native REST API, folder/file management |\n| **Filen** | Client-side AES-256-GCM | 10GB free, zero-knowledge E2E encryption, PBKDF2 |\n| **Internxt Drive** | Client-side AES-256-CTR | 10GB free, E2E encrypted, BIP39 mnemonic, optional 2FA |\n| **kDrive** | API Token (Bearer) | 15GB free, Swiss-hosted by Infomaniak, REST API |\n| **Zoho WorkDrive** | OAuth2 | 5GB free, 8 regional endpoints, team drive management |\n| **Jottacloud** | Login Token (Bearer) | 5GB free, Norwegian-hosted, unlimited storage plans |\n| **Koofr** | OAuth2 PKCE | 10GB free, EU-based (Slovenia), native REST API, trash management |\n| **FileLu** | API Key (native REST) | 1GB free, file/folder passwords, privacy toggle, server clone, remote URL upload, trash management |\n| **Yandex Disk** | OAuth2 Token | 5GB free, Russian cloud storage, share links, trash management, MD5 checksums, server-side copy |\n\n**Cloud features**: Background sync works with all 21 protocols via cloud provider factory (direct-auth, OAuth2, OAuth1). 4-step setup wizard with protocol selection grid. Sync index cache for faster re-scans, cross-provider remote search, storage quota display, file versions, thumbnails, share permissions, WebDAV locking, smart folder transfers with per-file conflict resolution.\n\n**Native OS File Manager Badges** (v2.0.4+): Green checkmark on synced files, blue arrows on syncing files, red X on errors — directly inside Nautilus, Nemo, and GIO-based file managers on Linux. On Windows (v2.0.5), native Explorer sync icons via Cloud Filter API with Named Pipe IPC server. Tray icon with colored badge dots (checkmark/sync arrows/X mark overlays). One-click install on Linux, automatic on Windows.\n\n---\n\n### AeroFile — Professional File Manager\n\nA full-featured local file manager built into AeroFTP. Toggle between remote and local modes, or use both side-by-side.\n\n- **Places Sidebar**: Nautilus-style with user directories, custom locations, recent locations (with per-item delete), mounted drives with usage bars, GVFS network shares (SMB/SFTP/NFS/WebDAV), unmounted partition detection with one-click mount, EFI/swap/recovery hidden, and folder tree toggle (Ctrl+B)\n- **Breadcrumb Navigation**: Clickable path segments with chevron dropdown for sibling browsing, overflow collapse, and edit mode (Ctrl+L)\n- **3 View Modes**: List (detailed table), Grid (icon thumbnails), Large Icons (96px with full thumbnails). Toggle via Ctrl+1/2/3\n- **Drive Detection**: Cross-platform volume detection (internal, removable, network, optical) with filesystem type, free/total space, and colored usage bars\n- **Customizable Columns**: Show/hide Size, Type, Permissions, Modified columns per preference. Sort folders first and file extension visibility toggles\n- **Quick Look**: Press Space to preview any file — images, video, audio, code with syntax highlighting, markdown. Arrow keys navigate between files without closing\n- **Properties Dialog**: Tabbed UI with General (3 dates, symlink target), Permissions (rwx matrix, octal, owner:group), and Checksum (MD5, SHA-1, SHA-256, SHA-512)\n- **Trash Browser**: Soft delete to system trash by default. Browse trash contents, restore individual files, or empty trash. Full trash lifecycle management\n- **Duplicate File Finder**: Content-aware duplicate detection (size grouping + MD5 hash). Interactive dialog with KEEP/DELETE/SKIP per file and batch delete\n- **Disk Usage Treemap**: Visual disk space analysis with squarified treemap algorithm. Click to drill down into directories, breadcrumb navigation, hover details\n- **Batch Rename**: Find/Replace, Prefix, Suffix, Sequential numbering with live preview and conflict detection\n- **Inline Rename**: Click filename or press F2 to rename directly in file list\n- **File Clipboard**: Cut/Copy/Paste with cross-panel transfers (local-to-remote and vice versa)\n- **Drag and Drop**: Cross-panel drag for upload/download, intra-panel drag for move\n- **CompressDialog**: Unified compression UI with format selection, levels, and password protection\n- **Resizable Preview Panel**: Image thumbnails, file info, dimensions, path display\n- **20+ Keyboard Shortcuts**: Space preview, F2 rename, Delete, Ctrl+C/V, Ctrl+B sidebar, Ctrl+L edit path, Alt+Enter properties, and more\n\n---\n\n### AeroSync — Bidirectional Sync Engine\n\nEnterprise-grade file synchronization with operational reliability features built for real-world use.\n\n- **Smart Sync**: 3 intelligent conflict resolution modes — overwrite if newer, overwrite if different, skip if identical\n- **Sync Profiles**: 3 built-in presets (Mirror, Two-way, Backup) plus custom save/load. Each profile bundles direction, compare options, retry/verify policies, and delete behavior\n- **Conflict Resolution Center**: Per-file resolution strategies (keep local, keep remote, skip) with batch actions — Keep Newer for All, Keep Local for All, Keep Remote for All\n- **Bandwidth control**: Upload and download speed limits (128 KB/s to 10 MB/s) directly in the sync panel\n- **Transfer journal with checkpoint/resume**: Persistent journal tracks every sync operation. Interrupted syncs resume from where they left off. Auto-cleanup after 30 days\n- **SHA-256 checksum verification**: Content-based comparison with streaming 64KB-chunk hashing during scan phase\n- **Post-transfer verification**: 4 policies (None, Size, Size+Time, Full) confirm transfer integrity after each download\n- **Configurable retry with exponential backoff**: Per-file retry policy with base delay, max delay cap, backoff multiplier, and per-file timeout\n- **Structured error taxonomy**: 10 error categories (Network, Auth, PathNotFound, PermissionDenied, QuotaExceeded, RateLimit, Timeout, FileLocked, DiskError, Unknown) with retryability hints\n- **Error breakdown in sync report**: Post-sync report groups errors by category with dedicated icons\n- **Navigation boundary warning**: Visual amber warning when browsing outside active sync paths\n- **AeroCloud integration**: Tray background sync, share links, native OS file manager badges\n\n---\n\n### AeroVault — Military-Grade Encryption\n\n[![Crates.io](https://img.shields.io/crates/v/aerovault)](https://crates.io/crates/aerovault)\n[![docs.rs](https://docs.rs/aerovault/badge.svg)](https://docs.rs/aerovault)\n\nCreate, manage, and browse encrypted containers that protect your files with a security stack that exceeds industry standards. The encryption engine is published as the standalone [`aerovault`](https://crates.io/crates/aerovault) crate on crates.io for use in any Rust project.\n\n**AeroVault v2 (.aerovault containers)**\n\n| Component | Algorithm | Details |\n| --------- | --------- | ------- |\n| **Content encryption** | AES-256-GCM-SIV (RFC 8452) | Nonce misuse-resistant — even nonce reuse doesn't compromise security |\n| **Key wrapping** | AES-256-KW (RFC 3394) | Built-in integrity check on unwrap |\n| **Filename encryption** | AES-256-SIV | Deterministic — file names are hidden, not just content |\n| **Key derivation** | Argon2id | 128 MiB memory / 4 iterations / 4 parallelism (exceeds OWASP 2024) |\n| **Header integrity** | HMAC-SHA512 | 512-bit MAC, quantum-resistance margin |\n| **Cascade mode** | ChaCha20-Poly1305 | Optional double encryption layer for defense-in-depth |\n| **Chunk size** | 64 KB | Per-chunk random nonce + authentication tag |\n\n\u003e **Open format**: The `.aerovault` binary format is fully documented in the [AeroVault v2 Specification](docs/AEROVAULT-V2-SPEC.md) with implementation guides for Rust, Java, Python, Go, C, and JavaScript.\n\n**Additional encryption features**:\n- **Directory support**: Create nested folders inside vaults with encrypted directory entries, hierarchical navigation, and recursive delete\n- **Cryptomator**: Create and browse Cryptomator format 8 vaults (scrypt + AES-SIV + AES-GCM) via context menu\n- **Archive Browser**: Browse ZIP, 7z, TAR, RAR contents in-app without extracting. Selective single-file extraction\n- **Archive Encryption**: ZIP and 7z with AES-256 password protection. Compression levels (Store/Fast/Normal/Maximum)\n\n---\n\n### AeroTools — Code Editor, Terminal \u0026 AI Chat\n\nThe integrated development panel combining three tools in a tabbed interface.\n\n- **Monaco Editor** (VS Code engine): Syntax highlighting for 50+ languages, remote file editing, 4 editor themes matching app themes\n- **Integrated Terminal**: SSH remote shell with 8 terminal themes, multiple tabs, auto-sync with app theme\n- **AeroAgent AI Chat**: Full AI assistant panel (see below)\n- **Bidirectional sync**: Editor and AI agent edits flow in both directions in real time\n\n#### AeroAgent — AI-Powered Assistant\n\nAn AI assistant with **47 provider-agnostic tools** that work across all 21 protocols. 19 AI providers, vision support, RAG indexing, plugin ecosystem with GitHub registry, and command palette.\n\n**Providers**: OpenAI, Anthropic, Google Gemini, xAI Grok, OpenRouter, Ollama, Kimi (Moonshot), Qwen (Alibaba), DeepSeek, Mistral, Groq, Perplexity, Cohere, Together AI, AI21 Labs, Cerebras, SambaNova, Fireworks AI, Custom\n\n**Core capabilities**:\n- **File operations**: List, read, search, create, edit, rename, delete — local and remote\n- **Batch transfers**: Multi-file upload/download with sync preview\n- **Find and replace**: Edit text in local and remote files directly from chat\n- **Native function calling**: OpenAI tools[], Anthropic tool_use, Gemini functionDeclarations\n- **Streaming responses**: Real-time incremental rendering for all providers\n- **Context-aware**: Knows your connected server, current paths, selected files, and protocol\n- **Vision/Multimodal**: Attach images for analysis — GPT-4o, Claude, Gemini, Ollama llava\n\n**Advanced features**:\n- **RAG integration**: Auto-indexes workspace files; full-text search across your codebase\n- **Plugin system**: Extend with custom tools via JSON manifest + shell scripts (sandboxed, 30s timeout)\n- **Multi-step autonomous tools**: Chains multiple tool calls with auto-resume after approval\n- **Ollama auto-detection**: Discovers local Ollama instances and available models\n- **Monaco bidirectional sync**: Live two-way sync between code editor and AI agent\n- **Terminal command execution**: Run terminal commands from chat with user approval\n- **Conversation export**: Export chat as Markdown or JSON\n- **Prompt template library**: 15 built-in templates with `/` prefix activation\n- **Streaming markdown**: Real-time rendered markdown with code block actions (Copy/Apply/Diff/Run)\n- **Thinking visualization**: See AI reasoning process with token count and duration\n- **Cost budget tracking**: Per-provider monthly limits with conversation-level cost display\n- **Chat search**: Ctrl+F overlay with role filter and keyboard navigation\n- **Command Palette**: Ctrl+Shift+P for quick access to all app actions\n- **Plugin ecosystem**: GitHub-based registry with SHA-256 integrity, event hooks, browser UI\n- **Context menu AI**: Right-click any file → \"Ask AeroAgent\" for instant analysis\n- **Drag \u0026 drop to chat**: Drop files into AeroAgent for analysis\n\n---\n\n### AeroFTP CLI — Command-Line Client\n\nA production command-line interface sharing the same Rust backend as the GUI. 14 commands across 12 protocols with structured JSON output, glob pattern transfers, and a batch scripting engine.\n\n```bash\n# Connect and list files\naeroftp ls sftp://user@myserver.com /var/www/ -l\n\n# Download with glob patterns\naeroftp get sftp://user@host \"/data/*.csv\"\n\n# Pipe-friendly: data on stdout, messages on stderr\naeroftp cat sftp://user@host /config.ini | grep DB_HOST\n\n# Batch deployment script\naeroftp batch deploy.aeroftp\n```\n\n**Commands**: `connect`, `ls`, `get`, `put`, `mkdir`, `rm`, `mv`, `cat`, `find`, `stat`, `df`, `tree`, `sync`, `batch`\n\n**Protocols**: FTP, FTPS, SFTP, WebDAV, S3, MEGA, Azure, Filen, Internxt, Jottacloud, FileLu, Koofr\n\n**Features**:\n- `--json` structured output for all commands\n- Glob pattern transfers (`*.csv`, `*.json`)\n- `.aeroftp` batch scripts with variables, error policies, and 16 commands\n- Progress bars with speed and ETA\n- `NO_COLOR` / `CLICOLOR` compliance\n- Password via stdin, env vars, or interactive prompt\n- SSH key authentication for SFTP\n- 45-finding security audit (grade A-)\n\nSee the full **[CLI Guide](docs/CLI-GUIDE.md)** for usage, examples, and batch scripting reference.\n\n#### AI Agent \u0026 CI/CD Integration\n\nAeroFTP CLI is designed for autonomous use by AI coding agents and CI/CD pipelines:\n\n- **`--json` on every command** — structured output parsable by any agent (OpenClaw, Claude Code, Codex, Cursor, Devin)\n- **Semantic exit codes** (0-8) — agents know exactly what failed without parsing text\n- **URL-based connections** — single argument, zero interaction: `aeroftp put sftp://user@host ./dist/ /www/`\n- **`NO_COLOR` compliant** — no ANSI escape sequences polluting agent output\n- **stderr/stdout separation** — data on stdout for piping, errors on stderr for logging\n- **Batch scripts** (`.aeroftp`) — define multi-step deployment flows as files, execute atomically\n\n```bash\n# Example: AI agent deploys a website\naeroftp sync ./build/ ftp://deploy@server/www/ --direction push --json\n\n# CI/CD: batch deployment with error handling\naeroftp batch .aeroftp/deploy-production.aeroftp --json\n```\n\n\u003e AeroAgent (the built-in AI assistant) can also orchestrate remote server operations via `server_exec` tool — listing files, reading configs, uploading/downloading across any saved server, with credentials resolved securely from the vault.\n\n---\n\n### AeroPlayer — Media Engine\n\nBuilt-in media player with GPU-accelerated visualizations and professional audio processing.\n\n- **14 visualizer modes**: 8 Canvas 2D + 6 WebGL 2 GPU shader modes (Wave Glitch, VHS, Mandelbrot, Raymarch Tunnel, Metaball, Particles)\n- **10-band graphic EQ**: Real Web Audio BiquadFilterNode per band (32Hz-16kHz) with 10 presets and stereo balance\n- **Beat detection**: Onset energy algorithm driving beat-reactive effects across all modes\n- **WebGL shader engine**: 6 GLSL fragment shaders — GPU-accelerated ray marching, metaballs, fractals, particles\n- **Post-processing**: Vignette, chromatic aberration, CRT scanlines, glitch effects\n- **Resilient startup buffering**: First Play now queues during prebuffer and auto-starts when ready\n- **Zero dependencies**: Native HTML5 `\u003caudio\u003e` + Web Audio API\n\n---\n\n## Privacy-Enhanced\n\nAeroFTP incorporates privacy protections that go beyond what traditional file managers offer.\n\n| Feature | Details |\n| ------- | ------- |\n| **Master Password** | Optional Argon2id vault encryption — all credentials locked behind a single password |\n| **Encrypted Vault** | All sensitive data in AES-256-GCM encrypted storage — zero plaintext on disk |\n| **Zero Telemetry** | No analytics, no phone-home, no network requests beyond user-initiated connections |\n| **Memory Zeroization** | Passwords and keys cleared from RAM immediately after use |\n| **Clearable History** | One-click clear for recent locations. No persistent browsing traces |\n| **Portable Deployment** | AppImage runs without installation. Remove it and the config directory — no traces remain |\n\nSee [SECURITY.md](SECURITY.md) for the complete security architecture and privacy comparison, and [docs/security-evidence/README.md](docs/security-evidence/README.md) for release-by-release security evidence.\n\n### Security Posture\n\n| | |\n|---|---|\n| **OpenSSF Best Practices** | [100% passing](https://www.bestpractices.dev/projects/11994) — all 67 criteria met |\n| **Aikido Security** | Continuous SAST/SCA monitoring — **Top 5% benchmark**, OWASP Top 10 coverage, 0 open issues |\n| **Dependency Scanning** | 1,071 packages monitored (316 JS + 755 Rust), daily automated scans |\n| **Supply Chain** | All GitHub Actions pinned to SHA hashes, Dependabot enabled |\n| **Security Audit** | [Download Official Report (Aikido)](https://app.aikido.dev/reports/audit-reports/XjkFN27VKYT2772IC79C4hmF/external/report/download?secret=TF9MK1qiVN6WFPYN5qH3iKgccbIyBwLXBY9g1wfC3rbVjzzUv3XJ61M7CFLk\u0026group_id=68884) |\n\n---\n\n## Additional Features\n\n### 4 Themes\nLight, Dark, Tokyo Night, and Cyber — with themed icons, terminal colors, Monaco editor syntax, and CSS custom properties throughout.\n\n### Security Toolkit (Cyber theme)\nHash Forge (MD5, SHA-1, SHA-256, SHA-512, BLAKE3), CryptoLab (AES-256-GCM, ChaCha20-Poly1305 encrypt/decrypt), Password Forge (CSPRNG + BIP39 passphrase generator with entropy display).\n\n### 47 Languages at 100% Coverage\n\nQuality-audited translations with native script integrity. Automatic browser language detection.\n\n| | | | | |\n|---|---|---|---|---|\n| :gb: English | :it: Italian | :de: German | :es: Spanish | :fr: French |\n| :portugal: Portuguese | :ru: Russian | :jp: Japanese | :kr: Korean | :cn: Chinese |\n| :india: Hindi | :bangladesh: Bengali | :tr: Turkey | :poland: Polish | :netherlands: Dutch |\n| :sweden: Swedish | :denmark: Danish | :norway: Norwegian | :finland: Finnish | :iceland: Icelandic |\n| :czech_republic: Czech | :hungary: Hungarian | :romania: Romanian | :ukraine: Ukrainian | :greece: Greek |\n| :thailand: Thai | :vietnam: Vietnamese | :indonesia: Indonesian | :malaysia: Malay | :philippines: Filipino |\n| :cambodia: Khmer | :georgia: Georgian | :armenia: Armenian | :bulgaria: Bulgarian | :croatia: Croatian |\n| :serbia: Serbian | :slovakia: Slovak | :slovenia: Slovenian | :macedonia: Macedonian | :estonia: Estonian |\n| :lithuania: Lithuanian | :latvia: Latvian | :wales: Welsh | Catalan | Galician |\n| Basque | :kenya: Swahili | | | |\n\n### Auto-Updater\n- In-app download with progress bar showing speed and ETA\n- \"Install \u0026 Restart\" for .deb, .rpm, and AppImage — detached relaunch survives parent exit\n- Non-intrusive update toast with auto-dismiss (StatusBar badge for persistent access)\n- Periodic background check every 24 hours\n\n---\n\n## Installation\n\n### Linux\n\n#### Snap Store\n```bash\nsudo snap install aeroftp\n```\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://snapcraft.io/aeroftp\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/snap-aeroftp-blue?logo=snapcraft\u0026logoColor=white\u0026style=for-the-badge\" alt=\"Get it from the Snap Store\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e **Note:** Snap Store publication is currently **pending manual review**. Auto-publish has been paused while the review queue is processed. The latest `.snap` package is always available on [GitHub Releases](https://github.com/axpnet/aeroftp/releases). In-app auto-update works regardless of installation method. Snap has limited filesystem access due to strict confinement — for full access, use .deb, .AppImage, or AUR.\n\n#### AUR (Arch Linux)\n```bash\nyay -S aeroftp-bin\n# or\nparu -S aeroftp-bin\n```\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://aur.archlinux.org/packages/aeroftp-bin\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/AUR-aeroftp--bin-1793D1?logo=archlinux\u0026logoColor=white\u0026style=for-the-badge\" alt=\"Get it from AUR\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Available on Arch Linux and derivatives (Manjaro, EndeavourOS, Garuda). Binary package — no compilation needed.\n\n#### Launchpad PPA (Ubuntu / Debian)\n\nVisit [launchpad.net/aeroftp](https://launchpad.net/aeroftp) for PPA instructions and .deb packages.\n\n#### Other Linux Formats\nDownload from [GitHub Releases](https://github.com/axpnet/aeroftp/releases/latest):\n- **.deb** — Ubuntu, Debian, Linux Mint, Pop!_OS\n- **.rpm** — Fedora, openSUSE, RHEL\n- **.AppImage** — Portable, runs on any distro ([AppImageHub](https://appimage.github.io/AeroFTP/))\n\n### Windows\n\n#### Winget\n```powershell\nwinget install axpnet.AeroFTP\n```\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://winstall.app/apps/axpnet.AeroFTP\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/winget-axpnet.AeroFTP-0078D4?logo=windows11\u0026logoColor=white\u0026style=for-the-badge\" alt=\"Get it from Winget\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Available on Windows 10 (1709+) and Windows 11. Requires [App Installer](https://apps.microsoft.com/detail/9NBLGGH4NNS1) from Microsoft Store.\n\n#### Other Windows Formats\nDownload from [GitHub Releases](https://github.com/axpnet/aeroftp/releases/latest):\n- **.exe** — NSIS installer\n- **.msi** — Windows Installer\n\n\u003e **Note:** Windows builds are not currently published on the Microsoft Store. The installer is not code-signed (no EV certificate), so Windows SmartScreen may show a warning on first run — this is safe to dismiss.\n\n### macOS\n\nDownload from [GitHub Releases](https://github.com/axpnet/aeroftp/releases/latest):\n- **.dmg** — Universal disk image\n\n\u003e **Note:** The macOS build is not notarized (no Apple Developer certificate). macOS Gatekeeper will block the app on first launch — right-click the app and select \"Open\" to bypass. See [#47](https://github.com/axpnet/aeroftp/issues/47) for known issues on Apple Silicon.\n\n---\n\n## Support the Project\n\nAeroFTP is free and open source software. If you find it useful, please consider supporting its development:\n\n### Donate\n\n- **GitHub Sponsors**: [github.com/sponsors/axpnet](https://github.com/sponsors/axpnet)\n- **Buy Me a Coffee**: [buymeacoffee.com/axpnet](https://buymeacoffee.com/axpnet)\n\n### Cryptocurrency\n\n- **Bitcoin (BTC)**: `bc1qdxur90s5j4s55rwe9rc9n95fau4rg3tfatfhkn`\n- **Ethereum (ETH/EVM)**: `0x08F9D9C41E833539Fd733e19119A89f0664c3AeE`\n- **Solana (SOL)**: `25A8sBNqzbR9rvrd3qyYwBkwirEh1pUiegUG6CrswHrd`\n- **Litecoin (LTC)**: `LTk8iRvUqAtYyer8SPAkEAakpPXxfFY1D1`\n\n### Contributing\n\nContributions are welcome. Please open an issue to discuss proposed changes before submitting a pull request.\n\n---\n\n## License\n\nGPL-3.0 - See [LICENSE](LICENSE) for details.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.bestpractices.dev/projects/11994\"\u003e\u003cimg src=\"https://www.bestpractices.dev/projects/11994/badge\" alt=\"OpenSSF Best Practices\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eBuilt with Rust (Tauri 2) + React 18 + TypeScript\u003c/em\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxpnet%2Faeroftp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faxpnet%2Faeroftp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faxpnet%2Faeroftp/lists"}