正在加载完整 README。 以下为已保存的摘录。
Active seed nodes and their timeline capacity.
No servers. No accounts. No censorship. Your keys = your identity. Tor = your shield.
Y is a decentralized, anonymous chat platform built in Rust. It runs over the Tor network with cryptographic identity — no signups, no emails, no phone numbers. You are your keypair.
Identity
• First run generates an Ed25519 keypair
• Your address: root:a8Kx2m... (derived from your public key)
• Stored locally at ~/.root-chat/db
• No registration. No server. You are your keys.查看完整 README ↗
Active seed nodes and their timeline capacity.
No servers. No accounts. No censorship. Your keys = your identity. Tor = your shield.
Y is a decentralized, anonymous chat platform built in Rust. It runs over the Tor network with cryptographic identity — no signups, no emails, no phone numbers. You are your keypair.
You type → Sign (Ed25519) → Encrypt (if DM) → Send via Tor → Peers verify → Display
root:a8Kx2m... (derived from your public key)~/.root-chat/db| Type | Visibility | Encryption |
|---|---|---|
| Post | Public broadcast | Signed, not encrypted |
| DM | Sender + recipient only | X25519 + ChaCha20Poly1305 |
| Community | Group members | Signed, group-scoped |
Every message is cryptographically signed — tampered messages are rejected by peers.
.onion addressesThe README provides a high-level overview of Y. For more detailed guides and reference material, see the documentation below.
| Document | Description |
|---|---|
| Usage Guide | Step-by-step walkthrough for getting started with Y, creating your identity, navigating the interface, messaging, communities, and bookmarks. |
| Architecture | Overview of Y's internal architecture, including identity management, networking, Tor integration, gossip propagation, distributed storage, and application design. |
| CLI Reference | Complete reference for command-line subcommands, interactive commands, keyboard shortcuts, and supported environment variables. |
curl -sL https://raw.githubusercontent.com/elvisthebuilder/Y/main/install.sh | sh
Download from Releases:
| Platform | Format | Install |
|---|---|---|
| Linux | .deb | sudo dpkg -i y_*.deb |
| macOS | .dmg | Open, drag to Applications |
| Windows | .msi | Double-click to install |
After install:
y open
Running y with no subcommand also opens the chat interface.
git clone https://github.com/elvisthebuilder/Y.git
cd Y
cargo install --path .
On first run, Y bootstraps the Tor client and creates your hidden service. This takes ~30 seconds the first time (downloading Tor consensus data), subsequent launches are faster.
Y ships with a default seed node called the mediator. On startup, your client connects to it automatically and discovers other peers through the DHT. No manual peer configuration needed.
The mediator has no special privileges — it's just a peer that's always online. It also temporarily stores encrypted direct messages for offline users until they reconnect. It cannot read message contents, censor posts, or control the network.
You can override or add additional seed nodes:
Y_SEEDS=your-seed.onion:7331,another-seed.onion:7331 y open
Or connect to a specific peer directly:
Y_PEER=someone.onion:7331 y open
Anyone can run a seed node. The more seeds, the more resilient the network.
# On any always-on server (EC2, VPS, Raspberry Pi, etc.)
y serve
This runs the network engine headless — no TUI, just peer connections. It prints the .onion address on startup. Submit it as a PR to SEED_NODES in src/network/engine.rs to help bootstrap the network for everyone.
# Custom port
Y_PORT=8080 y serve
# Limit stored posts (default: 1000)
y serve --max-posts 500
Anyone can contribute seed nodes by running y serve and opening a PR. The more seeds, the less dependent the network is on any single one.
y update
Checks GitHub for the latest release and replaces the current binary in-place. Falls back to sudo if needed.
y reset
Clears your timeline, bookmarks, and cached data while keeping your identity and alias intact. Useful after major updates to start fresh without losing who you are.
To also generate a new identity and alias:
y reset --new-identity
y uninstall
This removes the binary and all local data (~/.root-chat).
| Key | Action |
|---|---|
← / → | Switch views (Timeline $\rightarrow$ DMs $\rightarrow$ Communities $\rightarrow$ Bookmarks $\rightarrow$ Profile) |
↑ / ↓ | Navigate posts / list items |
t | Timeline (public posts) |
d | Direct messages |
c | Communities |
b | Bookmarks |
p | Profile / identity |
n | Compose new post |
j/k | Navigate posts |
. | Nod at selected post (respect) |
r | Reply to selected post |
s | Bookmark / unbookmark post |
x | Delete your post |
g | Go to post (from bookmarks) |
a | Approve pending request (community detail) |
x | Decline selected join request (community detail) |
Enter | Expand/collapse replies, open community |
Shift+Enter | New line while composing |
/ | Search users |
: | Command mode |
y | Copy onion address (in Profile) |
:whoami — Show your handle and address:peers — Show connected peer count:alias <name> — Set your alias manually:alias-gen — Generate a random alias:search <query> — Search users by alias or address:create <name> — Create an open community:create <name> private — Create a private community (approval required):join <id> — Join a community (or request to join if private):quit / :q — ExitYour identity is auto-generated on first run:
root:a8Kx2m... (cryptographic, permanent)phantom-cipher (human-readable, changeable)phantom-cipher#a8Kx (alias + short address for disambiguation)Aliases are not globally unique — multiple users can share the same alias. The #shortcode suffix disambiguates them. Set yours manually or let Y generate one for you.
src/
├── main.rs — Entry point, TUI event loop, network integration
├── crypto/
│ ├── identity.rs — Ed25519 keypair, address derivation, signing
│ ├── alias.rs — Alias generation and display handles
│ └── encryption.rs — X25519 Diffie-Hellman + ChaCha20Poly1305
├── protocol/
│ └── message.rs — Message types, nods, replies
├── network/
│ ├── tor.rs — Tor hidden service (arti-client)
│ ├── engine.rs — Connection management, gossip, DM routing
│ ├── codec.rs — Length-prefixed framing over Tor streams
│ ├── protocol.rs — Wire message types (Hello, DHT, gossip)
│ ├── dht.rs — Kademlia DHT (routing table, storage, replication)
│ ├── peer.rs — Peer registry
│ └── search.rs — User search
├── storage/
│ └── mod.rs — sled embedded DB (identity, messages, bookmarks)
├── community/
│ └── mod.rs — Community membership and access control
└── tui/
├── app.rs — App state, keybindings, threaded view
└── ui.rs — Terminal UI rendering (tree lines, scrolling)
MIT