New in version 0.9.18
- While the phone rings the channel stays open: it goes quiet when you answer.
- Notifications name the channel and say the times.
- You choose the other person's name.
- "Leave and become unavailable" is at the top, apart, and asks for confirmation.
- The buttons' sounds have a volume setting; coming in and going out are arpeggios.
- Better colours in the volume strip.
Duetto is a tiny "Discord" made to measure for two people only. It is not an app for calling: it is a permanent channel. Open the app and you are in; if the other person is there too you connect by yourselves, and otherwise you stay reachable and are told the moment they arrive.
Audio and video travel end-to-end encrypted straight between the two phones. The server - yours, or one somebody let you in to - is only there to let you find each other, and cannot read anything. No account, no phone number, no service of anybody's.
- One tap and you are in the channel, and you stay: the app survives the night, the pocket, the change of network.
- Video when you want it, with the quality chosen for both phones.
- The other person can call you back with a sound that gets through even with the ringer down.
- Pairing with an eight-digit code or a QR code held up to the other phone; invitations for whoever is to open connections of their own on your server.
- Silent during a phone call, back when it ends.
- Free software, GPL-3, and a server you run yourself: a small Node.js process and coturn.
You need Android 7 or later, and a server: the README says how to put one up in a quarter of an hour.
Versions
Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.
Download F-Droid
-
arm64-v8a
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
connect to paired Bluetooth devices
Allows the app to connect to paired Bluetooth devices
-
take pictures and videos
This app can take pictures and record videos using the camera while the app is in use.
-
change network connectivity
Allows the app to change the state of network connectivity.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "camera"
Allows the app to make use of foreground services with the type "camera"
-
run foreground service with the type "microphone"
Allows the app to make use of foreground services with the type "microphone"
-
run foreground service with the type "specialUse"
Allows the app to make use of foreground services with the type "specialUse"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
change your audio settings
Allows the app to modify global audio settings such as volume and which speaker is used for output.
-
show notifications
Allows the app to show notifications
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
record audio
This app can record audio using the microphone while the app is in use.
-
ask to ignore battery optimizations
Allows an app to ask for permission to ignore battery optimizations for that app.
-
control vibration
Allows the app to control the vibrator.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
com.duetto.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
28 MiB
PGP Signature
|
Build Log
New in version 0.9.16
- A connection goes out as a link: whoever opens it is connected at once; the code waits a day.
- The app opens on the door, with Enter; a second button goes straight in from then on.
- The channel opens in the earpiece; at the ear the sound moves there; a headset takes it when it connects.
- One screen accepts an invitation or a connection: QR, pasted link or code. Each pair remembers its server.
- Video starts sharp on wifi. Short packets for a lossy network. The journal records loss.
-
arm64-v8a
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
connect to paired Bluetooth devices
Allows the app to connect to paired Bluetooth devices
-
take pictures and videos
This app can take pictures and record videos using the camera while the app is in use.
-
change network connectivity
Allows the app to change the state of network connectivity.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "camera"
Allows the app to make use of foreground services with the type "camera"
-
run foreground service with the type "microphone"
Allows the app to make use of foreground services with the type "microphone"
-
run foreground service with the type "specialUse"
Allows the app to make use of foreground services with the type "specialUse"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
change your audio settings
Allows the app to modify global audio settings such as volume and which speaker is used for output.
-
show notifications
Allows the app to show notifications
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
record audio
This app can record audio using the microphone while the app is in use.
-
ask to ignore battery optimizations
Allows an app to ask for permission to ignore battery optimizations for that app.
-
control vibration
Allows the app to control the vibrator.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
com.duetto.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
28 MiB
PGP Signature
|
Build Log
New in version 0.9.15
The volume you hear is now a strip instead of a line: you can touch it anywhere or drag it. The alert can be made your own, with one of Duetto's sounds or with a sound of the phone. An invitation opened on the phone now opens Duetto, with the server and the code already in place. The invitation written on a beta tester's work item stays open, says until when it works, and makes them a guest of the project. Two phones tell each other which version they are showing.
-
arm64-v8a
This version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Permissions
-
view network connections
Allows the app to view information about network connections such as which networks exist and are connected.
-
connect to paired Bluetooth devices
Allows the app to connect to paired Bluetooth devices
-
take pictures and videos
This app can take pictures and record videos using the camera while the app is in use.
-
change network connectivity
Allows the app to change the state of network connectivity.
-
run foreground service
Allows the app to make use of foreground services.
-
run foreground service with the type "camera"
Allows the app to make use of foreground services with the type "camera"
-
run foreground service with the type "microphone"
Allows the app to make use of foreground services with the type "microphone"
-
run foreground service with the type "specialUse"
Allows the app to make use of foreground services with the type "specialUse"
-
have full network access
Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
-
change your audio settings
Allows the app to modify global audio settings such as volume and which speaker is used for output.
-
show notifications
Allows the app to show notifications
-
run at startup
Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
-
record audio
This app can record audio using the microphone while the app is in use.
-
ask to ignore battery optimizations
Allows an app to ask for permission to ignore battery optimizations for that app.
-
control vibration
Allows the app to control the vibrator.
-
prevent phone from sleeping
Allows the app to prevent the phone from going to sleep.
-
com.duetto.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Download APK
28 MiB
PGP Signature
|
Build Log