Skip to main content

sdexe

Suite for Downloading, Editing & eXporting Everything

PyPI version Python 3.10+ License: MIT

Local tools for media downloads, PDF manipulation, image processing, and file conversion. Everything runs on your machine. No uploads, no accounts, no data leaves your device.

Install

One command sets up everything on a fresh machine (Homebrew on macOS, Python 3.12, ffmpeg, then sdexe in its own private environment at ~/.sdexe). Safe to re-run.

macOS / Linux:

curl -fsSL https://sdexe.com/install.sh | bash

Windows (PowerShell):

irm https://sdexe.com/install.ps1 | iex

Already have Python 3.10+? Then just:

pip install sdexe

(Or into a venv of your choice. pipx works too.)

Update

sdexe update

Upgrades sdexe and its downloader engine in place. The Settings page has a button that does the same.

Requirements

  • Python 3.10+ (the installer handles this)
  • ffmpeg: installed by the installer; otherwise sdexe falls back to a bundled copy and offers to install the full one on first run

Usage

sdexe

Opens a clickable app in your terminal (download, search, file tools and settings, all with buttons that work with the mouse) and starts the web app at http://localhost:5001. sdexe --classic skips the terminal app. All processing happens locally. The first run asks a few setup questions: whether sdexe should open the browser each time (also a toggle in Settings; --browser / --no-browser override it for one run), whether to fix zsh's handling of ? in links, and whether to connect Claude Code. Run sdexe setup to change the answers.

New to it? sdexe tutorial is a hands-on, 3-minute walkthrough that runs real commands.

Settings

sdexe settings opens a full-screen settings page (arrow keys, changes save as you go): whether the browser opens on start, port, menu bar icon, update checks, default video format and quality, audio format, MP3 bitrate, download folder, parallel downloads, cover art and tags, the accent colour, plus switches for the zsh link fix, Claude Code (MCP) and the Claude skill. Scripts can use sdexe settings --json, sdexe settings get KEY, sdexe settings set KEY VALUE and sdexe settings reset.

zsh users: quote links (sdexe download "https://youtube.com/watch?v=..."), or let sdexe setup add alias sdexe='noglob sdexe' so you don't have to. Without either, zsh stops with "no matches found" before sdexe runs.

Download from the terminal

sdexe download <url> [url ...] [format] [quality] [options]

Saves straight to the current folder, no browser or server needed. Built to be driven by scripts and AI agents as well as by hand: saved paths go to stdout, progress and errors to stderr, and the exit code is 0 only when every link saved.

You type You get
sdexe download URL MP4, best stream up to 1080p60
sdexe download URL -mp3 MP3, 320 kbps
sdexe download URL -a WAV (lossless)
sdexe download URL --best Highest available video: 4K/8K, top fps and bitrate
sdexe download URL -720p Up to 720p (-1080p30, -4k, -1440p also work)
sdexe download URL1 URL2 URL3 -flac A batch, 3 at a time
sdexe download URL --playlist Every video in a playlist or channel (--limit N for the first N)
sdexe download URL --start 1:30 --end 2:00 Only that section
sdexe download URL -o ~/Music/song.mp3 A specific folder or file name
sdexe download URL --json One JSON document with paths, sizes, resolution, errors

Formats: mp4, webm, mkv for video; wav, mp3, flac, m4a, opus for audio. Tags work as -mp3, --mp3, mp3 or -f mp3. Run sdexe download --help for everything.

sdexe search "song name" finds videos and songs by name (YouTube or SoundCloud, no account needed), and sdexe download "ytsearch:song name" -mp3 grabs the top result in one step.

sdexe info URL shows the title, length, every available quality with sizes, chapters and subtitles without downloading. It takes the same tags, so sdexe info URL -720p is a dry run of sdexe download URL -720p.

Every tool from the terminal

The PDF, image, audio, video and conversion tools work from the command line too, with the same conventions: outputs land in the current folder as <name>-<action>.<ext>, nothing is overwritten, --json gives one result document, and several files can be passed at once.

sdexe pdf merge a.pdf b.pdf -o book.pdf
sdexe pdf text report.pdf > report.txt
sdexe image resize *.jpg --width 1200
sdexe image convert IMG_0001.heic -f jpg
sdexe audio trim podcast.mp3 --start 1:00 --end 2:30
sdexe video gif clip.mp4 --width 480
sdexe convert data.csv -f json
sdexe file hash installer.dmg

Run sdexe pdf, sdexe image, sdexe audio, sdexe video, sdexe convert --help or sdexe file to list the commands in each group.

Use it from AI agents

Agents can call the CLI directly. Two ways to make it discoverable:

claude mcp add sdexe -- sdexe mcp      # MCP server: every command becomes a tool (Claude Code, Desktop, Cursor)
sdexe skill --install                  # or a Claude Code skill describing every command

sdexe mcp --help shows the Claude Desktop config. MCP outputs go to the client's working folder (or ~/Downloads); set SDEXE_OUTPUT_DIR to change it.

Features

Media Downloader

Download videos and audio from YouTube, Instagram, TikTok, SoundCloud, Twitch, Vimeo, X, and 1000+ other sites.

  • Formats: MP3 (128/192/320 kbps), MP4, FLAC, WAV
  • Quality options: Best, 1080p, 720p, 480p for video
  • Playlist and batch URL support (up to 3 concurrent downloads)
  • Subtitle download for MP4
  • Thumbnail embedded as album art
  • Set a permanent output folder to skip manual saving
  • Real-time progress with speed, ETA, and cancel button
  • Desktop notifications when downloads finish
  • Download history with re-fetch button

PDF Tools

  • Merge: combine multiple PDFs, drag to reorder
  • Split: split by page ranges (e.g. 1-3, 5, 8-10) or every page
  • Images to PDF: convert JPG/PNG/WebP images into a single PDF
  • Compress: reduce file size by compressing content streams
  • Extract Text: pull all text to a .txt file with page markers
  • Password: add or remove PDF password protection

Image Tools

  • Resize: by dimensions or percentage, with aspect ratio lock
  • Compress: batch compression at High / Medium / Low quality
  • Convert: convert between PNG, JPG, and WebP (batch supported)

File Converter

  • Markdown → HTML: live preview + styled standalone HTML output
  • CSV ↔ JSON: bidirectional, first row as headers
  • JSON ↔ YAML: bidirectional
  • CSV ↔ TSV: bidirectional
  • XML → JSON

Development

git clone https://github.com/gedaliahs/sdexe.git
cd sdexe
python -m venv venv
source venv/bin/activate
pip install -e .
sdexe

Release files for sdexe 0.2.31

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sdexe 0.2.31
File Size Uploaded
sdexe-0.2.31.tar.gz 288.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sdexe 0.2.31
File Interpreter ABI Platform
sdexe-0.2.31-py3-none-any.whl Python 3 none any Details

Total release size: 593.7 kB

Release files / sdexe-0.2.31.tar.gz

Download URL sdexe-0.2.31.tar.gz
Size 288.2 kB
Tags Source
SHA-256 checksum
How to use checksums
14c9f9d503612ec97eee798cda552a8f00058491928fe63950795ff90526e48a
BLAKE2b-256 checksum
How to use checksums
be6382cb7e7c68b5cb5f4b8a1beba84a21beb89f5c9afd15f01232cc55ff12c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / sdexe-0.2.31-py3-none-any.whl

Download URL sdexe-0.2.31-py3-none-any.whl
Size 305.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1ba2433aded03732baaf8003650cec56af2fae01a177e171b23833c902169257
BLAKE2b-256 checksum
How to use checksums
22b62f9c0049ebbf5fd1fca19c9b9003fc272a744f734505c26c653592dbb220
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

0.2.32

2 release files

This release

0.2.31 This release

2 release files

0.2.30

2 release files

0.2.29

2 release files

0.2.28

2 release files

0.2.27

2 release files

0.2.26

2 release files

0.2.25

2 release files

0.2.24

2 release files

0.2.23

2 release files

0.2.22

2 release files

0.2.21

2 release files

0.2.20

2 release files

0.2.19

2 release files

0.2.18

2 release files

0.2.17

2 release files

0.2.14

2 release files

0.2.13

2 release files

0.2.12

2 release files

0.2.11

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.3

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page