Skip to main content

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.

PyPI

📦 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_agent and enable_monitor actions
  • 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_agent tool
  • 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

strands_bitchat-1.0.7.tar.gz (33.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

strands_bitchat-1.0.7-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

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

Hashes for strands_bitchat-1.0.7.tar.gz
Algorithm Hash digest
SHA256 7eefb95fee808563d21e11d50b18ff4f8fd3af3ea14fba0c19848680957982c6
MD5 0ecf25bb4abe7bfff289c2a464832ac6
BLAKE2b-256 4c79fb68e879e4124c167e3fe79aa9b7e88b7d9a50fe22cb2bed4759b0550e3c

See more details on using hashes here.

File details

Details for the file strands_bitchat-1.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for strands_bitchat-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 7ad060303f36aacdc76d4034ed14e74e6f8926305794cb7994911efb7cf42bbe
MD5 f9ecf2a6c7a567f0eab9b1c54efc61d2
BLAKE2b-256 3a8023705a9315753a4794e289e3026d7b4ad4ed4660a7ad34ef035093577225

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page