Skip to content

Instantly share code, notes, and snippets.

@jpillora
Last active October 25, 2023 05:03
Show Gist options
  • Star 54 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save jpillora/d1d3263c67e7977d2620 to your computer and use it in GitHub Desktop.
Save jpillora/d1d3263c67e7977d2620 to your computer and use it in GitHub Desktop.
Headless Transmission on Mac OS X
  1. Go to https://developer.apple.com/downloads/index.action and search for "Command line tools" and choose the one for your Mac OSX

  2. Go to http://brew.sh/ and enter the one-liner into the Terminal, you now have brew installed (a better Mac ports)

  3. Install transmission-daemon with

    brew install transmission
    
  4. Copy the startup config for launchctl with

    ln -sfv /usr/local/opt/transmission/*.plist ~/Library/LaunchAgents
    

    If transmission isn't starting, you also might need to modify the startup plist file:

    ~/Library/LaunchAgents/homebrew.mxcl.transmission.plist at the line:

    <key>NetworkState</key> to <key>RunAtLoad</key>

  5. Start transmission (will then always auto-start) with

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.transmission.plist
    
  6. Change settings (I set rpc auth to false) with

    nano /usr/local/var/transmission/settings.json
    
  7. Visit http://127.0.0.1:9091/transmission/web/ and you're done

@jikkujose
Copy link

How to change the settings? The file /usr/local/var/transmission/settings.json doesn't seem to exist?

@aigujin
Copy link

aigujin commented Jun 26, 2015

First start the daemon, it will then create a settings file in /Users/userID/.config/transmission-daemon/

@jpillora
Copy link
Author

Edit: Moved the change settings step down

@joaodrp
Copy link

joaodrp commented Jul 11, 2015

Hi,

My transmission daemon isn't starting. When I try to start it manually (launchctl load ~/Library/LaunchAgents/homebrew.mxcl.transmission.plist) I get:

/usr/local/Cellar/transmission/2.84/homebrew.mxcl.transmission.plist: Operation already in progress

Any guesses? I've changed to "RunAtLoad".

@shrx
Copy link

shrx commented Jul 14, 2015

Is it possible to use the GUI Transmission app to control the daemon?

@a0s
Copy link

a0s commented Aug 13, 2015

@joaodrp same problem, transmission not starting by launchctl. But transmission-daemon started manually is working fine.

@a0s
Copy link

a0s commented Aug 13, 2015

First of all i got:

13/08/15 22:44:05,359 com.apple.xpc.launchd[1]: (homebrew.mxcl.transmission) The NetworkState key is no longer respected. Please remove it.

Ok, valid plist is

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.transmission</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/opt/transmission/bin/transmission-daemon</string>
      <string>--foreground</string>
      <string>--config-dir</string>
      <string>/usr/local/var/transmission/</string>
      <string>--log-info</string>
      <string>--logfile</string>
      <string>/usr/local/var/transmission/transmission-daemon.log</string>
    </array>
    <key>KeepAlive</key>
    <true/>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

@aivit
Copy link

aivit commented May 13, 2016

Ok, this is great, but any way i could have my existing transmission install work with this?

@maartenpaauw
Copy link

maartenpaauw commented Jun 12, 2016

You could also do this with the following command: brew services start transmission

@maartenpaauw
Copy link

@dannymichel You could use the remote GUI.

@nathanmarks
Copy link

awesome, thanks!

@a10kiloham
Copy link

This was very helpful, thanks! Worked perfectly right out of the box.

@americanhanko
Copy link

Xcode command line tools can be installed by running xcode-select --install. Even better, the Homebrew install script will do it via the same method if they don't exist. Therefore the first two steps can be condensed into just one (as seen on brew.sh):

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Thanks for the guide. 👍

@benjaminfauchald
Copy link

Thank you a lot for this guide, was struggling a lot with rtorrent on OSX before I saw this. Thanks!

@ChiftKey
Copy link

Thanks a lot, It was very helpful to me.

@jamesvdm
Copy link

jamesvdm commented May 2, 2020

Much appreciated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment