aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorTommaso Negri <me@tommasongr.com>2026-08-31 22:12:24 +0200
committerTommaso Negri <me@tommasongr.com>2026-08-31 22:12:24 +0200
commit7030e67cee94d78a69e01a265e8d34621c91e294 (patch)
treeec81b71d63bf86d9add8910bec8c9f25cebb7bce /README.md
parent6d9c969b8c239f91bff59205901eb33b17eee7c4 (diff)
downloadaria-7030e67cee94d78a69e01a265e8d34621c91e294.tar.gz
aria-7030e67cee94d78a69e01a265e8d34621c91e294.zip
add README
Diffstat (limited to 'README.md')
-rw-r--r--README.md105
1 files changed, 105 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e42d862
--- /dev/null
+++ b/README.md
@@ -0,0 +1,105 @@
+<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/"
+}
+```