Bluetooth identity beacon for headless Linux devices — returns hostname, mDNS, and active network interfaces over RFCOMM.
Project description
syryn
Bluetooth identity beacon for headless Linux devices.
The name comes from Сирин — a bird from Slavic mythology known for its voice. Syryn speaks when asked: it listens on a Bluetooth RFCOMM channel and responds with the device's hostname, mDNS address, and active network interfaces.
What it does
Run syryn on a headless mini-PC. From any nearby Bluetooth device, send STATUS — and get back:
hostname: panteon-john
mdns: panteon-john.local
eth0: 192.168.0.131
wlan0: 192.168.1.44
external_ip: 93.12.34.56
No display needed. No SSH session. No prior knowledge of the IP address.
Install & quick start
1. System packages (one-time)
syryn uses the BlueZ D-Bus API directly — no PyBluez2 required.
Debian / Ubuntu / Xubuntu:
sudo apt install bluez python3-dbus python3-gi
Fedora / RHEL:
sudo dnf install bluez python3-dbus python3-gobject
2. Enable Bluetooth
sudo systemctl enable bluetooth --now # start and enable on boot
rfkill list # check if adapter is blocked
sudo rfkill unblock bluetooth # unblock if needed
bluetoothctl discoverable on # make device visible
To keep the device permanently discoverable, add DiscoverableTimeout = 0 to
/etc/bluetooth/main.conf and restart bluetooth.service.
3. Install syryn
syryn uses system D-Bus libraries. Install with --system-site-packages so pipx
can find them:
pipx install syryn --system-site-packages
Or without pipx:
pip install syryn
4. Run
syryn # auto-pairing, no PIN
syryn --pin 1234 # hardcoded PIN for all incoming pairs
syryn -q # quiet mode, no log output
Syryn registers a Serial Port Profile (SPP) via BlueZ and a pairing agent so
connecting devices are accepted automatically (no manual PIN prompt). The device
name visible to other devices is the system hostname
(set via hostnamectl set-hostname <name>).
5. Connect from another device
From any device with a Bluetooth terminal app (e.g. Serial Bluetooth Terminal on Android):
- Scan for Bluetooth devices — the headless device appears by hostname
- Pair (accepted automatically by syryn)
- Connect to the Syryn service (Serial Port)
- Send
STATUS— receive hostname, mDNS, interfaces, external IP
Requirements
- Linux with BlueZ (
bluetoothdrunning) - Python 3.10+
python3-dbus+python3-gi(system packages) — BlueZ D-Bus interface and pairing agentpsutil,requests(installed automatically via pip)
Part of the SIMARGL toolkit
syryn is one of seven tools that together form an intellectual development support system:
| Tool | Role |
|---|---|
| simargl | Task-to-code retrieval — given a task description, finds which files and modules are likely affected, using semantic similarity over git history |
| svitovyd | Project map — scans any codebase and produces a structural map of definitions and cross-file dependencies; exposes it as an MCP server |
| 1bcoder | AI coding assistant for small local models — surgical context management, agents, parallel inference, proc scripts |
| yasna | Session memory — indexes conversations from all AI agents so you can find what was discussed, when, and where |
| radogast | Context drift monitor — measures how far an AI agent's conversation has drifted from the original task |
| vyrii | Local AI web UI — chat, translate, web research, RAG, and file management via Gradio; powered by Ollama or any OpenAI-compatible backend |
| syryn | Bluetooth identity beacon — returns hostname, mDNS, and active network interfaces for headless devices |
(c) 2026 Stanislav Zholobetskyi, Oleh Andriichuk Institute for Information Recording, National Academy of Sciences of Ukraine, Kyiv PhD research: «Intelligent Technology for Software Development and Maintenance Support»
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 syryn-0.1.9.tar.gz.
File metadata
- Download URL: syryn-0.1.9.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48561a7d83f47c0a658ee12d50bbc34045230542e8d470ee22180c204c07cca6
|
|
| MD5 |
448de40370a8c132d10bb80d685f73da
|
|
| BLAKE2b-256 |
94ed6c5f6ee94d086f181d2a77e54ac4821fcb582036596695fcc0613204f768
|
File details
Details for the file syryn-0.1.9-py3-none-any.whl.
File metadata
- Download URL: syryn-0.1.9-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e542170d72ab31ba3d6bfd80fb31a78024c693a7c0942d324fbb6c5c09efa5f
|
|
| MD5 |
c364e4273a96802b34dac111404069c6
|
|
| BLAKE2b-256 |
688c7449880ae81ab0048071b9879014159f825ab527c09fe3f98ffebcdafeca
|