# Installation ## Dependencies **Building:** `gcc`/`cc`, `make`, `pkg-config`, `libncursesw-dev` (or the equivalent dev package for your distro, e.g. `ncurses-devel` on Fedora). **Running:** only `libncursesw` (shared via the system, already installed if you could build). No `libcurl`, `jansson`, or `json-c` needed - the HTTP client (raw TCP socket, own HTTP/1.1 parser) and JSON handling ([cJSON](https://github.com/DaveGamble/cJSON), vendored in `third_party/`) are built into the binary. See [Architecture](Architecture.md) for why. Debian/Ubuntu: ```sh sudo apt install build-essential libncursesw6 libncurses-dev pkg-config ``` ## Build ```sh make # regular build (-Os -Wall -Wextra), binary: ./transtui make release # same, but stripped binary (smaller file size) make clean # removes build artifacts ``` The binary typically lands around 70-90 KB stripped, thanks to no heavy libraries being linked in. ## Install ```sh make install # copies to $PREFIX/bin (default /usr/local/bin) ``` Run as root or set `DESTDIR`/`PREFIX` for a different location, e.g.: ```sh make install PREFIX=$HOME/.local ``` When not run as root, `make install` also registers `transtui` as the handler for magnet links and `.torrent` files (see [Browser Integration](Browser-Integration.md)), so clicking a magnet link in the browser opens `transtui --add` automatically. `sudo make install` skips this step - run `make install-desktop` afterward as your normal user instead. After installing, make sure `$PREFIX/bin` is in your `PATH` if you're using a non-standard path - otherwise `transtui --add ...` from the browser won't find the binary (see [Browser Integration](Browser-Integration.md)). ## Next steps - [Configuration](Configuration.md) - connect to your `transmission-daemon` - [Daemon: setup & troubleshooting](Daemon-Setup-and-Troubleshooting.md) - if you don't already have a daemon running