Skip to content

Feat: Add Signal channel integration #41

@eti0

Description

@eti0

Summary

Add Signal as a messaging channel for PicoClaw.

Motivation

Signal is a major privacy-focused messaging platform. Many users prefer it over Telegram/WhatsApp for self-hosted AI assistants due to its E2E encryption and privacy stance.

Proposed Solutions

Option A: signal-cli (Recommended)
Use signal-cli JSON-RPC API:

  • Run signal-cli daemon --http as external dependency
  • PicoClaw connects to local HTTP API to send/receive messages
  • Pros: Mature, handles E2E encryption, minimal code to maintain
  • Cons: Requires JVM (~50-100MB RAM) — documented as optional external dependency

Option B: libsignal
Use Signal's official libsignal library:

  • Native Signal Protocol implementation
  • Pros: No external JVM process, lower memory footprint
  • Cons: More complex integration, requires maintaining crypto code

Configuration

{
  "channels": {
    "signal": {
      "enabled": true,
      "account": "+1234567890",
      "signal_cli_url": "http://localhost:8080",
      "allow_from": ["+0987654321"]
    }
  }
}

Notes

  • Credentials stored in ~/.local/share/signal-cli/ (if using signal-cli)
  • Supports text messages, with voice/attachments possible as follow-up

References

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions