Files
aria/README.md
T
2026-08-31 22:12:24 +02:00

106 lines
2.5 KiB
Markdown

<h1 align="center">aria</h1>
<p align="center">
<strong>Friendly aria2c wrapper for your personal downloads.</strong><br>
<i>Quick, simple, enjoyable.</i>
</p>
<p align="center">
<a href="https://git.tommasongr.com/tommaso/aria/blob/master/LICENSE"><img src="https://img.shields.io/gitea/license/tommaso/aria?gitea_url=https%3A%2F%2Fgit.tommasongr.com" alt="License"></a>
<img src="https://img.shields.io/badge/platform-macOS-green.svg" alt="Platform">
<a href="https://tommasonegri.com"><img src="https://img.shields.io/badge/maintainer-Tommaso%20Negri-blue" alt="Maintainer"></a>
</p>
`aria` wraps the JSONRPC server of the great [aria2](https://aria2.github.io/), exposing just enough functionality to be dangerous.
---
## Installation
Build and install the binary and man page to `$(PREFIX)/bin` and `$(PREFIX)/share/man/man1` (defaults to `~/.local`):
```sh
make install
```
To install elsewhere, override `PREFIX`:
```sh
make install PREFIX=/usr/local
```
To remove:
```sh
make uninstall
```
> [!NOTE]
> Make sure `$(PREFIX)/bin` is in your `PATH` to run `aria` from anywhere.
---
## Features
### One command for everything
Add, pause, resume, and remove downloads with a unified API — no more memorising cryptic flags:
```sh
aria add https://example.com/file.iso
aria add uri https://example.com/file.iso
aria add torrent https://example.com/linux.torrent
aria pause 8a4c3f21e09b7d55
aria resume 8a4c3f21e09b7d55
aria remove 8a4c3f21e09b7d55
aria purge
```
Commands without arguments act on all downloads, so you can pause or resume everything at once:
```sh
aria pause
aria resume
```
### Interactive list
Run `aria list` to check the status of all your downloads in a beautifully formatted table,
live-refreshing every second:
```sh
aria list
```
Pick a download with the arrow keys and `enter`, and its **GID** is printed to `stdout`,
ready to be composed with any other tool:
```sh
aria pause "$(aria list)"
```
### Options
Every command supports a couple of well-chosen options, and nothing more:
| Option | Description | Default |
| --- | --- | --- |
| `-d`, `--directory <dir>` | Define the directory to save files. | `~/Downloads/` |
| `--seed` | Enable seeding after torrent download. | |
### Simple configuration
Point *aria* to your `aria2c` server by directly editing the source:
```swift
enum Config {
static let host: String = "127.0.0.1"
static let port: Int = 6800
static let secret: String = "my_secret"
static var endpoint: URL {
URL(string: "http://\(host):\(port)/jsonrpc")!
}
static let directory: String = "~/Downloads/"
}
```