Repository navigation
Home
Chat from one device to another β terminal, desktop window, or phone.
No account, no server, no cloud. One device hosts, the others connect, and every
session is sealed end to end.
# on the device that serves
cthrone host
# on the other one, with the address the host printed
cthrone connect 192.168.1.5Both screens show a six-digit code the first time β π compare them, accept on the host, and type. That is the whole setup.
π₯οΈ Prefer a window? Run
cthrone_gui, orcthrone uifrom the CLI build. π± On a phone, install the APK and use the Setup tab.
flowchart LR
T["π» terminal"]
W["π₯οΈ window"]
P["π± phone"]
T --> S
W --> S
P --> S
S{{"π sealed session<br/>X25519 Β· AES-256-GCM"}}
S --> R["π¬ room<br/>the host relays to<br/>every other device"]
The transport is a flag β websocket (default), NATS (a broker) or Bluetooth (no network at all). Everything above it is the same code, so the chat behaves the same whichever you pick.
| I want to⦠| Go here |
|---|---|
| π¬ chat right now | Host and connect β two commands |
| βοΈ copy, delete or hide a message | Working with messages |
| π understand the code both screens show | Pairing and peers |
| π send a picture, a file or a voice note | Send a file |
| ποΈ play a GIF or a video | Video in the app |
| πΆ chat with no network at all | Bluetooth |
| π°οΈ chat across two networks | NATS Β· Across networks |
| π fix something | Troubleshooting |
| π know what is protected | Security model |
| π§ͺ help prove what is unproven | Verifying on real hardware |
| π οΈ build or change it | Development |
| Terminal | Window | Phone | |
|---|---|---|---|
| websocket (default) | β | β | β |
| NATS (needs a broker) | β | β | β |
| Bluetooth (no network) | β Linux | β Linux | β not yet (#206) |
| files | β text only | β | β |
| audio (WAV/MP3) | β | β | β |
| animated GIF | β | β | β |
| video (MP4/H.264) | β | β needs a codec (#389) | β |
This project says what it verified. β means nobody has run it, not it is broken:
| Claim | State |
|---|---|
| the app, the transports and the security model | β tested on every change |
| audio (WAV/MP3) with a waveform and a seek bar | |
| an animated GIF playing in its row | |
| the Bluetooth radio on Windows | β #224 |
| the phone app on a device, and its radio | β #155, #206 |
| video (MP4/H.264) | β needs a codec β #389 |
If you own one of the β rows, Verifying on real hardware has the steps and the issue to report on. "It worked" is an answer.
π¦ Releases Β· π Issues Β· πΊοΈ Roadmap board Β· π€ Contributing
π¬ cthrone
- π Home
- π Host and connect
- βοΈ Working with messages
- π Pairing and peers
- π Send a file
- π΅ Video in the app
- πΆ Bluetooth
- π°οΈ NATS
- π Across networks
- π§° Commands and flags
- π Troubleshooting
- π Security model
- π§ͺ Verifying on real hardware
- π οΈ Development
- π README
- π Issues
- πΊοΈ Roadmap board
- π€ Contributing