Tara is a modern, free, open-source, self-hostable Discord bot.
Tara works on Linux and macOS.
Tara can be installed very easily on Linux or macOS.
If your desired platform isn't available, please open an issue.
The recommended way to install Tara is by way of a package manager. :warning: crates.io is very outdated and Tara should be installed from an alternative source like GitHub releases instead.
Distribution | Repository | Instructions |
---|---|---|
Any | crates.io | cargo install tara --locked |
Arch Linux | AUR | yay -S tara |
When installing from the AUR yay
is the helper used in the instructions,
but one isn't required or an alternative like paru
may be used.
Tara looks for a configuration file in this order:
$XDG_CONFIG_HOME/tara/tara.toml
or$HOME/.config/tara/tara.toml
/etc/tara.d/tara.toml
Now get to configuring Tara.
The recommended way to install Tara is by way of a package manager. :warning: crates.io is very outdated and Tara should be installed from an alternative source like GitHub releases instead.
Repository | Instructions |
---|---|
cargo install tara --locked |
Tara's configuration file is located here: $HOME/Library/Application Support/com.github.El-Wumbus.Tara/tara.toml
on macOS.
Now get to configuring Tara.
Before running Tara you must configure it. The configuration file should look similarly to below:
randomErrorMessage = false
[secrets]
# Discord bot token
token = "<DISCORD_TOKEN>"
# For currency conversions
currencyApiKey = "<CURRENCYAPI.COM>" # Optional
# For image search and random images
unsplash_key = "<FROM UNSPLASH.COM>" # Optional
# For movie and series metadata (If omitted default ones will be used)
omdb_api_key = "<FROM OMDBAPI.com>" # Optional
[music] # Optional
enabled = false
More notes on the above noted configurations:
-
randomErrorMessage
- This key allows for error messages to be selected randomly from a set loaded from a JSON document. If setting this key totrue
, it will look in the default locations for aerror_messages.json
file. If enabled and the file cannot be parsed (because it doesn't exist or is invalid), Tara will continue with the default error messages. Another choice is to set this to the path of the error messages file. A value offalse
will use a singular, static error message.The default location for the error messages file is system dependant.
Linux
Tara will look in these locations for an existing file.
$XDG_CONFIG_HOME/Tara/error_messages.json
or$HOME/.config/Tara/error_messages.json
/etc/tara.d/error_messages.json
macOS
Tara will look here for an existing file:
$HOME/Library/Application Support/com.github.El-Wumbus.Tara/error_messages.json
-
secrets.token
- The discord token can be aquired according to Building your first Discord app. -
secrets.currencyApiKey
- ThecurrencyApiKey
is an optional key to enable the currency conversion feature. This can be aquired from currencyapi.com. The feature will, at most, refresh every six hours. This means the feature will never need a paid API key. -
music
- Optional: This only takes effect if Tara is compiled with the alpha featuremusic
enabled.music.enabled
- Enables or disables the music feature at runtime.
To start Tara, use the tara
command. You should expect logged output.
If Tara has a proper Discord token, then it's ready to use.
Provided for Linux users who use Systemd is a extra/tara.service
file that can be used to run Tara.
$ tara --help
Tara 6.0.0
Decator <decator.c@proton.me>
Tara is a modern, free, open-source, self-hostable Discord bot.
USAGE:
tara [OPTIONS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-l, --log-level <LOGLEVEL>
--config <config> Specify a configuration file to use instead of the default
Name | Description | Usable in DMs | Permissions |
---|---|---|---|
define |
Defines an English word | Yes | NONE |
wiki |
Searches for a wikipedia page and returns a summary | Yes | NONE |
random coin |
Flips a coin | Yes | NONE |
random cat |
Gives a random cat photo | Yes | NONE |
random dog |
Gives a random dog photo | Yes | NONE |
random quote |
Gives a random quote | Yes | NONE |
random number |
Generates a random number between optional low and high bounds (inclusive) | Yes | NONE |
random image |
Get a random image | Yes | NONE |
random emoji |
Get a random Emoji | Yes | NONE |
random fact |
Get a random fun fact | Yes | NONE |
search duckduckgo |
Search DuckDuckGo for a search term. Results are censored. | Yes | NONE |
search image |
Search for an image from the internet | Yes | NONE |
conversions temperature |
Convert one temperature unit to another. Supports celsius, kelvin, and fahrenheit | Yes | NONE |
conversions currency |
Convert from one currency to another. (Only enabled when secrets.currencyApiKey is set.) |
Yes | NONE |
movie |
Get information about a movie | Yes | NONE |
series |
Get information about a TV series | Yes | NONE |
settings set * |
Set settings for the current guild | No | MANAGE_GUILD |
settings view * |
See current guild settings | No | MANAGE_GUILD |
role add |
Give yourself a self-assignable role | No | NONE |
role remove |
Remove a self-assignable role | No | NONE |
role list |
List all self-assignable roles | No | NONE |
music play |
Join your voice channel and play a song [from YouTube] | No | NONE |
music stop |
Stop playback | No | NONE |
music pause |
Pause the currently playing track | No | NONE |
music unpause |
Resume a currently paused track | No | NONE |
music leave |
Leave your voice channel | No | NONE |