Skip to main content
WhatsApp is available as a plugin. Install it with lukan plugin install-remote or from the Web UI plugin manager.

Architecture

Two-process design (via plugin):
  1. lukan-bridge - Node.js/Bun process using whatsapp-web.js, exposes WebSocket at ws://localhost:3001
  2. lukan whatsapp - Agent process connecting to the bridge

Setup

# Interactive setup
lukan setup whatsapp

# Or manual:
lukan wa auth                 # Scan QR code
lukan wa allow +34612345678   # Whitelist a number
lukan wa start                # Start daemon

Commands

lukan whatsapp                   # Start WhatsApp channel
lukan wa on                      # Enable WhatsApp
lukan wa off                     # Disable and stop daemon
lukan wa start                   # Start as background daemon
lukan wa stop                    # Stop daemon
lukan wa restart                 # Restart daemon
lukan wa status                  # Show configuration
lukan wa auth                    # Scan QR code to authenticate
lukan wa logout                  # Delete WhatsApp session
lukan wa allow <number>          # Whitelist a phone number
lukan wa deny <number>           # Remove from whitelist
lukan wa group add|remove|list   # Manage allowed groups
lukan wa groups                  # List available groups from bridge
lukan wa prefix [value]          # Get or set command prefix
lukan wa model                   # Select model interactively
lukan wa tools list|add|remove|reset   # Manage allowed tools
lukan wa dir list|add|remove|clear|on|off  # Manage allowed directories
lukan wa logs [-f] [-n <n>]      # Show daemon logs

Features

  • Whitelist-only - Only processes messages from whitelisted numbers or allowed groups
  • Prefix filtering - Optional prefix (e.g., /lukan) required to trigger the agent
  • Voice transcription - Uses OpenAI Whisper for audio messages
  • Directory restrictions - File tools blocked unless directories are explicitly allowed
  • Hidden file blocking - .env, .git/, etc. always blocked
  • Group support - Allowed by full chat ID (e.g., 123456789@g.us)
  • Email confirmation - Requires explicit user confirmation before sending emails
  • Reminder notifications - Proactive notifications sent to configured chat

Configuration

{
  "whatsapp": {
    "enabled": true,
    "bridgeUrl": "ws://localhost:3001",
    "whitelist": ["34612345678"],
    "allowedGroups": ["123456789@g.us"],
    "prefix": "/lukan",
    "tools": ["ReadFile", "WebSearch"],
    "allowedDirs": ["/home/user/projects"],
    "skipDirRestrictions": false,
    "provider": "anthropic",
    "model": "claude-sonnet-4-5-20250929",
    "reminderAdvance": 15,
    "reminderChat": "34612345678@c.us"
  }
}

Default Tools

Grep, Glob, ReadFiles, WebSearch, WebFetch