Walkie-Talkie
Serverless peer-to-peer walkie-talkie application for LAN.
Automatic peer discovery, encrypted text chat, push-to-talk voice communication.
Installation
pip install walkie
Or for development:
git clone https://github.com/Lunixizm0/walkie.git
cd walkie
uv sync
Usage
# Generate config (creates random passwords, salt, and encryption key)
walkie gen
# Receive config from another client
walkie get
# Send config to another client
walkie give <target_ip>
# Start the application
walkie run
Or run directly:
python -m walkie run
python -m walkie gen
python -m walkie get
python -m walkie give 192.168.1.100
Configuration
The app looks for walkie_config.toml in ~/.config/walkie/.
You can override the path with the WALKIE_CONFIG environment variable.
Features
- Automatic peer discovery via UDP broadcast (no server needed)
- AES-256-GCM encryption for voice and chat
- Low-latency voice with Opus codec
- Push-to-Talk (Shift+V) and Voice Activity Detection (VAD) modes
- Seamless playback with jitter buffer
- System tray minimization
- TOML-based configuration
- Config sharing over TCP (--get/--give)
Requirements
- Python 3.11+
- Linux, Windows, or macOS
- Microphone and speakers
System Dependencies
Walkie requires system libraries for audio and GUI tray support. Install them before installing the Python package:
Debian / Ubuntu:
sudo apt install -y portaudio19-dev gobject-introspection \
libgirepository1.0-dev libglib2.0-dev pkg-config python3-dev python3-tk
Arch Linux:
sudo pacman -S --needed portaudio gobject-introspection pkgconf python3 tk
macOS (Homebrew):
brew install portaudio gobject-introspection pkg-config tcl-tk
Windows:
No extra system dependencies needed. Wheels for sounddevice and pygobject bundle everything required.
License
MIT
Metadata
Release files for walkie 3.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| walkie-3.0.0.tar.gz | 35.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| walkie-3.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.8 kB
Release files / walkie-3.0.0.tar.gz
| Download URL | walkie-3.0.0.tar.gz |
|---|---|
| Size | 35.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2b3950d00c09b9950f769c8e6930af7a408a390d274d2e0c84af8660f4b70cc3
|
|
BLAKE2b-256 checksum How to use checksums |
45c27ea4f808a0bcd5c573f350dda18399d88623026aefbc9ffb935ae672b88f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logRelease files / walkie-3.0.0-py3-none-any.whl
| Download URL | walkie-3.0.0-py3-none-any.whl |
|---|---|
| Size | 25.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5a87c0a4041e7ec02b82863d49d87ff4577b8c6b1f0e214f85a51b8079415152
|
|
BLAKE2b-256 checksum How to use checksums |
8983c5932018e349a6d6323a429be822b0584e94ebd9c52996d1eb9dbd3dd1fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency log