← All work

Author

getit

File-host downloader with a terminal UI, a scripting CLI and an MCP server so AI agents can drive it.

Status: Packaged for PyPI and Homebrew; used personally

The problem

Each file host has its own flow: guest tokens and rate limits, wait times, captchas, passwords, client-side encryption. getit puts seven hosts behind one command, a terminal UI and an MCP server, so a person or an AI agent can run the queue.

What I built

One command downloads from GoFile, PixelDrain, MediaFire, 1Fichier, UploadFlix, Mega.nz and Anonfile.de, with a dashboard-style TUI for queue management.

OutcomePublished on PyPI as getit-cli with a Homebrew tap. A personal-use tool; no adoption claims.

What it does

Try it

A working replica of the real interface, running on made-up sample data.

Architecture

How the pieces connect, drawn from the project's own documentation.

getit architectureThree rows. First, the download path: the CLI, the TUI or the MCP server call one DownloadService, which hands the URL to an async DownloadManager; the extractor registry routes the URL to a host extractor, and the FileDownloader streams, resumes, decrypts and verifies the file. Second, state and progress: a SQLite task registry stores task state, an event bus publishes progress, completion and error events, and the CLI progress bars, the TUI and the MCP resource subscribe. Third, the MCP surface: an agent calls the download, list_files, get_download_status and cancel_download tools, which go through the same DownloadService, and can watch a live active-downloads resource.Download path · URL in, file outCLI, TUI or MCPsame call into one serviceDownload Servicefacade; records the taskManagerasync; semaphore limits concurrencyExtractorregistry routes the URL to a hostextractorDownloaderstreams, resumes, decrypts, checksumsState and progressTask registrySQLite; task metadata and progressEvent busdownload_progress, download_complete,download_errorSubscribersCLI progress bars, TUI, MCP resourceupdatesMCP server · for AI agentsAgentClaude Desktop, Cursor, WindsurfMCP toolsdownload, list_files,get_download_status, cancel_downloadDownload Servicesame path as the CLI and TUILive queueactive-downloads://list
Mechanism: three interfaces share one service, hosts plug in as self-registering extractors, and progress flows through an event bus rather than being wired to any one UI.

Engineering decisions

How it's secured and shipped

What's next

From the project's own roadmap.

Stack

Want this kind of work on your team?