Skip to content
Tildev0.6.1

First run

This page writes a first config.toml with one mail account and one chat account, then checks it with tcli and opens tt.

Tilde reads config.toml from its folder, ~/.config/tilde (under $XDG_CONFIG_HOME when it is set, and %APPDATA%\tilde on Windows). Tilde does not make the folder or the file.

Terminal window
mkdir -p ~/.config/tilde

On Windows, in PowerShell:

Terminal window
mkdir "$env:APPDATA\tilde"

Open ~/.config/tilde/config.toml in an editor and write this, with the values of your own servers. Replace pass show mail/work with a command that prints your password, or with ${NAME} for an environment variable: see What the keys mean.

[[accounts.mail]]
id = "work"
name = "Work"
address = "ada@example.org"
display_name = "Ada Lovelace"
[accounts.mail.store]
protocol = "imap"
username = "ada@example.org"
password = "#{pass show mail/work}"
[accounts.mail.store.settings]
host = "imap.example.org"
port = 993
[accounts.mail.transport]
protocol = "smtp"
username = "ada@example.org"
password = "#{pass show mail/work}"
[accounts.mail.transport.settings]
host = "smtp.example.org"
port = 587
[[accounts.chat]]
id = "irc"
name = "IRC"
[accounts.chat.connection]
protocol = "irc"
username = "ada"
[accounts.chat.connection.settings]
host = "irc.example.org"
channels = "#tilde"
  • id names the account for commands such as tcli send email --account work. name is the label. Each id is used once per kind.
  • A mail account has a store (reads mail) and a transport (sends it). protocol says which plugin handles it. A store can also be maildir, a Maildir on disk.
  • Do not write a password in the file. #{command} runs the command and uses what it prints. ${NAME} reads an environment variable.
  • security is auto when it is not set: the connection is always encrypted, so the password never goes out in the clear. For mail the encryption follows the port. none, starttls and tls are the other values; IRC has no starttls.
  • On IRC, username is the nick and channels is a comma-separated list that is joined at every connect.

All the keys are on Mail accounts and Chat accounts.

Terminal window
tcli check

tcli check reads the file and creates every part of every account: the mail store, the mail transport and the chat client. It connects to nothing.

┌─────────┬────────────────┬──────────┬────────┐
│ Account │ Part │ Protocol │ Result │
├─────────┼────────────────┼──────────┼────────┤
│ work │ mail store │ imap │ ok │
│ work │ mail transport │ smtp │ ok │
│ irc │ chat │ irc │ ok │
└─────────┴────────────────┴──────────┴────────┘
3 of 3 parts are fine.

The exit code is 0 when every part is fine and 1 when not. A mistake in the file is listed first, with its line: a key that does not exist (nmae), a section that no plugin reads, a value of the wrong type, a #{command} that failed. tcli accounts lists the accounts, and tcli --config <path> check reads another folder or another config.toml.

Terminal window
tcli check --connect

This also logs in to every server, with 15 seconds for each. A part that works shows connected in 0.42 s. A part that fails shows why, for example Name or service not known for a host that does not exist. Fix the line in config.toml and run it again.

Terminal window
tt

tt shows the mail accounts of the file in a tree on the left and the messages of the selected one on the right. It does not show chat accounts yet. A Windows terminal is not supported yet. :q quits. tt --demo shows made-up accounts and messages instead of the accounts of the file.

Next: open tt step by step, or read about tcli check. The details of the commands are in the README of tcli.