WhatsApp integration for Agntrick agents
Project description
agntrick-whatsapp
WhatsApp integration for Agntrick agents.
Installation
pip install agntrick-whatsapp
Or with the core package:
pip install agntrick[whatsapp]
Features
- WhatsApp Channel: Bidirectional communication via personal WhatsApp account
- Router Agent: Routes messages to different specialist modes based on commands
- Audio Transcription: Transcribe voice messages using Groq Whisper API
- Contact Filtering: Privacy-focused with allowed contacts only
Requirements
System Dependencies
The WhatsApp channel uses neonize which requires:
- libmagic: For file type detection
- macOS:
brew install libmagic - Ubuntu/Debian:
sudo apt-get install libmagic1 - Fedora:
sudo dnf install file-devel
- macOS:
Audio Transcription (Optional)
For audio transcription, you need:
-
ffmpeg: For audio format conversion
- macOS:
brew install ffmpeg - Ubuntu/Debian:
sudo apt-get install ffmpeg - Fedora:
sudo dnf install ffmpeg
- macOS:
-
Groq API Key: Set
GROQ_AUDIO_API_KEYorGROQ_API_KEYenvironment variable
Quick Start
1. Create Configuration
Create a whatsapp.yaml configuration file:
model: claude-sonnet-4-6
mcp_servers: ["fetch", "web-forager"]
privacy:
allowed_contact: "+1234567890" # Your phone number
channel:
storage_path: ~/storage/whatsapp
features:
text_messages: true
media_messages: true
group_messages: false
typing_indicators: true
audio_transcriber:
model: whisper-large-v3-turbo
timeout: 60.0
2. Run the WhatsApp Agent
import asyncio
from pathlib import Path
import yaml
from agntrick_whatsapp import WhatsAppChannel, WhatsAppRouterAgent
from agntrick_whatsapp.config import WhatsAppAgentConfig
async def main():
# Load configuration from YAML
config_path = Path(__file__).parent / "whatsapp.yaml"
with open(config_path) as f:
config_dict = yaml.safe_load(f)
config = WhatsAppAgentConfig.model_validate(config_dict)
# Create channel
channel = WhatsAppChannel(
storage_path=config.get_storage_path(),
allowed_contact=config.privacy.allowed_contact,
)
# Create router agent
agent = WhatsAppRouterAgent(
channel=channel,
model_name=config.model,
mcp_servers_override=config.mcp_servers,
audio_transcriber_config=config.audio_transcriber,
)
# Start listening
await agent.start()
asyncio.run(main())
Commands
The router agent supports the following commands:
| Command | Description |
|---|---|
/learn <topic> |
Learning/tutorial mode |
/youtube <url> |
YouTube video analysis |
| (default) | General assistant mode |
Examples
/learn Python decorators- Get a step-by-step tutorial on Python decorators/youtube https://youtube.com/watch?v=xyz- Analyze a YouTube videoWhat's the weather in Tokyo?- General question
Audio Transcription
Voice messages are automatically transcribed using Groq's Whisper API:
from agntrick_whatsapp import AudioTranscriber
transcriber = AudioTranscriber()
result = await transcriber.transcribe_audio("/path/to/voice.ogg")
print(result)
Configuration Reference
PrivacyConfig
| Field | Type | Required | Description |
|---|---|---|---|
allowed_contact |
str | Yes | Phone number to allow messages from |
log_filtered_messages |
bool | No | Log filtered messages for debugging |
FeatureFlags
| Field | Type | Default | Description |
|---|---|---|---|
text_messages |
bool | true | Enable text messages |
media_messages |
bool | true | Enable media messages |
group_messages |
bool | false | Enable group messages |
presence_updates |
bool | true | Enable presence updates |
typing_indicators |
bool | true | Send typing indicators |
AudioTranscriberConfig
| Field | Type | Default | Description |
|---|---|---|---|
model |
str | whisper-large-v3-turbo | Groq Whisper model |
timeout |
float | 60.0 | Request timeout in seconds |
config_file |
str? | None | Optional config file path |
Troubleshooting
neonize Import Error
RuntimeError: neonize dependency is unavailable
Install system dependencies (libmagic) and reinstall:
brew install libmagic # macOS
pip install agntrick-whatsapp --force-reinstall
QR Code Not Appearing
- Check storage path permissions
- Delete existing session:
rm -rf ~/storage/whatsapp - Restart the agent
Audio Transcription Fails
- Verify Groq API key:
echo $GROQ_AUDIO_API_KEY - Check ffmpeg:
ffmpeg -version - Check file size (max 25MB)
License
MIT
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 agntrick_whatsapp-0.2.2.tar.gz.
File metadata
- Download URL: agntrick_whatsapp-0.2.2.tar.gz
- Upload date:
- Size: 24.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31649540fa04083886208b4f8a4e870ff67fc1d673d21f7ae6425657945dd958
|
|
| MD5 |
3d30563878e95951e3db9008e42019ec
|
|
| BLAKE2b-256 |
b814e0f90f940e7d9d408c6b88ec9109c2d77c75a57a8d7ea33c62ca8fbdab4c
|
Provenance
The following attestation bundles were made for agntrick_whatsapp-0.2.2.tar.gz:
Publisher:
release.yml on jeancsil/agntrick
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agntrick_whatsapp-0.2.2.tar.gz -
Subject digest:
31649540fa04083886208b4f8a4e870ff67fc1d673d21f7ae6425657945dd958 - Sigstore transparency entry: 1091906299
- Sigstore integration time:
-
Permalink:
jeancsil/agntrick@df237a9688dd6c9d26b080d94788933a96b20f9a -
Branch / Tag:
refs/tags/v0.2.4 - Owner: https://github.com/jeancsil
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@df237a9688dd6c9d26b080d94788933a96b20f9a -
Trigger Event:
release
-
Statement type:
File details
Details for the file agntrick_whatsapp-0.2.2-py3-none-any.whl.
File metadata
- Download URL: agntrick_whatsapp-0.2.2-py3-none-any.whl
- Upload date:
- Size: 27.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53eac9dc4a9cd070adb7e90b0f5cfb93b75b69c5e5f7f29827997b252fce5576
|
|
| MD5 |
d06d4c76c71cf0a2b139a3b08fb28e32
|
|
| BLAKE2b-256 |
6b4568d34c81ae6c3b207e15e06f5fc912e690e112bfb858c25fafdf7d80aeb4
|
Provenance
The following attestation bundles were made for agntrick_whatsapp-0.2.2-py3-none-any.whl:
Publisher:
release.yml on jeancsil/agntrick
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agntrick_whatsapp-0.2.2-py3-none-any.whl -
Subject digest:
53eac9dc4a9cd070adb7e90b0f5cfb93b75b69c5e5f7f29827997b252fce5576 - Sigstore transparency entry: 1091906339
- Sigstore integration time:
-
Permalink:
jeancsil/agntrick@df237a9688dd6c9d26b080d94788933a96b20f9a -
Branch / Tag:
refs/tags/v0.2.4 - Owner: https://github.com/jeancsil
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@df237a9688dd6c9d26b080d94788933a96b20f9a -
Trigger Event:
release
-
Statement type: