The graphical client¶
The graphical client is Unseenet in a window on your own computer: the same groups, keys and vault as the terminal client, drawn with a mouse-friendly interface in the look of this site. It lives in its own repository, unseenet/unseenet-gui.
Pre-alpha prototype
Neither the graphical client nor the Unseenet core has had a security review. Play with it and pick it apart; do not rely on it to protect anyone yet.
A discussion is not a chat, and the graphical client keeps them apart just like the terminal client. Discussion groups work like a newsreader: the posts as a tree, one post at a time below it, Up Down through the thread, Space to the next unread, and R to answer in a compose window with the post quoted and your signature below. Chat groups are chats. The group's owner decides which a group is, and V shows it the other way.
Two ways to run it¶
Both are built from every change and self-tested; the newest are the development pre-release.
Portable (Linux, macOS, Windows) · Graphical. Unzip and start, from a USB stick or a
folder. Tor is included, and everything stays in data/ beside the
programs.
- Windows:
Unseenet Graphical.exeopens an app window (no console). - macOS:
Start Unseenet Graphical.commandopens an app window. - Linux:
sh start-graphical-linux.shopens Chromium, Chrome, Edge or Brave without tabs if you have one, else your browser.
Bootable (USB, SSD etc.) · Graphical. Write unseenet-gui-…-x86_64.img.xz to a USB
stick (for example with Raspberry Pi Imager or balenaEtcher), boot from it,
and the client starts full screen and runs from memory, as with the
terminal client's bootable image. The first screen sets up
Wi-Fi and the keyboard. It needs 4 GB of memory. In the boot menu, safe
graphics helps if the screen stays black, and text only starts the
terminal client instead.
The graphical client uses the same Unseenet/ folder and data/ as the terminal
client's portable build, so the two can share a stick and a
vault. Do not run both on the same vault at the same time.
How it works¶
The graphical client draws its window with web technology, but it is not a website. It runs on your own computer, nothing is hosted anywhere, and on Linux the window it opens in your browser only talks to the program on your own machine.
window ──HTTP/WebSocket──▶ unseenet-gui ──▶ unseenet core ──Tor──▶ nodes
(127.0.0.1 only) (local server) vault, keys, postage
unseenet-gui is a small local server around the core's Session, the
same one the terminal client uses. It opens the same encrypted vault,
starts the same Tor and talks to the same nodes. The window only draws what
you see: keys, signing, encryption and postage never leave the core, and
the passphrase is sent once, to unlock.
The local server guards itself against other programs and web pages on the same computer: it listens on 127.0.0.1 only, every start makes a random token that every request must carry, and a strict Content-Security-Policy keeps the page from loading anything from outside. What people wrote is shown as text, never as HTML, and links in posts are not clickable, because following one would leave Tor. The README has the details.
What it can do, and not yet¶
It can unlock or create a vault, follow and leave groups, read threads and chats (closed groups decrypted), post, reply and chat, show For you, private messages and contacts, create groups and invite to closed ones, and switch between a light and a dark theme. The bootable image also sets up the network, Wi-Fi and keyboard, and restarts or shuts down.
Not yet - use the terminal client for these: names (@you),
moderation and member removal, reporting, ignoring people, Tor bridges,
several identities and updating the stick.
From source¶
You need Python 3.11 or newer:
pip install "unseenet-gui @ git+https://github.com/unseenet/unseenet-gui"
unseenet-gui # opens your browser
unseenet-gui --window # in its own window (pip install "unseenet-gui[window] @ ...")
--window uses the system's web view in private mode, so nothing ends up in
your browser's history.