nullnet. Get the app ↗

PRIVATE, PEER-TO-PEER CHAT

Your words.
Your path.

A peer-to-peer chat app with a focused terminal interface. Connect directly when reachable, then keep the conversation between peers.

NETWORK / 01DIRECT BY DESIGN
nullnet connection and rendezvous diagramTwo peer identities establish a direct QUIC and TLS 1.3 connection. A rendezvous service assists discovery, with relay fallback when needed. PEER APEER B7F2A…91C442E8…A70DED25519 IDENTITYED25519 IDENTITYQUIC · TLS 1.3RENDEZVOUSDiscovery onlyRelay fallback when needed
01 — PEER CONNECTION DISCOVERY / SESSION
01BUILT FOR THE CONVERSATION↓ SCROLL TO EXPLORE
DIRECT CONNECTIONS✳NO FEED. NO FRICTION.✳JUST THE CONVERSATION✳

01 / THE IDEA

A lighter way to talk.
A different kind of connection.

Chat should feel
closer.

Nullnet puts the connection first. Talk directly when your network allows it, or use a relay-assisted route where available. No public timelines or noisy feeds—just a terminal interface and a conversation between peers.

01

Peer to peer

Connect directly over a local network or the internet when reachable.

02

Persistent identity

A consistent peer identity helps people recognize you between sessions.

03

Focused interface

A terminal interface keeps the controls close to the conversation.

02 / IN THE TERMINAL

Less interface.
More signal.

nullnet — example session SESSION FLOW
09:41:02

nullnet · peer-to-peer chat

09:41:03

› /start

09:41:03

Peer is listening for connections

09:41:11

› /connect <peer-address> <port>

09:41:12

Session established with your peer

09:41:19

your peer → made it. 👋

09:41:21

›

EXAMPLE SESSIONA CONNECTION, THEN A CONVERSATION
CONNECT. CONFIRM. CONVERSE.

A connection attempt is only the beginning; look for the session confirmation before assuming your peer is online.

03 / HOW IT WORKS

Four steps.
One conversation.

01
↓

Get nullnet

Download the latest release from the official project page.

02
⌁

Find your peer

Connect to their listening address and port, or use a shared relay room where available.

03
◇

Establish a session

The peers establish a session over a direct or relay-assisted route.

04
↗

Start talking

Choose the connected peer and send a message from the terminal.

04 / CONNECTION PATHS

One session.
Two clear paths.

Connect directly when reachable. A relay-assisted route may be available when a direct path cannot be made.

01 / DIRECT SESSIONWHEN REACHABLE
PEER APEER BYOUR DEVICEOTHER DEVICEQUIC · TLS 1.3RENDEZVOUSDiscovery only

Messages travel peer to peer. Rendezvous helps peers discover one another; it is not on the direct message path.

02 / RELAY-ASSISTEDWHERE AVAILABLE
PEER APEER BSENDERRECIPIENTRELAYSHARED ROOMSession traffic may pass through this relay

A route around reachability limits. Relay-assisted connections depend on support in the release and relay service.

05 / GET CONNECTED

Your next conversation
starts here.

OFFICIAL RELEASEnullnet.zip · GitHub Releases

Ready when
you are.

Get the latest nullnet release from the project’s official GitHub repository.

Review release notes and package details on GitHub. Download only from the official project repository.

Release notes ↗
Browse the source code ↗

06 / PRIVACY, PLAINLY

Built around direct
peer communication.

Private by
principle.

Nullnet puts peer-to-peer communication first, with clear connection paths and source code you can inspect.

01

Peer-to-peer sessions

Talk directly when a peer is reachable. A relay-assisted path may be available when a direct connection cannot be made.

↗
02

Know the route

Direct and relay-assisted connections take different paths. A relay can be part of the network path; consult the current release and source for its exact role.

↗
03

Open source

Review the implementation, follow release changes, or contribute through the project repository.

↗
Review the source ↗

07 / FIRST CONNECTION

Start small.
Connect nearby.

For a first test, run two instances on one computer with different listening ports. Connect to the other instance’s port. The address 127.0.0.1 reaches only your own computer.

LOCAL TEST2 instances
2 listening ports
127.0.0.1 reaches this computer only.
View the source ↗

08 / GOOD TO KNOW

Questions,
answered.

Clear answers for your first connection.

Do both people need the app?+

Yes. Both peers need a compatible version running, and the other peer must be listening on the target port.

Does direct mode work over the internet?+

Sometimes. Routers, firewalls, and carrier-grade NAT can prevent inbound connections. A public IP alone does not guarantee reachability; relay support may help where available.

What does a relay handle?+

A relay is part of the connection path when used. Review the current release and source for its exact role, the protections in place, and the connection metadata it can observe.

What if my peer is offline?+

A peer needs to be running and listening to establish a live session. An attempt to connect does not mean the handshake completed.

Where do I find release files and source code?+

Download the latest release or browse the source code on GitHub.

A direct network of nullnet peersSix peer nodes arranged in two rows, connected to adjacent peers by direct links. No central hub is shown.DIRECT PEER NETWORKMESH / 06 NODESPEER 012 DIRECT LINKSPEER 023 DIRECT LINKSPEER 032 DIRECT LINKSPEER 042 DIRECT LINKSPEER 053 DIRECT LINKSPEER 062 DIRECT LINKS

LESS DISTANCE. MORE SIGNAL.

Make the
connection.

Download nullnet ↗