guide: initial readme (#2006)

* guide: initial readme

* update guide

* guide:  initial documentation for audio and video calls (#2104)

* Added documentation for audio and video calls.

* Minor update

* corrections

---------

Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>

* remove trailing spaces and typos

* docs: update audio-video calls guide

* add app settings

* edit guide, link images and posts

* fix image links

* update

* update 2

* remove link

* remove spaces

* move images

* bold

* add image

---------

Co-authored-by: Silent-Ninja <128339587+silent-ninja-1@users.noreply.github.com>
This commit is contained in:
Evgeny Poberezkin 2023-03-30 15:17:13 +01:00
parent e344958224
commit 61dc649c70
9 changed files with 764 additions and 0 deletions

79
docs/guide/README.md Normal file
View file

@ -0,0 +1,79 @@
# SimpleX Chat user Guide
The first messaging platform that has no user identifiers of any kind — 100% private by design.
## Contents
- [Quick start](#quick-start) - scroll down this page
- [Sending messages](./send-messages.md)
- [Secret groups](./secret-groups.md)
- [Chat profiles](./chat-profiles.md)
- [Managing data](./managing-data.md)
- [Audio & video calls](./audio-video-calls.md)
- [Privacy & security](./privacy-security.md)
- [App settings](./app-settings.md)
## Quick start
### Create your first chat profile
After downloading SimpleX Chat via the links at https://simplex.chat:
- Open the app.
- Create a new profile by inputting your display name and full name (optional).
- Tap on "Create".
This profile is local to the device, it is not stored anywhere else
### Choose notifications mode
After you have created the chat profile the app will ask you to choose notifications mode.
<img src="../../blog/images/20220711-notifications.png" width="330">
Please read their description, as on iOS it is trade-off between convenience and privacy, with instant notifications sharing more meta-data with the servers, and on Android it is a trade-off between notification delays and battery life.
You can read more about [the differences between notifications work on Android and iOS](../../blog/20220404-simplex-chat-instant-notifications.md).
### Connect to developers
When you just start using the app, you can tap "chat with the developers" to ask any questions or just to test the app - feel free to send any test messages.
This button will disappear once you make the first connection. To connect to the developers later:
- [Open the app settings](./app-settings.md#opening-the-app-settings).
- Tap on "Send questions and ideas".
### Join some user groups
There are links to join several [user groups](../../README.md#join-user-groups) on our GitHub page - join them to ask any questions and discuss ideas.
You can also find some other user-managed groups via online search.
To join a group via a link:
- Get a link to a SimpleX user group, which you can get from your existing SimpleX conversations or by finding it online.
- Tap on a button in the lower right-hand of the screen.
- Tap on "Connect via link / QR code" button.
### Connect to friends
- Tell your friends to download SimpleX Chat app via one of the links here: https://simplex.chat
- Create a one-time link for each of you friends by tapping new chat button (Android: a floating pencil button in the bottom right corner, iOS: a pencil button in the top right corner)
- Tap _Create one-time invitation link_.
- Share each link with a different friend, or alternatively let them scan a QR code.
- You can optionally assign a different alias to each link, to know when they connect who is who, if they use incognito mode, for example.
- To use your link or QR code, tell your friends to tap new chat button and then tap on "Connect via link / QR code".
- They can either scan QR code or paste the link. If they opened the link in the browser, they need to tap "Open in mobile app" button on the page.
Watch the video on [the website](https://simplex.chat) that shows how it works.
You can also create a [long-term contact address](./app-settings.md#your-simplex-contact-address).
### Explore the app
Most app settings are shared for all profiles, but some settings are specific to chat profile.
Read more in [App settings](./app-settings.md) page.
Many conversation actions are available via long-press or swipe try them!

222
docs/guide/app-settings.md Normal file
View file

@ -0,0 +1,222 @@
# App settings
## Opening the app settings
To open app settings:
- Open the app.
- Tap on your user profile image in the upper right-hand of the screen.
- If you have more than one profile, tap the current profile again or choose Settings.
## Your profile settings
This section is labelled **"You"** in the app settings.
### Your active profile
Tap on your avatar/name to update your current profile names and avatar.
Display name cannot have any spaces and it is recommended to use latin characters and numbers to make it easier to type these names to the users who use [SimpleX Chat for the terminal](../CLI.md) (CLI).
**Please note**: When you save your profile, the update will be sent to all your contacts (excluding the contacts with whom your incognito profiles were shared). If you have a large number of contacts it can take several seconds.
### Your chat profiles
This page allows adding and configuring your chat profiles. Please see [Your chat profiles](./chat-profiles.md) for more details.
### Incognito
This feature is unique to SimpleX Chat it is independent from chat profiles.
When "Incognito” is turned on, your current profile name and image are NOT shared with your new contacts. It allows connections with other people without any shared data when you make new connections or join groups via a link a new random profile name will be generated for each contact or group.
Please read more in [this post](../../blog/20220901-simplex-chat-v3.2-incognito-mode.md#incognito-mode).
### Your SimpleX contact address
<img src="../../blog/images/20221108-address1.png" width="288"> &nbsp;&nbsp; <img src="../../blog/images/20221108-address2.png" width="288">
This page allows you to create a long term address that can be used by other people to connect with you. Unlike 1-time invitation links, these addresses can be used many times, that makes them good to share online, e.g. on other social media platforms.
When people connect to you via this address, you will receive a connection request that you can accept or reject. You can configure an automatic acceptance of connection request and an automatic welcome message that will be sent to the new contacts.
If you start receiving too many requests via this address it is always safe to remove it all the connections you created via this address will remain active, as this address is not used to deliver the messages.
Read more in [this post](../../blog/20221108-simplex-chat-v4.2-security-audit-new-website.md#auto-accept-contact-requests).
### Chat preferences
This page allows to configure the chat preferences that would apply to all contacts - they can be changed separately for each contact:
- _disappearing messages_ - to allow disappearing messages in the conversations with you, only if your contacts allow them.
- _delete for everyone_ - to allow irreversible message deletion (by default messages are marked as deleted, not fully deleted). "Yes" setting would allow it only if they allow it for you, and "Always" - even if they don't allow.
- _voice messages_ - to allow sending voice messages.
To set chat preferences in each contact, tap contact name on top of the conversation and then choose "Contact preferences".
Group owners can set similar preferences for their groups, when the group is created or later: tap group name on top of the conversation and then choose "Group preferences".
## Your app settings
This section is labelled **"Settings"** in the app settings.
### Notifications
This page allows to configure the notifications mode: instant, periodic or only when the app is running. There are some differences in how these options work on iOS and Android. Please read more in [this post](../../blog/20220404-simplex-chat-instant-notifications.md) about how notifications work.
You can also configure whether the message preview is shown when the message arrives.
**Please note**: For instant and periodic notifications to work on Android, you need to disable power optimization when prompted by the app, or later via the settings. Also, some variants of Android system require additional settings, for example MIU system on Xiaomi phones requires to enable "Auto start" for the app for the notification service to work. Please read [Don't kill my app](https://dontkillmyapp.com/) guide for any settings that may be required on your device.
Also, currently instant notifications have the highest battery consumption - we are working to reduce it to be less or the same as for periodic notifications.
### Network & servers
This page allows to configure your own SMP relays and change other network settings.
<img src="../../blog/images/20230204-transport.png" width="288">
#### SMP servers
<img src="../../blog/images/20221206-server1.png" width="288"> &nbsp;&nbsp; <img src="../../blog/images/20221206-server2.png" width="288"> &nbsp;&nbsp; <img src="../../blog/images/20221206-server3.png" width="288">
By default, the app has preset relays configured you can change them to your own.
This page also allows testing the connection with the servers.
Read more in [this post](../../blog/20221206-simplex-chat-v4.3-voice-messages.md#smp-servers-configuration-and-password).
#### Use SOCKS proxy (Android only)
This option makes the app connect via a SOCKS proxy that should be provided by some other app running on your device.
The most typical use for this is to run Orbot app that provides a SOCKS proxy to connect via Tor network, but it can be some other app and it can proxy connections via some other overlay network.
#### Use .onion hosts
##### Android
**Use .onion hosts** option is only available when **Use SOCKS proxy** is enabled. You can choose:
- _no_: never use .onion hosts. Choose this option if your SOCKS proxy does not connect via Tor network.
- _when available_ (default): when SOCKS proxy is enabled the app assumes that it provides connections via Tor network and use .onion host addresses when SMP relays include them in their configuration.
- _required_: always use .onion hosts. Choose this option if your SOCKS proxy connects via Tor network and you want to avoid connections without Tor. In this case, if the SMP relay address does not include .onion host, the connection will fail.
##### iOS
<img src="../../blog/images/20220901-onion1.png" width="330"> &nbsp; <img src="../../blog/images/20220901-onion2.png" width="330">
While iOS does not support SOCKS proxies, you can install Orbot app that works as VPN provider. You can choose:
- _no_ (default): do not use .onion hosts. Choose this option if you do not use Orbot or if you use VPN that proxies connections via some other overlay network.
- _when available_: use .onion host addresses when SMP relays include them in their configuration. Orbot VPN must be enabled for this option to work.
- _required_: always use .onion hosts. Choose this option if you use Orbot VPN and you want to avoid connections without Tor. In this case, if the SMP relay address does not include .onion host, the connection will fail. If you use this option, you can enable "Disable Orbot for non-onion traffic" option in Orbot settings making the rest of your device traffic to not use Tor.
**Please note** VPN on iOS can send some traffic to the usual network, if, for example, VPN app crashes. You can configure enable always-on VPN mode on managed iOS devices, but this is not applicable to most individual devices.
#### Transport isolation (BETA)
This option is only available if you have enabled developer tools.
Please read the details in [this post](../../blog/20230204-simplex-chat-v4-5-user-chat-profiles.md#transport-isolation).
#### Advanced network settings
<img src="../../blog/images/20220808-network.png" width="330">
If your network is slow, and connections to the servers keep failing (you would see a spinner on your contacts), please increase TCP and protocol timeouts in this page.
### Privacy and security
#### SimpleX Lock
SimpleX Lock when enabled requires to pass the device authentication when you open the app or use some security- or privacy-sensitive features.
You will be offered to enable it after you open the app a few times.
To enable it later:
- [Open the app settings](#opening-the-app-settings).
- Tap on "Privacy & security".
- Toggle on "SimpleX Lock" slider.
- Confirm your phone credentials.
Done! Now you will be required to authenticate when you start or resume the app after 30 seconds in background.
#### Protect app screen
<img src="../../blog/images/20221206-protect.png" width="330">
This option hides the app screen in recent apps - it is enabled by default. On Android it also prevents screenshots.
#### Auto Accept Images
Auto-accepting images may reduce privacy your contacts will know you are online.
- [Open the app settings](#opening-the-app-settings).
- Tap on "Privacy & security".
- Toggle on "Auto-accept images".
#### Send Link Previews
Enabling sending link previews may reduce privacy your app will be loading link preview from the website.
- [Open the app settings](#opening-the-app-settings).
- Tap on "Privacy & security".
- Toggle on "Send link previews".
#### SimpleX Links
This option affects how the links to connect to other SimpleX users or to join groups are shown in the conversations. You can choose between:
- _description_ (default): only the link description and server host name are shown. The link won't be opened in the browser.
- _full link_: the full link is shown. The link will still not be opened in the browser.
- _via browser_: the full link is shown, and it will be opened in the browser. In this case, if the link domain is different from simplex.chat, the link will be shown in red color, as it might be malicious.
Read more about [SimpleX Links security](../../blog/20221206-simplex-chat-v4.3-voice-messages.md#privacy-and-security-of-simplex-invitation-links).
### Appearance
This page allows configuring:
- interface language
- app icon
- accent color
### Database passphrase & export
This page allows to change the database passphrase, export and import the database and configure the message retention period.
Read more in [Managing Your Data](./managing-data.md) page.
## Help & feedback
This section has information on how to use the app and the links to connect to the team. Please use [Send questions and ideas](https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23%2F%3Fv%3D1%26dh%3DMCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%253D%26srv%3Dbylepyau3ty4czmn77q4fglvperknl4bi2eb2fdy2bh4jxtf32kf73yd.onion) to connect to us via the chat to ask any questions, make any suggestions and report any issues.
## Support SimpleX Chat
- contribute - the link to the information about how to contribute and to donate to the project.
- rate the app - rate and review it on the App Store or Play Store - your feedback helps a lot.
- star on GitHub - that also helps us grow very much.
Thank you for your support!
## Developer tools
This page has options that normally are only needed for app developers and can be used to debug the app in case something is not working.
### Chat console
Here you can see and use console command with the chat core. None of this information is sent over the network, this is an internal communication between different parts of the app.
Please be careful - some of the commands can disrupt app functioning, only use them if you know what you are doing or were instructed by the team.
**Please note**: the log in console can contain what looks like errors. Unless you experience any issues in the app UI, these errors should not be considered as the app malfunction - they are likely to be normal and expected behavior.
### Confirm database upgrades
This option is off by default - the app database is migrated to the new version without any confirmations. Starting from v4.6.2 these migrations are reversible - you can rollback to the previous version(s) of the app (not earlier than v4.6.1). If you want to be asked a confirmation every time database is upgraded you may enable this option - this is not recommended, as it happens almost on every app update, and should not cause any concerns.
### Show developer options
This option currently enables [Transport isolation mode](#transport-isolation-beta) option and also enables showing database IDs in contacts, groups and group members to simplify debugging via console commands.

View file

@ -0,0 +1,82 @@
# Audio and Video Calls
SimpleX Chat allows you to make end-to-end encrypted audio and video calls with your contacts via WebRTC. Note: Group calls are not supported at this time.
## Making and accepting the calls
### How to make an audio call
1. Tap on a contact.
2. Tap on the phone icon to the right of your contact's name at the top of the screen.
### How to make a video call
1. Tap on a contact.
2. Tap on the three vertical dots on the top right-hand corner of the screen to access more options.
3. Choose **Video call**.
### Accepting the calls
When there is an incoming call you have three options:
- accept: to connect the call
- reject: to reject the call, _without_ notifying the caller.
- ignore: to temporarily dismiss the call, but in a way that it can be accepted later, if the caller is still waiting, via the **Accept call** message in the conversation with this contact.
There is no time limit that the call invitation can remain active - as long as the caller is still waiting, you can accept the call any time later.
The call can be accepted from the lock screen, both on Android (it needs to be enabled via options) and on iOS (by default, using native iOS call interface that can be disabled).
### Calls on lock screen on Android
SimpleX Chat shows an incoming call on your device's lock screen by default. However, you can change this behavior in the app settings menu.
1. Open the app settings menu.
2. Tap **Audio and Video calls**.
3. On the **Calls on lock screen** drop-down list, choose from the following three options:
- Disable - the call will show as a notification.
- Show - the call will show on the lock screen, you need to unlock the device and the app to accept it.
- Accept - the call can be accepted and rejected directly from the lock screen, without opening the app.
**Please note**: some Android systems/devices prohibit full screen views on lock screen - in this case the call will show as a usual notification.
### Calls on lock screen on iOS
<img src="../../blog/images/20230328-call1.png" width="288">
By default, SimpleX Chat uses native iOS call interface, where allowed, to show incoming calls on the lock screen. You can disable it:
1. Open the app settings menu.
2. Tap **Audio and Video calls**.
3. Toggle the **Use iOS call interface** switch off.
**Please note**: iOS call interface allows accepting the calls without unlocking the device and the app. If this is undesirable, please disable it the calls will show as notifications in this case.
Read more in [this post](../../blog/20230328-simplex-chat-v4-6-hidden-profiles.md#improved-audiovideo-calls).
## Advanced call settings
### WebRTC ICE servers
<img src="../../blog/images/20220928-ice-servers.png" width="330">
SimpleX Chat uses a preset relay server to hide your IP address from your contacts by default, but it can also observe the duration of your calls. If you don't want that, you can configure and use your self-hosted WebRTC relay servers instead for further control of your calls.
1. Open the app settings menu.
2. Tap **Audio and Video calls**.
3. Tap **WebRTC ICE servers**.
4. Toggle the **Configure ICE servers** switch on.
5. Enter your ICE server addresses (one per line).
6. Tap **Save**.
**Please note**: unlike messaging relays (SMP servers), the configuration of WebRTC ICE servers is stored on the current device, not in the chat database. if you transfer the chat database to another device you need to update this configuration.
### Always use relay
Audio and video calls on SimpleX Chat are routed via a TURN relay server by default. Optionally you can disable this and use peer-to-peer (P2P) instead, when it is supported by your network. However, your IP address will be known to your contacts.
1. Open the app settings menu.
2. Tap **Audio and Video calls**.
3. Toggle the **Always use relay** switch on to use a relay server or off for P2P.
**Please note**: disabling this option allows P2P calls, but it does not prohibit the use of TURN relays in case your network providers block P2P connections, the call will still use relays if the are available. To prohibit the use of relays you need to change WebRTC ICE server configuration to only include STUN servers, for example:

101
docs/guide/chat-profiles.md Normal file
View file

@ -0,0 +1,101 @@
# Your chat profiles
## Creating additional chat profiles
SimpleX Chat allows creating as many chat profiles as you like. Same as the first profile, they are only stored locally on your device.
<img src="../../blog/images/20230204-profiles2.png" width="288">
To create an additional SimpleX Chat profile:
- [Open the app settings](./app-settings.md#opening-the-app-settings).
- Select "Your chat profiles".
- Unlock option via fingerprint or PIN.
- Tap on "+ Add profile”.
- Create a new profile by inputting your display name and full name (optional).
- Tap on "Create".
## Hiding and muting chat profiles
v4.6 added the ability to mute and to hide chat profiles.
<img src="../../blog/images/20230328-hidden-profiles1.png" width="288"> &nbsp;&nbsp; <img src="../../blog/images/20230328-hidden-profiles2.png" width="288"> &nbsp;&nbsp; <img src="../../blog/images/20230328-hidden-profiles3.png" width="288">
These actions are available via long-press (Android) or swipe (iOS) on the profile in the list.
To unhide hidden profiles, enter the full password in the search bar.
## Switching between profiles
<img src="../../blog/images/20230204-profiles1.png" width="288">
- Tap on your user profile image in the upper right-hand of the screen.
- Select which profile you want to use.
You can also switch profile via Your chat profiles in the settings.
## Incognito mode
<img src="../../blog/images/20220901-incognito1.png" width="330"> <img src="../../blog/images/20220901-incognito2.png" width="330"> <img src="../../blog/images/20220901-incognito3.png" width="330">
This feature is unique to SimpleX Chat it is independent from chat profiles.
When "Incognito Mode” is turned on, your currently chosen profile name and image are hidden from your new contacts. It allows anonymous connections with other people without any shared data when you make new connections or join groups via a link a new random profile name will be generated for each connection.
To toggle the incognito mode on/off:
- [Open the app settings](./app-settings.md#opening-the-app-settings).
- Turn on/off incognito mode by tapping on the switch on "Incognito".
Please read more in [this post](../../blog/20220901-simplex-chat-v3.2-incognito-mode.md#incognito-mode).
## Edit your profile
To edit your profile:
- [Open the app settings](./app-settings.md#opening-the-app-settings).
- Select your profile.
- Tap on "Edit".
- Input your desired profile name and/or update your full name.
- You can also set and change profile image.
- Tap on "Save and notify contacts".
## Move your chat profiles to another device
SimpleX Chat stores all user data only on client devices using a portable encrypted database format that can be exported and transferred to any supported device.
To export your SimpleX Chat data:
- [Open the app settings](./app-settings.md#opening-the-app-settings).
- Tap on your user profile image in the upper right-hand of the screen.
- If you have more than one profile, tap it again or choose Settings
- Select "Database passphrase & export".
- Stop chat by toggling "Chat is running".
- Click on "Stop” on the prompt window.
- Confirm it with fingerprint or PIN.
- If you didn't set it before, set a passphrase on "Database passphrase". Initially, the database is encrypted with a random passphrase that is stored in KeyChain (iOS) or with KeyStore (Android).
- Tap on "Export database" - it won't allow exporting unless you choose a passphrase.
- Save the file on your device or share it via any available option, e.g. via AirDrop on iOS.
To import your SimpleX Chat data in the app on another device:
- Transfer the database file to this device.
- Download SimpleX and install it on your new device.
- Create chat profile by following the steps in [Create your first chat profile](#create-yout-first-chat-profile).
- Tap on your user profile image in the upper right-hand corner of the screen to open Settings.
- Select "Database passphrase & export".
- Disable chat by tapping the switch on "Chat is running".
- Click on "Stop” on the prompt window.
- Confirm it with fingerprint or PIN.
- Tap "Import database".
- Select the .zip file of the exported chat data.
- Tap "Import” on the pop-up prompt.
- Start chat via toggle or close and start the app you will be prompted to enter the passphrase for your chat database.
**Please note**:
1. Currently you cannot move some of the profiles, only the whole database containing all profiles can be moved.
2. You must NOT use the exported database on more than one device at a time, as it may disrupt some of the connections. You also must always use the latest version of the chat database - using the old one is also likely to disrupt your connections.
3. There is no way to recover lost passphrase - make sure to store it securely.

View file

@ -0,0 +1,16 @@
# Connect to somebody in the chat
_Work in progress_
Because you have no identifier on the SimpleX platform, nobody can contact you unless you share a one-time or temporary user address, such as a QR code or a link.
Even with the optional user address, while it can be used to send spam contact requests, you can change or completely delete it without losing any of your connections.
Private Connection — connect using an invitation link or QR code via video or in-person.
Group Chat — Users have the option to create a secret group, share their contact link [which can be deleted later on], or generate a one-time invitation link.
## Conversation preferences
Tap on one of your conversations to open conversation preferences.
Here you can choose whether you wish to allow disappearing messages, deleting messages for everyone and voice messages.

View file

@ -0,0 +1,42 @@
# Managing Your Data
## Automatic message deletion
Here you can choose to delete messages from your local chat database after a set period of time.
**Please note**: This option does not delete messages for other users, only for you. This option is set independently for each chat profile.
## Chat Database
To open your chat database settings:
- [Open the app settings](./app-settings.md#opening-the-app-settings).
- Tap on "Database passphrase & export" button.
### Database passphrase
<img src="../../blog/images/20220928-passphrase.png" width="330">
By default, database passphrase is random, you have to set it manually to be able to export it.
### App data backup
Here you can allow the system to back up app data, wherever it is configured. A database passphrase must be set to use this.
### Export database
Here you can export the chat database to a file.
### Import database
Here you can import the chat database from a file.
### Delete database
Here you can delete your chat database. WARNING: Results in a loss of all your SimpleX Chat data! Unless you have just exported the chat database.
## Delete files and media
<img src="../../blog/images/20220928-files-media.png" width="330">
You can delete all sent and received files and media stored in the app via this option, without deleting the messages.

View file

@ -0,0 +1,57 @@
# Privacy and Security
SimpleX Chat default configuration aims to balance privacy, security and convenience. You may want to change the default options.
This page lists all the features and options that affect privacy and security.
## Privacy and Security settings
These settings are available in the [Privacy & Security settings](./app-settings.md#privacy-and-security).
## Security code verification
<img src="../../blog/images/20230103-verification.png" width="288">
While SimpleX Chat always establishes connection via link passed via an independent channel, so it is already more protected than other apps, there are scenarios when the invitation links can be substituted in transit (MITM attack). To protect against such attacks, you should verify the security code with your contacts:
- open the conversation with the contact
- tap the contact name on top of the conversation
- tap "Verify security code"
- ask your contact to do the same
- the connection is secure if you and your contact have the same security code
This can be validated by one of the following:
- one of you can scan the security code from their device, if the codes match the contact will be marked as verified on the device that scanned the code.
- simply tap mark verified if you trust the confirmation from your contact that the code is verified.
- you can also read the contact over the voice call.
Read more in [this post](../../blog/20230103-simplex-chat-v4.4-disappearing-messages.md#connection-security-verification)
## Database passphrase
When installed, the app generates a random passphrase for the chat database and stores it securely in KeyChain (iOS) or using KeyStore (Android, TPM module is used when available). You can set your own passphrase and also remove it from the device, in which case you will need to enter it every time you start the app, and notifications may be limited, in the [Database passphrase & export](./managing-data.md#database-passphrase) settings.
## Incognito mode
This feature generates a random profile name for each new contact. Read more in [Incognito mode](./app-settings.md#incognito).
## Hidden profiles
This feature allows to hide some of your chat profiles with the password. Read more in [Hiding and muting chat profiles](./chat-profiles.md#hiding-and-muting-chat-profiles).
## Network settings
[Transport isolation (BETA)](./app-settings.md#transport-isolation-beta) allows to isolate you traffic with each contact in a different TCP connection (and Tor circuit).
## Using Tor
<img src="../../blog/images/20220808-tor1.png" width="330"> &nbsp; <img src="../../blog/images/20220808-tor2.png" width="330">
To connect to SMP relays (messaging servers) via Tor you need to install Orbot app.
Android: use Orbot app as SOCKS proxy on port 9050 (default) and enable [Use SOCKS proxy](./app-settings.md#use-socks-proxy-android-only).
iOS: use Orbot app as VPN provider and enable VPN.
You can also change which server addresses are used with [Use .onion hosts option](./app-settings.md#use-onion-hosts).

View file

@ -0,0 +1,66 @@
# Secret groups
Secret groups are anonymous and private, they are designed to be hard to track by outsiders. Every message and file gets sent separately to every member in the group, which makes secret groups only fit for smaller groups.
## Creating a group
<img src="../../blog/images/20220808-group1.png" width="330"> <img src="../../blog/images/20220808-group2.png" width="330"> <img src="../../blog/images/20220808-group3.png" width="330">
- Tap on a button in the lower right-hand of the screen.
- Tap on "Create secret group".
- Enter group display name.
- Tap on "Create".
## Group preferences
Here you can choose whether you want to allow disappearing messages, direct messages, deleting for everyone and voice messages.
## Adding members
- Open a group.
- Tap on + button in the upper right-hand of the screen.
- Select contacts you wish to invite.
- Tap on "Invite to group".
## Joining a group
<img src="../../blog/images/20220723-group-invite.png" width="330">
When you receive the invitation to join the group you can accept it both from the conversation with your contact and from the list of conversations.
## Leaving a group
<img src="../../blog/images/20220723-group-leave.png" width="330">
Tap and hold (Android) or swipe (iOS) the group in the list of the conversations to leave the group.
You can also leave the group from the group page:
- Open a group conversation.
- Tap group name on top.
- Scroll to the bottom and tap "Leave group".
## Member permissions
Open a group and tap on group's name to view members list, there you can tap on a member and change their role.
- Observer: can only read messages (and delete or mark deleted the messages they sent before their role was changed).
- Member: can send messages and delete own messages.
- Admin: Same as member, but can delete the messages of others and remove members from the group.
- Owner: Same as admin, but can change group preferences.
## Link to join group
<img src="../../blog/images/20221108-group1.png" width="288"> &nbsp;&nbsp; <img src="../../blog/images/20221108-group2.png" width="288">
If you are a group owner or admin, you can create a link that can be used by anyone to join the group, making a group more public.
- Open a group conversation.
- Tap group name.
- Tap on "Create group link.
Once the link is created, you can also change the role assigned to members when they join.
## Welcome message
If you are a group owner you can create a welcome message that will be shown to all new members joining group.

View file

@ -0,0 +1,99 @@
# Sending, editing and deleting messages
Sending text messages on SimpleX Chat is pretty straightforward, tap on your contact and then tap on text area, type in your message and tap on "Send" button.
You need to open a conversation to send messages.
## Sending messages
### Sending text messages
You can send, edit and quote messages in a conversation.
To send, simply type in the message in the entry box and tap "Send".
To edit or quote a message, tap and hold the message and choose the action.
### Sending images and files
- Tap 📎 (paperclip) button on the left of the message entry box.
- Choose between "Use Camera", "From Gallery" and "Choose file".
- Once you have chosen what you wish to send, tap on "Send" button.
On iOS you can also paste images from the clipboard.
### Sending voice messages
<img src="../../blog/images/20221206-voice.png" width="288">
- Tap 🎤 (microphone) button on the right of the message entry box.
- Allow SimpleX Chat to record the voice if prompted. You will have to tap on the microphone button once again if this happens.
- Speak, once you've finished the recording, tap on the square stop icon on the right.
- You may listen to the recording before sending it, and re-record if necessary.
- Tap on "Send" button to send the recorded voice message.
You can also tap and hold the microphone button to record a voice message. In this case the recording will stop once you release the button. You still need to tap "Send" to send the message.
**Please note**: if the microphone button is gray, that means voice messages are disabled in this conversation. Ask your contact or group owner to enable them (they are enabled by default).
### How to use disappearing messages
<img src="../../blog/images/20230103-disappearing2.png" width="288"> &nbsp;&nbsp; <img src="../../blog/images/20230103-disappearing1.png" width="288">
- Tap on name of the conversation.
- Toggle the slider next to "Disappearing messages".
- Choose how long until messages are deleted after being sent in "Delete after".
**Please note**: Your contact must also enable disappearing messages. In a group, only group owner can enable disappearing messages.
### Sending "live" messages
<img src="../../blog/images/20230103-live.png" width="288">
You can use "live" messages for your recipients to see the messages as you type them, without having to tap "Send" button until it's completed. It can be useful in these scenarios:
1. Real-time conversation, like talking in person or in a discussion club. You can retract what you wrote, but your recipients would see it. Also people dont need to guess what youre typing. This allows to avoid interrupting the flow of conversation and still send longer messages.
2. An activist doing live reporting when there is a risk to lose the phone or connection at any moment. This feature allows to send as much as possible, up to the last word, without having to send only very short messages.
To send a "live" message:
- Tap ⚡️ (lightning) button on the right of the message entry box.
- When you do it first time, you would see and alert explaining the feature. Tap "OK", and tap it again.
- Now you can start typing the messages, the app will be periodically sending the updates to your recipients, as you type (every few seconds, and only complete words).
### Sending stickers and animated messages
<img src="../../blog/images/20230103-stickers1.png" width="288"> &nbsp;&nbsp; <img src="../../blog/images/20230103-stickers2.png" width="303">
While there are no stickers and GIFs in the app itself, you can send them using third-party (such as [GIPHY](https://apps.apple.com/us/app/giphy-the-gif-search-engine/id974748812) on iOS) or native (Android 13+) keyboards.
### Message drafts
<img src="../../blog/images/20230204-draft1.png" width="288"> &nbsp;&nbsp; <img src="../../blog/images/20230204-draft2.png" width="288">
Messages are kept in the chat until they are sent, even if you leave the chat.
For privacy and simplicity, we decided to allow only one message draft and keep it only until the app is stopped.
Read more in [this post](../../blog/20230204-simplex-chat-v4-5-user-chat-profiles.md#message-draft).
## Deleting messages
<img src="../../blog/images/20221206-deleted1.png" width="288"> &nbsp;&nbsp; <img src="../../blog/images/20221206-deleted2.png" width="288">
To delete a message, tap and hold the message and choose "Delete".
If you sent this message yourself within the last 24 hours, you will be offered two options:
- `delete for everyone` - this will either mark the message as deleted for you and the recipient(s) (this is the default) or fully delete the message on your and recipients' devices (if you have enabled "Delete for everyone" in the conversation preferences)
- `delete for me` - this will delete the message only locally.
Please read about [reasons for not allowing full deletion by default](../../blog/20221206-simplex-chat-v4.3-voice-messages.md#irreversible-message-deletion). TL;DR: data sovereignty.
## Moderating messages in the groups
Group admins can delete member messages that are inappropriate for the groups.
To remove a message of another member, tap and hold the message and choose "Moderate".
Please read about [group moderation](../../blog/20230328-simplex-chat-v4-6-hidden-profiles.md#community-moderation).