Home

Awesome

tiny - Yet another terminal IRC client

tiny is an IRC client written in Rust.

<p float="left" align="middle"> <img src="/assets/tiny.png" width="430" /> <img src="/assets/tiny_mac.png" width="430" /> <img src="https://user-images.githubusercontent.com/448274/73597059-47e71380-4539-11ea-844d-0ec260691911.png" width="430" /> </p>

Features

Installation

tiny works on Linux and OSX. Windows users can run it under Windows Subsystem for Linux.

For pre-built binaries see releases. To build from source make sure you have Rust 1.48 or newer. By default tiny uses rustls for TLS support, and desktop notifications are disabled.

To install in a clone:

cargo install --path crates/tiny

If you don't want to clone the repo, you can use

cargo install --git https://github.com/osa1/tiny

If you have an older version installed, add --force to the command you're using.

Arch Linux users can install the latest stable and development versions of tiny through the AUR.

tiny is tested on Linux and OSX.

Configuration

tiny looks for these places for a config file:

When a config file is not found in one of these locations tiny creates one in the first path above with defaults and exits, printing path to the config file. Edit that file before re-running tiny to change the defaults.

A note on nick identification: Some IRC servers such as ircd-seven (used by Freenode) and InspIRCd (used by Mozilla) support identification via the PASS command. This way of identification (rather than sending a message to a service like NickServ) is better when some of the channels that you automatically join require identification. To use this method enter your nick password to the pass field in servers.

Using external commands for passwords

When a password field in the config file is a map with a command key, the value is used as the shell command to run to get the password.

For example, in this config:

sasl:
  username: osa1
  password:
    command: 'pass show "my irc password"'

tiny runs the pass ... command and uses last line printed by the command as the password.

Command line arguments

By default (i.e. when no command line arguments passed) tiny connects to all servers listed in the config. tiny considers command line arguments as patterns to be matched in server addresses, so you can pass command line arguments to connect to only a subset of servers specified in the config. For example, in this config:

servers:
    - addr: irc.libera.chat
      ...

    - addr: irc.gnome.org
      ...

By default tiny connects to both servers. You can connect to only the first server by passing libera as a command line argument.

You can use --config <path> to specify your config file location.

Key bindings

Key bindings can be configured in the config file, see the wiki page for details.

Default key bindings:

Commands

Commands start with / character.

Server commands

For commands not supported by tiny as a slash command, sending the command in the server tab will send the message directly to the server.

Examples:

Community

Join us at #tiny in irc.oftc.net to chat about anything related to tiny!