Jdsh
Awesome CLI and TUI for JDownloader2
Install / Use
/learn @Al00X/JdshREADME
🟠 JDSH - JDownloader Shell 🔵

Control and Manage your JDownloader within your terminal with ease.
Designed for Linux servers/headless environments where you need full control without a GUI; or if you just love using CLI!
Packed with various Commands & Interactive Mode (TUI).
This tool will use your JDownloader local API, which you will need to enable manually. It uses myjadpi package under the hood to work (kudos to the author of this package).
Installation
pip install jdsh
Setup
- Obviously have JDownloader 2 installed.
- Enable JDownloader's Local API:
- Edit
<JD_FOLDER>/cfg/org.jdownloader.api.RemoteAPIConfig.json. - Set
"deprecatedapienabled": true - (Optional) you may also need to set
deprecatedapilocalhostonlytofalseif you want to access it from remote. - Restart JDownloader.
- Edit
Usage
You can now use the jd command globally from anywhere in your terminal.
Interactive Mode
Simply run jd without arguments to enter the interactive mode.
jd
- Tips:
- Press
sto Start/Stop downloads. - Press
Ctrl+Cto quit.
- Press
Commands Overview
╭─ JDSH ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ Dashboard │
│ jd Launch the Interactive TUI │
│ status Show a static snapshot of the queue │
│ │
│ Queue Management │
│ list (ls) [-d] List active downloads │
│ grabber [-d] List pending links inside LinkGrabber │
│ add <url>... Add links to LinkGrabber │
│ confirm Move all pending links to Queue │
│ remove (rm) <uuid>... Remove items by ID │
│ │
│ Controls │
│ start Start/Resume downloads │
│ stop Pause/Stop downloads │
│ clear Remove finished items from list │
│ replace <uuid> <url> Replace a dead link URL │
│ │
│ Utils │
│ version Show shell and core versions │
│ help Show this help message │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Usage: jd [COMMAND] [ARGS]...
# Run the interactive mode:
jd
# Add links, check them, then start:
jd add "http://site.com/file.exe"
jd add "http://site.com/archive1.zip" "http://site.com/archive2.zip"
jd grabber
jd confirm
# detailed list view:
jd ls -d
Config
By default, the application runs with standard settings (Host: 127.0.0.1, Port: 3128). You can override these defaults by creating a configuration file.
Create file at ~/.config/jdsh/jdsh.config, with the contents below.
You may uncomment any line and change when you need.
[settings]
# HOST = 127.0.0.1
# PORT = 3128
# update interval of interactive mode, in seconds
# REFRESH_RATE = 1.0
Enjoying the tool? Your supports would keep me at it! 💖
Related Skills
node-connect
334.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
82.3kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
82.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
334.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
