repartee 0.4.0

A modern terminal IRC client built with Ratatui and Tokio
---
category: Logging
description: Chat log management
---

# /log

## Syntax

    /log [status|search] [query]

## Description

Manage persistent chat logs. Messages are stored in a local SQLite database
at `~/.repartee/logs/messages.db` with WAL mode for concurrent access.

Only messages that reach the UI are logged — messages filtered by `/ignore`,
antiflood, or script `stop()` propagation are never stored.

## Subcommands

### status

Show logging status including message count, database size, and encryption mode.

    /log status

This is the default when no subcommand is given.

### search

Full-text search across logged messages (plain text mode only).

    /log search <query>

Searches within the current buffer's network and channel context. Results
show the 20 most recent matches with timestamps.

Search is not available in encrypted mode since ciphertext cannot be indexed.

## Configuration

```toml
[logging]
enabled = true       # enable/disable logging
encrypt = false      # AES-256-GCM encryption (disables search)
retention_days = 0   # 0 = keep forever
exclude_types = []   # filter: "message", "action", "notice", "ctcp", "event"
```

### Encryption

When `encrypt = true`, message text is encrypted with AES-256-GCM using a
256-bit key auto-generated in `~/.repartee/.env`. No password is required —
same trust model as irssi logs or SSH keys.

Only the `text` column is encrypted. Network, buffer, nick, timestamp, and
type remain queryable for the future web frontend.

### Retention

Set `retention_days` to automatically purge old messages on startup.
`0` means keep forever.

### Excluding Types

Filter specific message types from logging:

```toml
[logging]
exclude_types = ["event"]  # skip join/part/quit/nick events
```

This is especially important if you're on many channels. A single QUIT or NICK
change fans out to every shared channel — on 70 channels, one quit becomes 35+
log rows. Adding `"event"` to `exclude_types` prevents this bloat.

## Examples

    /log
    /log status
    /log search ssl certificate

## See Also

/set, /ignore