Decentralized P2P Encrypted Chat Agent powered by Strands Agents & Bluetooth LE
Project description
🔧 BitChat for Strands Agents
P2P Encrypted Communication Tool for Strands Agent Development
Add decentralized, peer-to-peer encrypted chat capabilities to your Strands agents using Bluetooth Low Energy mesh networking.
📦 Installation
pip install strands-bitchat
🔧 Basic Integration
from strands import Agent
from strands_bitchat import bitchat
from strands_tools import use_agent
# Add BitChat to your existing agent
agent = Agent(
tools=[bitchat, use_agent], # Required: bitchat + use_agent
system_prompt="Your agent with P2P communication capabilities"
)
# Enable P2P networking
agent.tool.bitchat(action="start", agent=agent)
agent.tool.bitchat(action="enable_agent", trigger_keyword="max", agent=agent)
🛠️ Core Actions
| Action | Purpose | Required Parameters |
|---|---|---|
start |
Initialize P2P network | - |
stop |
Stop P2P network | - |
status |
Network status | - |
send_public |
Broadcast to all peers | message |
send_private |
Encrypted direct message | message, recipient |
send_channel |
Send to specific channel | message, channel |
join_channel |
Join/create channel | channel |
leave_channel |
Leave current channel | - |
list_peers |
Show connected peers | - |
list_channels |
Show discovered channels | - |
get_messages |
Get recent message history | - |
set_nickname |
Change your nickname | nickname |
block_user / unblock_user |
Block/unblock users | nickname |
enable_agent |
Enable auto-responses | trigger_keyword, agent |
enable_monitor |
Monitor all messages silently | agent |
disable_agent |
Disable agent integration | - |
agent_status |
Check agent integration status | - |
🤖 Agent-to-Agent Communication
# Agent A
from strands import Agent
from strands_tools import use_agent
from strands_bitchat import bitchat
# Agent A - Coordinator
coordinator = Agent(
system_prompt="BitChat enabled agent. Agent coordinator. Agent A. Can call 'worker'.",
tools=[bitchat, use_agent],
record_direct_tool_call=False
)
coordinator.tool.bitchat(action="start", agent=coordinator)
coordinator.tool.bitchat(action="enable_agent", trigger_keyword="coord", agent=coordinator)
# Agent B - Worker
worker = Agent(
system_prompt="BitChat enabled agent. Agent B. Can call 'coord' for coordinator agent.",
tools=[bitchat, use_agent],
record_direct_tool_call=False
)
worker.tool.bitchat(action="start", agent=worker)
worker.tool.bitchat(action="enable_agent", trigger_keyword="worker", agent=worker)
# Now agents can communicate:
# "coord, start task X"
# "worker, process data Y"
# Additional features:
# Monitor mode (processes all messages, no auto-response)
coordinator.tool.bitchat(action="enable_monitor", agent=coordinator)
# Channel operations
coordinator.tool.bitchat(action="join_channel", channel="#team", password="secret")
coordinator.tool.bitchat(action="send_channel", message="Hello team!", channel="#team")
# Private messaging
coordinator.tool.bitchat(action="send_private", message="Direct message", recipient="worker")
# Network management
coordinator.tool.bitchat(action="list_peers")
coordinator.tool.bitchat(action="get_messages")
coordinator.tool.bitchat(action="agent_status")
🔧 Development Notes
- Always include both tools:
[bitchat, use_agent]for agent integration - Agent parameter: Required only for
enable_agentandenable_monitoractions - Auto-installs dependencies: Bluetooth LE stack installed automatically on first use
- ~5 seconds: Time needed for peer discovery and connection
- Two modes: Trigger mode (auto-responds) or Monitor mode (silent processing)
- Channel passwords: Use for secure team communications
🐛 Troubleshooting
- No peers found: Check Bluetooth is enabled
- Agent not responding: Verify trigger keyword and
use_agenttool - Permission issues: Grant Bluetooth system permissions
📄 License
MIT License
🚀 Enable your Strands agents to collaborate directly via P2P mesh networking
Project details
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 strands_bitchat-1.0.7.tar.gz.
File metadata
- Download URL: strands_bitchat-1.0.7.tar.gz
- Upload date:
- Size: 33.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7eefb95fee808563d21e11d50b18ff4f8fd3af3ea14fba0c19848680957982c6
|
|
| MD5 |
0ecf25bb4abe7bfff289c2a464832ac6
|
|
| BLAKE2b-256 |
4c79fb68e879e4124c167e3fe79aa9b7e88b7d9a50fe22cb2bed4759b0550e3c
|
File details
Details for the file strands_bitchat-1.0.7-py3-none-any.whl.
File metadata
- Download URL: strands_bitchat-1.0.7-py3-none-any.whl
- Upload date:
- Size: 27.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ad060303f36aacdc76d4034ed14e74e6f8926305794cb7994911efb7cf42bbe
|
|
| MD5 |
f9ecf2a6c7a567f0eab9b1c54efc61d2
|
|
| BLAKE2b-256 |
3a8023705a9315753a4794e289e3026d7b4ad4ed4660a7ad34ef035093577225
|