SolarOS 4.17.7 manual · app
contacts
Provider-neutral address book for gateway and MeshCore identities. Contacts can carry multiple provider endpoints while retaining trust independently for each endpoint. A signed MeshCore advert creates a discovered endpoint: the signature proves possession of the advertised key, not the human identity behind it.
Open the searchable TUI:
contacts
The list is grouped by trust and provider. Press / to search, Enter to view the selected endpoint addresses, capabilities, last-seen times, and bounded provider metadata summary, and Esc or q to leave. The footer shows a Actions and ? Help, including on compact screens.
When Chat is included, select a contact and press c to open their direct conversation. Closing Chat returns to Contacts. Chat uses the contact's preferred direct endpoint, favoring trusted endpoints; sending to a discovered endpoint still requires confirmation. If its saved provider instance is unavailable, Contacts names that instance in the error. Check it in Messages before opening a chat. A running worker does not by itself mean its radio or companion binding is ready.
Press a in the list or details to manage the selected contact:
c: open Chat for the selected contact, when Chat is included.t: trust all endpoints or choose one endpoint.b: block all endpoints or choose one endpoint.r: edit the contact name, thenEnterto save orEscto cancel.l: choose another contact to link into the selected contact. Confirm withyto move its endpoints and remove its source record.d: remove the contact and its endpoints after confirming withy.
These shortcuts also work directly from the list and details. Use arrows and Enter in menus, and Esc to cancel. Confirmation pages require y; Enter does not confirm removal or linking. Press f in the list to filter by endpoint trust (all, discovered, trusted, or blocked), and s for store status. ? opens a scrollable key guide. Filters match contacts with any endpoint in that trust state; linking can select any other contact regardless of the current filter or name search.
The same operations are available from the shell:
contacts status
contacts list [all|discovered|trusted|blocked]
contacts show CONTACT_ID
contacts rename CONTACT_ID NAME
contacts trust CONTACT_ID [ENDPOINT_ID]
contacts block CONTACT_ID [ENDPOINT_ID]
contacts remove CONTACT_ID
contacts link TARGET_CONTACT_ID SOURCE_CONTACT_ID
Contact and endpoint identifiers autocomplete from live service snapshots. Linking moves the source endpoints to the target contact and removes the source record. When the 512-contact store is full, radio discovery may evict the oldest unpinned contact whose endpoints are all still discovered; trusted and blocked records are never automatically evicted. BLE companion imports preserve existing records and report overflow instead of evicting contacts. The shared store supports up to 576 endpoints.
The versioned store is CRC checked, uses two alternating headers and data copies, remains below 192 KiB, and normally lives at /.contacts/contacts.bin. If storage is unavailable, Contacts remains usable in volatile mode and contacts status reports the storage error.