+++
title = "Contacts"
weight = 3
+++

The **Contacts** view shows all nodes in your mesh network. The sidebar lists contacts; the content area shows the chat or management view for the selected contact.

## Contact Types

Every contact in MeshCore has a **type** that determines how Meshy interacts with it. The type is set when a contact is added, either automatically from advertisements or manually.

| Type | Icon | Description |
|------|------|-------------|
| **Chat** | 👤 | A regular user node for direct messaging. Chat contacts support one-to-one encrypted conversations, path routing, and delivery confirmations. This is the most common contact type. |
| **Repeater** | 🔁 | A node configured to relay messages across the mesh. Repeaters extend the network range by forwarding traffic between nodes that can't reach each other directly. If you have the admin password, you can [manage the repeater](@/guide/repeater-management.md) remotely -- configure settings, manage firmware, view statistics, and reboot. |
| **Room** | 💬 | A room server that hosts group conversations. Room servers store and forward messages for all participants. You log in with a password to join the room. Admins can manage an access control list (ACL) to set participant permissions (Admin, Read-Write, or Read Only). Messages in rooms show the sender's name so you can see who wrote what. |
| **Sensor** | 📡 | A node with attached sensors (e.g., temperature, humidity, voltage). Sensor contacts display live telemetry data instead of a chat view. You can log in with a password to access detailed readings and device statistics. |

The contact type affects what you see when you select the contact in the sidebar: Chat and Room contacts open a messaging view, Repeater contacts open the management interface, and Sensor contacts open the telemetry dashboard.

## Contact List

Each contact shows its name, type icon, and routing status (Direct, Flood, Smart, or number of hops). Unread messages are indicated with a badge.

**Filtering and sorting:**

- **Search bar** -- filter contacts by name.
- **Filter button** -- show All, Favorites, or filter by type (Users, Repeaters, Room Servers, Sensors).
- **Sort button** -- sort by name (A-Z), heard recently, or latest messages. Optionally pin favorites to the top.

## Adding Contacts

Click the **+** button in the sidebar header:

- **Discover Contacts** -- shows nodes heard via advertisements that aren't in your contact list yet. Click the + button next to a node to add it. Reopen to see newly received advertisements.
- **Add Manually** -- enter the contact's type, name, and 64-character hex public key.
- **Import from Clipboard** -- paste a `meshcore://contact/add?...` URL (e.g., received from another user who exported their contact). Automatically detects and parses the contact information.
- **Scan QR Code** -- scan a QR code containing a `meshcore://` URL for a contact or channel. Uses the XDG Camera Portal with PipeWire and GStreamer for video capture. Supports both contact (`meshcore://contact/add?...`) and channel (`meshcore://channel/add?...`) QR codes. Requires camera permissions in Flatpak settings.

## Contact Details
To access the **contact details**, you can either click the three-dot button, that appears when you hover the mouse over a contact in the contact list, or long-press a contact in the contact list, or click the name of the contact above the chat.

### Contact Info

Click the contact name in the chat header to open the detail dialog:

- **Name** -- editable; changes are sent to the device when confirmed.
- **Favorite** -- toggle to pin the contact in your list.
- **Type** -- Chat, Repeater, Room, or Sensor.
- **Public Key** -- full 64-character hex key with a copy button.
- **Last Seen** -- when the contact last advertised.
- **Location** -- if the contact has GPS coordinates, shown with a "Show on Map" button.

### Routing

The **Routing** toggle lets you switch between **Classic** and **Smart** routing for this contact. The toggle shows the currently active strategy -- either the [global default](@/guide/settings.md#routing-and-messaging) or a per-contact override. Changing the toggle creates an explicit override for this contact that persists independently of the global setting. See the [Routing](@/guide/routing.md) page for a detailed description of both strategies.

Depending on the active strategy, the following controls are shown:

**Classic mode:**

- **Out Path** -- the current path as comma-separated hex hop identifiers. Editable to manually set a path.
- **Reset Path** -- clears the established path and switches to flood routing.
- **Force Flood** -- always use flood routing without establishing a path.
- **Show Path on Map** -- visualizes the route on a map with colored markers at each hop.

**Smart mode:**

- **Available Paths** -- opens a list of recently successful paths with their weights, success/failure counts, hop counts, and latency. Each path is color-coded. Individual paths can be removed with the delete button next to each entry. A map view and a Clear History button are available.

**Both modes:**

- **Automatically Reset Path** -- switch to flood routing after failed delivery attempts.

### Actions

For **Repeaters** and **Room Servers**, additional actions are available:

- **Room Management** -- opens the room management interface (requires login). Available for Room Servers.
- **Repeater Management** -- opens the repeater management interface (requires login). Available for Repeaters.
- **Ping** -- measures round-trip time and SNR to the node.
- **Discover Paths** -- sends a flood-routed message to discover a path to the node.
- **Regions** -- queries the repeater for the regions it has set up.

### Danger Zone

- **Remove Contact** -- deletes the contact and all message history (requires confirmation).
