# Configuration
## Config file location
siggy loads its config from a TOML file at the platform-specific path:
| Linux / macOS | `~/.config/siggy/config.toml` |
| Windows | `%APPDATA%\siggy\config.toml` |
You can override the path with the `-c` flag:
```sh
siggy -c /path/to/config.toml
```
## Config fields
All fields are optional. Here is a complete example with defaults:
```toml
account = "+15551234567"
signal_cli_path = "signal-cli"
download_dir = "/home/user/signal-downloads"
notify_direct = true
notify_group = true
desktop_notifications = false
inline_images = true
native_images = false
show_receipts = true
color_receipts = true
nerd_fonts = false
reaction_verbose = false
send_read_receipts = true
mouse_enabled = true
theme = "Default"
keybinding_profile = "Default"
proxy = ""
```
### Field reference
| `account` | string | `""` | Phone number in E.164 format |
| `signal_cli_path` | string | `"signal-cli"` | Path to the signal-cli binary |
| `download_dir` | string | `~/signal-downloads/` | Directory for downloaded attachments |
| `notify_direct` | bool | `true` | Terminal bell on new direct messages |
| `notify_group` | bool | `true` | Terminal bell on new group messages |
| `desktop_notifications` | bool | `false` | OS-level desktop notifications for incoming messages |
| `inline_images` | bool | `true` | Render image attachments as halfblock art |
| `native_images` | bool | `false` | Use native terminal image protocols (Kitty/iTerm2) |
| `show_receipts` | bool | `true` | Show delivery/read receipt status symbols |
| `color_receipts` | bool | `true` | Colored receipt status symbols (vs monochrome) |
| `nerd_fonts` | bool | `false` | Use Nerd Font glyphs for status symbols |
| `reaction_verbose` | bool | `false` | Show reaction sender names instead of counts |
| `send_read_receipts` | bool | `true` | Send read receipts when viewing conversations |
| `mouse_enabled` | bool | `true` | Enable mouse support (click sidebar, scroll, etc.) |
| `theme` | string | `"Default"` | Color theme name |
| `keybinding_profile` | string | `"Default"` | Keybinding profile (`Default`, `Emacs`, `Minimal`, or custom) |
| `proxy` | string | `""` | Signal TLS proxy URL passed through to signal-cli |
## CLI flags
CLI flags override config file values for the current session:
| `-a +15551234567` | `account` |
| `-c /path/to/config.toml` | Config file path |
| `--incognito` | Uses in-memory database (no persistence) |
## Settings overlay

Press `/settings` inside the app to open the settings overlay. This provides
toggles for runtime settings:
- Notification toggles (direct / group / desktop)
- Sidebar visibility
- Inline image previews / native images
- Show read receipts / receipt colors / nerd font icons
- Verbose reactions
- Send read receipts
- Mouse support
- Theme selector
- Keybinding profile selector
Changes made in the settings overlay are saved to the config file when you
close the overlay, and persist across sessions.
## Incognito mode
```sh
siggy --incognito
```
Incognito mode replaces the on-disk SQLite database with an in-memory database.
No messages, conversations, or read markers are saved. When you exit, all data is
gone. The status bar shows a bold magenta **incognito** indicator.