# Tara [![crates.io][crates.io-badge]][crates.io] [![github-release][github-release-badge]][github-release] [![github-license][github-license-badge]][github-license] Tara is a modern, free, open-source, self-hostable Discord bot. Tara works on Linux and macOS. [Installation](#installation) • [Using](#using)

Installation

Tara can be installed in 2 simple steps:

  1. Install executable

If your desired platform isn't seen below, please open an issue.

Linux

The recommended way to install Tara is by way of a package manager. If using cargo install, some dependencies won't automatically be installed. You'll need to install sqlite3 previous to running the instructions. On Debian and Ubuntu systems the required package is libsqlite3-dev, on Arch and related systems it's sqlite.

| Distribution | Repository | Instructions | | ------------ | --------------- | ----------------------------- | | Any | [crates.io] | cargo install tara --locked |

macOS

The recommended way to install Tara is by way of a package manager. | Repository | Instructions | | --------------- | ---------------------------- | | [crates.io] | cargo install tara --locked|

  1. Configure

Before the bot can be started successfully, it needs to be configured. Tara has an interactive setup subcommand, tara config init.

```sh $ tara config init --help tara-config-init 0.2.0 Create configuration files with a user-provided configuration

USAGE: tara config init

FLAGS: -h, --help Prints help information ```

tara config init will create a configuration file in the appropriate location. If this needs to be modified it can be. The file's content's should be the same regardless of operating system, but the location in the file system will be different.

Linux

Tara looks for a configuration file in this order:

  1. $XDG_CONFIG_HOME/Tara/tara.toml or $HOME/.config/Tara/tara.toml
  2. /etc/tara.d/tara.toml

macOS

Tara's configuration file is located here: $HOME/Library/Application Support/com.github.El-Wumbus.Tara/tara.toml

The configuration file should look similarly to below:

```toml randomErrorMessage = false

[secrets]

Discord bot token

token = ""

API key from currencyapi.com.

currencyApiKey = "" # Optional ```

All accepted keys:

Using

Running

To start Tara, use the tara daemon command. If no errors or warnings occur, Tara's stdout and stderr will be blank. If Tara has a proper Discord token, then it's ready to use.

```sh $ tara daemon --help tara-daemon 0.2.0 Start Tara

USAGE: tara daemon [OPTIONS]

FLAGS: -h, --help Prints help information

OPTIONS: --config Specify a configuration file to use instead of the default ```

Discord Commands

| 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 | | search duckduckgo | Search DuckDuckGo for a search term. Results are censored. | 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 | | settings set * | Set settings for the current guild | No | MANAGEGUILD | | settings view * | See current guild settings | No | MANAGEGUILD | | 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 |