{{title}} — repartee
Author: outragedevs
Description: repartee — A modern terminal IRC client built with Ratatui, Tokio, and Rust. Scripting, theming, encrypted logging, and more.
Keywords: irc, terminal, tui, client, chat, repartee, ratatui, tokio, rust

# First Connection

## Quick start

After installing repartee, launch it:

    repartee

You'll see the main UI with a status buffer. Let's connect to an IRC network.

## Add a server

Edit `~/.repartee/config.toml` (created on first run) and add a server:

    [servers.libera]
    label = "Libera"
    address = "irc.libera.chat"
    port = 6697
    tls = true
    autoconnect = true
    channels = ["#repartee"]

Or use the `/server` command at runtime:

    /server add libera irc.libera.chat
    /server connect libera

## Join channels

Once connected, join channels with:

    /join #channel
    /join #secret mykey

Channels listed in your config's `channels` array are joined automatically on connect.

## Cycle a channel

To refresh your presence in a channel (part + rejoin), use:

    /cycle
    /cycle #channel
    /cycle Refreshing...

## Navigation

- Esc + 1–9 — switch between buffers (windows)
- Ctrl+N / Ctrl+P — next / previous buffer
- Click on buffer list or nick list entries
- Mouse wheel — scroll chat history
- Tab — nick completion
- Up/Down — input history

## SASL authentication

For networks that support SASL (Libera Chat, OFTC, etc.), add credentials to `~/.repartee/.env`:

    # ~/.repartee/.env
    LIBERA_SASL_USER=mynick
    LIBERA_SASL_PASS=hunter2

Then in your config:

    [servers.libera]
    address = "irc.libera.chat"
    port = 6697
    tls = true
    sasl_user = "mynick"
    # sasl_pass loaded from .env
    # sasl_mechanism = "SCRAM-SHA-256"  # or PLAIN (default), EXTERNAL

Supported SASL mechanisms: PLAIN, EXTERNAL (client TLS certificate), SCRAM-SHA-256 (secure challenge-response — preferred when available).

## Detaching

You can detach from repartee and leave it running in the background. IRC connections stay alive and messages continue to be logged.

    /detach

Or press `Ctrl+\` or `Ctrl+Z`. Your terminal is restored and the shell prompt returns.

Reattach from any terminal:

    repartee a

See Sessions & Detach for the full guide.

## Next steps

- Sessions & Detach — background sessions and reattaching
- Configuration — full config reference
- Commands — all available commands
- Theming — customize colors and layout