Skip to content

TADTemporary Autonomous Devices

P2P decentralized chat for offline-first communities

TAD

Quick Start

Install and run TAD in 30 seconds:

bash
# Automatic installation
git clone https://github.com/fabriziosalmi/tad.git
cd tad
./install.sh

# Start chatting
./tad

Nodes on the same network will auto-discover each other!

What is TAD?

TAD is a peer-to-peer, decentralized chat system designed for offline-first communication in environments where traditional infrastructure fails or is absent:

  • Free parties - Coordinate without cell service
  • TAZ (Temporary Autonomous Zones) - Community self-organization
  • Protests & demonstrations - Resilient communication
  • Remote locations - Chat on local networks

Core Principles

  1. No Central Authority - True peer-to-peer mesh networking
  2. Offline-First - Works on local networks, no internet required
  3. Privacy by Design - End-to-end encryption for private channels
  4. Resilience - Gossip protocol ensures message delivery
  5. Simplicity - Zero configuration, just works

Architecture

mermaid
graph LR
    subgraph NodeA [Node A]
        direction TB
        A1[Ed25519]
        A2[SQLite]
        A3[Textual]
    end

    subgraph NodeB [Node B]
        direction TB
        B1[X25519]
        B2[AES-GCM]
        B3[Gossip]
    end

    subgraph NodeC [Node C]
        direction TB
        C1[SQLite]
        C2[Textual]
        C3[Gossip]
    end

    NodeA <==>|mDNS Discovery| NodeB
    NodeB <==>|Gossip Protocol| NodeC
    
    NodeA <-->|TCP Messages| NodeB
    NodeB <-->|TCP Messages| NodeC

    classDef node fill:#2d3748,stroke:#4a5568,color:#fff
    class NodeA,NodeB,NodeC node

┌─────────────┐ mDNS ┌─────────────┐ Gossip ┌─────────────┐ │ Node A │◄────────────► │ Node B │◄──────────────►│ Node C │ │ │ Discovery │ │ Protocol │ │ │ • Ed25519 │ │ • X25519 │ │ • SQLite │ │ • Textual │◄────────────► │ • Gossip │◄──────────────►│ • Gossip │ └─────────────┘ Messages └─────────────┘ Messages └─────────────┘


## Feature Status

- [x] mDNS peer discovery
- [x] Direct TCP connections  
- [x] Gossip protocol routing
- [x] Multi-channel chat
- [x] Private encrypted channels
- [x] Message persistence (SQLite)
- [x] Advanced TUI interface
- [x] Export/import functionality

## Documentation

::: tip 📚 Complete Documentation
- [Getting Started](/guide/getting-started.md) - Install and run TAD
- [User Guide](/guide/user-guide.md) - All commands and features
- [Deployment](/guide/deployment.md) - systemd, Docker, Raspberry Pi
- [Architecture](/reference/architecture.md) - Technical deep dive
- [API Reference](/reference/api-node.md) - Python modules and classes
:::


## Community

- **GitHub**: [fabriziosalmi/tad](https://github.com/fabriziosalmi/tad)
- **Issues**: [Report bugs or request features](https://github.com/fabriziosalmi/tad/issues)
- **License**: MIT

Released under the MIT License.