# Aria2TUI
Aria2TUI is a TUI frontend for the Aria2 download utility which fetches data from an aria2c daemon over RPC and displays it using my TUI picker [listpick](https://github.com/grimandgreedy/listpick).
https://github.com/user-attachments/assets/07ab1f63-3a5e-42dd-bddb-56c948ecd620
## Quickstart
Install aria2tui using pip and add the config.toml file from ./src/aria2tui/data/.
```
python -m pip install aria2tui &&
mkdir ~/.config/aria2tui/ &&
wget https://raw.githubusercontent.com/grimandgreedy/Aria2TUI/refs/heads/master/src/aria2tui/data/config.toml -O ~/.config/aria2tui/config.toml
```
**Note**: If you have not used aria2c before then download [this file](https://gist.github.com/qzm/a54559726896d5e6bf21adf2363ad334) and put it in ~/.config/aria2/. I would recommend going through and configuring it but this one will get you up and running for now.
After editing ~/.config/aria2tui/config.toml and ensuring that your url, port, and secret token are correct, you are all set to go:
```
aria2tui
```
If you have multiple daemons you can specify another config file:
```
ARIA2TUI_CONFIG_PATH=/path/to/config/aria2c_torrents.toml aria2tui
ARIA2TUI_CONFIG_PATH=/path/to/config/aria_on_home_server_config.toml aria2tui
```
If you wish to use it regularly, then it may be useful to add aliases to your ~/.bashrc.
```
alias a2="python /path/to/Aria2TUI/aria2tui.py"
alias a2t="ARIA2TUI_CONFIG_PATH=/path/to/config/aria2c_torrents.toml aria2tui"
alias a2n="ARIA2TUI_CONFIG_PATH=/path/to/config/aria_on_home_server_config.toml aria2tui"
```
in addition to those requirements the application uses:
- `nvim` for viewing/editing download options as well as adding URIs, magnet links and torrent files
- `xdg-open` and `gio` for opening files.
## Other installation options
### Git repo
Clone rep
```bash
git clone https://github.com/grimandgreedy/Aria2TUI
```
Copy config and edit it accordingly:
```bash
mkdir ~/.config/aria2tui &&
cp Aria2TUI/src/aria2tui/data/config.toml ~/.config/aria2tui
```
Now you can start Aria2TUI:
```bash
cd ./Aria2TUI/src
python -m aria2tui.aria2tui_app
```
```bash
alias a2="cd /path/to/Aria2TUI/src && python -m aria2tui.aria2tui_app"
```
## Tips
- Press '?' to see the help page which will list the available keys.
- If you have problems starting aria2c, check that you have an aria2c config file at ~/.config/aria2/aria2.conf
## Features
- Dynamic display of downloads
- View active, queue, errored, stopped
- Sort/filter/search using regular expressions
- Add downloads with options
- Simply dump a list of links;
- or specify options:
- proxy
- User agent
- ... Many more!
- See [this section of the aria2c manual](https://aria2.github.io/manual/en/html/aria2c.html#input-file) for all available options all of which are supported
- Add magnet links and torrent files
- Operations on downloads:
- Pause/unpause
- Remove
- Change position in queue
- Open downloaded files
- Open download location (with yazi)
- Change download options by value of keys in nvim
- Select download(s) you wish to change the value
- Change save directory
- Specify proxy, proxy user, and proxy password
- Specify user-agent
- Specify download piece length
- ... Many more!
- See [this section of the aria2c manual](https://aria2.github.io/manual/en/html/aria2c.html#input-file) for all available options all of which are supported.
<!-- <div align="center"> <img src="assets/change_options.gif" alt="change_options" width="70%"> </div> -->
<div align="center"> <img src="https://raw.githubusercontent.com/grimandgreedy/aria2tui/refs/heads/master/assets/change_options.gif" alt="change_options" width="70%"> </div>
- View current options of download
- Retry download
- Interact with aria2 daemon
- Edit config
- Pause all
- Restart aria
- Global and particular download transfer speed *graphs*.
<!-- <div align="center"> <img src="assets/transfer_speed_graph.png" alt="speed_graph" width="70%"> </div> -->
<div align="center"> <img src="https://raw.githubusercontent.com/grimandgreedy/aria2tui/refs/heads/master/assets/transfer_speed_graph.png" alt="speed_graph" width="70%"> </div>
- Visual options
- Modify theme
- '~' to view settings and then select theme
<!-- <div align="center"> <img src="assets/themes.png" alt="themes" width="70%"> </div> -->
<div align="center"> <img src="https://github.com/grimandgreedy/aria2tui/blob/master/assets/themes.png?raw=true" alt="themes" width="70%"> </div>
- Show/hide columns
- Press Shift+Column_number to toggle or press '~' to view settings and find the column you wish to toggle.
- Quick-toggle footer: press '_'
## Important
While I use Aria2TUI every day, it is still in development and there are many things that still need to be cleaned up.
Some things that should be mentioned:
- Realistically, Aria2TUI will only work in a UNIX (linux, macos) environment. If you register your interest I might be able to look into what I would need to change to get it to work on windows.
- If you are performing bulk operations and the downloads are changing state rapidly--e.g., hundreds of images are changing from active/waiting to completed--it is recommended to stop the auto-refresh and operate on a static list.
- This can be done by either:
- exiting to the main menu ('q') and going to "View Downloads"; or
- Pressing ~ and toggling the auto-refresh in the default "Watch Downloads" viewer.
- You know that auto-refresh is active because there is a refresh symbol in the top right.
- Note: This was created for personal use and so some of the code is quite ugly and/or buggy and simply needs to be re-written.
## Similar Projects
- [Ariang](https://github.com/mayswind/AriaNg) A web client for aria2c.
## Support and Feedback
Feel free to request features. Please report any errors you encounter with appropriate context.
Raw data
{
"_id": null,
"home_page": "https://github.com/grimandgreedy/aria2tui",
"name": "aria2tui",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.0",
"maintainer_email": null,
"keywords": "aria2c aria2 downloader listpick tui python curses torrent metalink",
"author": "Grim",
"author_email": "grimandgreedy@protonmail.com",
"download_url": "https://files.pythonhosted.org/packages/c2/36/73312315f763cc7465c65b3bf63ba27bc127bc3e98ba2e8d05d276625de4/aria2tui-0.1.9.2.tar.gz",
"platform": null,
"description": "# Aria2TUI\n\nAria2TUI is a TUI frontend for the Aria2 download utility which fetches data from an aria2c daemon over RPC and displays it using my TUI picker [listpick](https://github.com/grimandgreedy/listpick).\n\n\nhttps://github.com/user-attachments/assets/07ab1f63-3a5e-42dd-bddb-56c948ecd620\n\n## Quickstart\n\nInstall aria2tui using pip and add the config.toml file from ./src/aria2tui/data/.\n\n```\npython -m pip install aria2tui &&\nmkdir ~/.config/aria2tui/ &&\nwget https://raw.githubusercontent.com/grimandgreedy/Aria2TUI/refs/heads/master/src/aria2tui/data/config.toml -O ~/.config/aria2tui/config.toml\n```\n\n**Note**: If you have not used aria2c before then download [this file](https://gist.github.com/qzm/a54559726896d5e6bf21adf2363ad334) and put it in ~/.config/aria2/. I would recommend going through and configuring it but this one will get you up and running for now.\n\nAfter editing ~/.config/aria2tui/config.toml and ensuring that your url, port, and secret token are correct, you are all set to go:\n\n```\naria2tui\n```\n\nIf you have multiple daemons you can specify another config file:\n\n```\nARIA2TUI_CONFIG_PATH=/path/to/config/aria2c_torrents.toml aria2tui\nARIA2TUI_CONFIG_PATH=/path/to/config/aria_on_home_server_config.toml aria2tui\n```\n\nIf you wish to use it regularly, then it may be useful to add aliases to your ~/.bashrc.\n```\nalias a2=\"python /path/to/Aria2TUI/aria2tui.py\"\nalias a2t=\"ARIA2TUI_CONFIG_PATH=/path/to/config/aria2c_torrents.toml aria2tui\"\nalias a2n=\"ARIA2TUI_CONFIG_PATH=/path/to/config/aria_on_home_server_config.toml aria2tui\"\n```\n\nin addition to those requirements the application uses:\n - `nvim` for viewing/editing download options as well as adding URIs, magnet links and torrent files\n - `xdg-open` and `gio` for opening files.\n\n## Other installation options\n\n### Git repo\n\nClone rep\n```bash\ngit clone https://github.com/grimandgreedy/Aria2TUI\n```\n\nCopy config and edit it accordingly:\n```bash\nmkdir ~/.config/aria2tui &&\ncp Aria2TUI/src/aria2tui/data/config.toml ~/.config/aria2tui\n```\nNow you can start Aria2TUI:\n```bash\ncd ./Aria2TUI/src\npython -m aria2tui.aria2tui_app\n```\n\n```bash\nalias a2=\"cd /path/to/Aria2TUI/src && python -m aria2tui.aria2tui_app\"\n```\n\n## Tips\n\n - Press '?' to see the help page which will list the available keys.\n - If you have problems starting aria2c, check that you have an aria2c config file at ~/.config/aria2/aria2.conf\n\n## Features\n\n - Dynamic display of downloads\n - View active, queue, errored, stopped\n - Sort/filter/search using regular expressions\n - Add downloads with options\n - Simply dump a list of links;\n - or specify options:\n - proxy\n - User agent\n - ... Many more!\n - See [this section of the aria2c manual](https://aria2.github.io/manual/en/html/aria2c.html#input-file) for all available options all of which are supported\n - Add magnet links and torrent files\n - Operations on downloads:\n - Pause/unpause\n - Remove\n - Change position in queue\n - Open downloaded files\n - Open download location (with yazi)\n - Change download options by value of keys in nvim\n\n - Select download(s) you wish to change the value\n - Change save directory\n - Specify proxy, proxy user, and proxy password\n - Specify user-agent\n - Specify download piece length\n - ... Many more!\n - See [this section of the aria2c manual](https://aria2.github.io/manual/en/html/aria2c.html#input-file) for all available options all of which are supported.\n\n<!-- <div align=\"center\"> <img src=\"assets/change_options.gif\" alt=\"change_options\" width=\"70%\"> </div> -->\n<div align=\"center\"> <img src=\"https://raw.githubusercontent.com/grimandgreedy/aria2tui/refs/heads/master/assets/change_options.gif\" alt=\"change_options\" width=\"70%\"> </div>\n\n - View current options of download\n - Retry download\n - Interact with aria2 daemon\n - Edit config\n - Pause all\n - Restart aria\n - Global and particular download transfer speed *graphs*.\n\n <!-- <div align=\"center\"> <img src=\"assets/transfer_speed_graph.png\" alt=\"speed_graph\" width=\"70%\"> </div> -->\n <div align=\"center\"> <img src=\"https://raw.githubusercontent.com/grimandgreedy/aria2tui/refs/heads/master/assets/transfer_speed_graph.png\" alt=\"speed_graph\" width=\"70%\"> </div>\n\n - Visual options\n - Modify theme\n - '~' to view settings and then select theme\n\n<!-- <div align=\"center\"> <img src=\"assets/themes.png\" alt=\"themes\" width=\"70%\"> </div> -->\n<div align=\"center\"> <img src=\"https://github.com/grimandgreedy/aria2tui/blob/master/assets/themes.png?raw=true\" alt=\"themes\" width=\"70%\"> </div>\n\n - Show/hide columns\n - Press Shift+Column_number to toggle or press '~' to view settings and find the column you wish to toggle.\n - Quick-toggle footer: press '_'\n\n\n## Important\n\nWhile I use Aria2TUI every day, it is still in development and there are many things that still need to be cleaned up.\n\nSome things that should be mentioned:\n\n - Realistically, Aria2TUI will only work in a UNIX (linux, macos) environment. If you register your interest I might be able to look into what I would need to change to get it to work on windows.\n - If you are performing bulk operations and the downloads are changing state rapidly--e.g., hundreds of images are changing from active/waiting to completed--it is recommended to stop the auto-refresh and operate on a static list.\n - This can be done by either:\n - exiting to the main menu ('q') and going to \"View Downloads\"; or\n - Pressing ~ and toggling the auto-refresh in the default \"Watch Downloads\" viewer.\n - You know that auto-refresh is active because there is a refresh symbol in the top right.\n - Note: This was created for personal use and so some of the code is quite ugly and/or buggy and simply needs to be re-written.\n\n## Similar Projects\n\n- [Ariang](https://github.com/mayswind/AriaNg) A web client for aria2c.\n\n## Support and Feedback\n\nFeel free to request features. Please report any errors you encounter with appropriate context.\n",
"bugtrack_url": null,
"license": null,
"summary": "aria2tui: A TUI Frontend for the Aria2c Download Manager",
"version": "0.1.9.2",
"project_urls": {
"Bug Tracker": "https://github.com/grimandgreedy/aria2tui/issues",
"Homepage": "https://github.com/grimandgreedy/aria2tui"
},
"split_keywords": [
"aria2c",
"aria2",
"downloader",
"listpick",
"tui",
"python",
"curses",
"torrent",
"metalink"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "2204b162e7bdebab8559e0e5a84869c3cf36fb1615695d1105f7366784f5e279",
"md5": "30534c608a1f2370cad4caafa60304d1",
"sha256": "3869c0d4ffb0d1ad6fef707d6bfca034c62e6fc0bf85e68dcd7147338c0e44a2"
},
"downloads": -1,
"filename": "aria2tui-0.1.9.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "30534c608a1f2370cad4caafa60304d1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.0",
"size": 31223,
"upload_time": "2025-07-08T17:59:04",
"upload_time_iso_8601": "2025-07-08T17:59:04.386658Z",
"url": "https://files.pythonhosted.org/packages/22/04/b162e7bdebab8559e0e5a84869c3cf36fb1615695d1105f7366784f5e279/aria2tui-0.1.9.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c23673312315f763cc7465c65b3bf63ba27bc127bc3e98ba2e8d05d276625de4",
"md5": "65442fb9dcde3f21b7399c4677ab8657",
"sha256": "3760d23d29b4f0341da3cc4b7350b191b20cfbd5839f51d741116f3ab94e3f5e"
},
"downloads": -1,
"filename": "aria2tui-0.1.9.2.tar.gz",
"has_sig": false,
"md5_digest": "65442fb9dcde3f21b7399c4677ab8657",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.0",
"size": 2690889,
"upload_time": "2025-07-08T17:59:08",
"upload_time_iso_8601": "2025-07-08T17:59:08.640420Z",
"url": "https://files.pythonhosted.org/packages/c2/36/73312315f763cc7465c65b3bf63ba27bc127bc3e98ba2e8d05d276625de4/aria2tui-0.1.9.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-08 17:59:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "grimandgreedy",
"github_project": "aria2tui",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "listpick",
"specs": [
[
"==",
"0.1.4.12"
]
]
},
{
"name": "plotille",
"specs": [
[
"==",
"5.0.0"
]
]
},
{
"name": "Requests",
"specs": [
[
"==",
"2.32.4"
]
]
},
{
"name": "setuptools",
"specs": [
[
"==",
"80.9.0"
]
]
},
{
"name": "tabulate",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "toml",
"specs": [
[
"==",
"0.10.2"
]
]
}
],
"lcname": "aria2tui"
}