Oldie Goldie — a peer-to-peer encrypted chat with tunnel and token-based access.
Project description
🕊️ Oldie-Goldie
A Being Human Cult (BHC) Initiative
A self-hostable, peer-to-peer encrypted chat system
with ephemeral tunnels, reusable invite tokens, and zero logs.
📘 Table of Contents
- ✨ Core Features
- ⚡ TL;DR (Quick Start)
- 🌐 What is Oldie-Goldie?
- 💡 Why I Built It
- 🧭 Intended Usage
- 🧱 Guard Rails and Trust Model
- ☁️ Cloudflared Handling (Automatic)
- ⚙️ Installation
- 🐍 Python Compatibility
- 🚀 Usage
- 📚 Documentation
- 🧾 Changelog
- 🧪 Future Roadmap
- 🌿 About Being Human Cult (BHC)
- ☕ Support the Project
- 🤝 Contributing
- 📜 License
- 💬 Connect
- 🧡 A Note from the Author
- ❤️ Author
✨ Core Features
- 🔐 Encrypted peer-to-peer tunnels
- 🪪 Token-based access control (single-use, bound, or reusable)
- 🔁 Token reuse support (
--reuse) - 🌐 Automatic Cloudflared tunneling (no installation required)
- 🧳 Zero logs — nothing stored, nothing retained
- 👥 Ephemeral one-to-one private sessions
- 🧩 Cross-platform (Linux · macOS · Windows)
- 🪶 Lightweight Python CLI
- 🕵️ Privacy-first, open-source, auditable
⚡ TL;DR (Quick Start)
Start a public server (auto-tunnel + tokens):
og-server --host public --invite-token --token-count 1 --reuse
Client connects:
og-client --server-host public --url <server-url> --token <token>
Initiate a private encrypted tunnel:
/connect @peer
Enter your PSK → Tunnel established.
🌐 What is Oldie-Goldie?
Oldie-Goldie is an on-demand, peer-to-peer encrypted, self-hostable chat system for people who want privacy without relying on centralized services.
You spin up a temporary server → share a URL + token → chat → destroy everything.
Nothing persists. Nothing leaks.
💡 Why I Built It
🕵️ The Problem
Modern messaging services promise privacy — but often log metadata, store your messages, or use your data for ad targeting and behavioral profiling. Even when encryption is claimed, the closed-source nature of these apps makes it impossible to know if your messages are truly private.
“Mining for gold without opening the chest.” That’s how metadata surveillance works — who you message, when, how often — all reveal more than you think.
I wanted a fallback — a chat app that was:
- Open source and auditable
- Truly self-hostable
- Peer-to-peer encrypted, with no middleman
So I built Oldie-Goldie, and it became my trusted space for private discussions.
🧠 The Solution
Oldie-Goldie gives you:
- Direct, secure, ephemeral connections
- No cloud storage
- No accounts
- End-to-end encrypted tunnels
- Invite-token based access control
You spin up a temporary server, share a link + token with your peer, chat securely, and shut it all down when done. Nothing is logged, nothing persists — just you and your peer.
🧭 Intended Usage
Pre-requisite: Out-of-Band Sharing
- Usernames (pseudonyms) — agree beforehand with your peer.
- PSK (pre-shared key) — share a private key to authenticate tunnels.
Flow for Global Server
Update (v0.6.0): Oldie-Goldie now automatically downloads and manages Cloudflared using
pycloudflared.
No installation. No PATH setup. Nothing manual.
- Start the server (
--host public) - Share the generated public URL
- Register pseudonyms
/list_usersto find your peer/connect @username- Enter the shared PSK
- The server relays traffic blindly over the encrypted tunnel
⚠️ Disclaimer Oldie-Goldie is not a social media or group chat platform. It’s designed for private, ephemeral one-to-one communication, where simplicity and trust are prioritized.
🧱 Guard Rails and Trust Model
| Layer | Purpose |
|---|---|
| Pre-shared pseudonyms | Protects identity |
| Pre-shared secret/password | Proof of identity |
| Token-based access | Prevents unauthorized entry |
| Temporary tunnels | Ensure no data persistence |
🔐 Example: Token-Based Secure Server
Generate bound tokens:
og-server --host public --invite-token --bind alice bob
Generate reusable tokens (v0.6.0):
og-server --host public --invite-token --bind alice bob --reuse
Then connect:
og-client --server-host public --url <server-url> --token <token>
☁️ Cloudflared Handling (Automatic)
Oldie-Goldie (v0.6.0) introduces automatic integration via pycloudflared.
✔ No manual installation needed
✔ No PATH configuration
✔ Works on Windows, Linux, macOS, and virtual environments
✔ Cloudflared binary is downloaded automatically and sandboxed
This significantly simplifies public tunneling:
og-server --host public
Done. Tunneling works out of the box.
Manual installation instructions are now unnecessary and removed.
⚙️ Installation
Oldie-Goldie supports Python 3.10–3.13 on Linux, macOS, and Windows.
Note: Python 3.14 is currently not supported due to missing upstream wheels (
cffi,cryptography, etc.). See “Python Compatibility” below.
📌 Standard Install
pip install oldie-goldie
🧰 If pip is not recognized
python -m pip install oldie-goldie
# or
python3 -m pip install oldie-goldie
✨ (Optional) Add pip to PATH
| OS | How |
|---|---|
| Windows | Add %LocalAppData%\Programs\Python\PythonXY\Scripts\ to PATH |
| Linux/macOS | Add ~/.local/bin to PATH |
⬆️ Upgrade
pip install --upgrade oldie-goldie
🛠 Install from Source (for developers)
git clone https://github.com/venukotamraju/Oldie-Goldie.git
cd Oldie-Goldie
python -m pip install -r requirements.txt
pip install -e .
🧿 Troubleshooting
| Issue | Fix |
|---|---|
| pip: comman not found | Use python -m pip or add pip to PATH |
| AttributeError: drain / asyncio mismatch | Upgrade Python to 3.10+ and reinstall |
| ModuleNotFoundError after install | Ensure you're using the same interpreter that installed the package |
🐍 Python Compatibility
Supported Versions
✔ Python 3.10
✔ Python 3.11
✔ Python 3.12
✔ Python 3.13
Not Yet Supported
❌ Python 3.14
→ Missing upstream wheels (cryptography, cffi)
→ Support will be added automatically once dependencies publish them
Workarounds (pyenv, conda, etc.) included in documentation.
🚀 Usage
🖥️ Run Server
Local
og-server --host local
Public (with Automatic Tunnel)
og-server --host public
Protected (Invite Tokens)
og-server --host public --invite-token --token-count 2
Strongly Protected (Bound Tokens)
og-server --host public --invite-token --bind alice bob
Reusable Tokens (New in v0.6.0)
og-server --host public --invite-token --bind alice bob --reuse
💬 Run Client
Connect Locally
og-client --server-host local
Connect Remotely
og-client --server-host public --url <server-url>
Connect with Token
og-client --server-host public --url <server-url> --token <token>
📚 Documentation
Full usage guide · CLI examples · Architecture · Python compatibility · Changelog
🔗 https://venukotamraju.github.io/Oldie-Goldie
🧾 Changelog
See CHANGELOG.md for the full version history and upcoming features.
🧪 Future Roadmap
- Extend
safe_inputwith foreground/background input support - Enable server-side dynamic token generation
- Tidy client logs
- Add Android support
- Architectural docs expansion
🌿 About Being Human Cult (BHC)
The Tech wing of Being Human Cult (BHC) is a community-driven initiative focused on building humane, open-source technologies that empower people to connect authentically and privately — without exploitation, surveillance, or data harvesting.
Oldie-Goldie is developed and maintained under the BHC umbrella as a free and open-source project.
Learn more: https://beinghumancult.blogspot.com
☕ Support the Project
Oldie-Goldie is free, open-source, and maintained with care by volunteers. If you’d like to support development or buy the maintainers a coffee:
- 💖 Buy Me a Coffee: (link coming soon)
- 💰 GitHub Sponsors: (link coming soon)
- 🪙 Ko-fi: (link coming soon)
- 📢 Share the project! — word of mouth helps more than you think.
Your support keeps the project independent and privacy-focused. 🙏
🤝 Contributing
Pull requests are welcome! If you’d like to contribute, please:
- Fork the repo
- Create a new branch
- Make your changes
- Submit a PR
Or open an issue to discuss ideas.
For more detailed developer setup and contributing guidelines, see CONTRIBUTING.md
📜 License
Licensed under the APACHE 2.0.
Copyright © 2025
Venu Kotamraju, under the Being Human Cult (BHC) initative.
💬 Connect
- GitHub → Oldie-Goldie
- PyPI → oldie-goldie
- LinkedIn → [Link coming soon...]
- Blog → Being Human Cult
🧡 A Note from the Author
I built Oldie-Goldie to reclaim digital privacy. It’s not about hiding — it’s about owning your data and choosing who gets to see it.
❤️ Author
Venu Kotamraju
kotamraju.venugopal@gmail.com
GitHub
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oldie_goldie-0.6.1.tar.gz.
File metadata
- Download URL: oldie_goldie-0.6.1.tar.gz
- Upload date:
- Size: 47.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c6f95449bf8d49fef73dcaf350da80a19de236d449e272c71173a45a27e9b8a
|
|
| MD5 |
cc1300aedcc6cbcc281d183aeb36ab0c
|
|
| BLAKE2b-256 |
27290064d841a82d8357b5b9382adb1feb5d6eae006117d37a0508c48b5957a2
|
File details
Details for the file oldie_goldie-0.6.1-py3-none-any.whl.
File metadata
- Download URL: oldie_goldie-0.6.1-py3-none-any.whl
- Upload date:
- Size: 46.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aaab592701e14f44da0c58902f6f8d9821b72566027fa659b59a0e4fbc9aaf3a
|
|
| MD5 |
cf8fec49bdc51dd3d1648395c71c34f6
|
|
| BLAKE2b-256 |
6a16d99aff0a0b2a184663d801d31b822d7599275fe6fecec7740d2e2d86a563
|