Skip to content

feat(skill): add Signal messenger channel via signal-cli JSON-RPC daemon#1023

Closed
jorgenclaw wants to merge 3 commits into
nanocoai:mainfrom
jorgenclaw:skill/signal
Closed

feat(skill): add Signal messenger channel via signal-cli JSON-RPC daemon#1023
jorgenclaw wants to merge 3 commits into
nanocoai:mainfrom
jorgenclaw:skill/signal

Conversation

@jorgenclaw
Copy link
Copy Markdown

What this adds

A self-contained Signal channel skill that integrates with signal-cli's JSON-RPC daemon over a Unix socket.

Channel features

  • Direct messages — routes by sender UUID (signal:<uuid>)
  • Group messages — routes by group ID (signal:group:<base64id>)
  • Self-registration — calls registerChannel() at import; barrel file triggers it
  • Chunked data handling — reassembles newline-delimited JSON across TCP frames
  • Graceful lifecycleconnect() / disconnect() with subscription management

Skill package (.claude/skills/add-signal/)

  • manifest.yaml — declares added/modified files, env vars, no extra npm deps
  • SKILL.md — setup guide (install signal-cli, register number, configure env)
  • add/ — new source files
  • modify/ — patches to src/channels/index.ts (barrel import) and src/config.ts (env vars)

Env vars

Variable Purpose Default
SIGNAL_PHONE_NUMBER Phone number registered with signal-cli (required)
SIGNAL_SOCKET_PATH Path to signal-cli Unix socket /run/signal-cli/socket

Tests

12 unit tests covering connection, message routing (direct + group), chunked data, send, disconnect, and self-registration — all via a mock net.Socket, no live daemon needed.

✓ src/channels/signal.test.ts (12 tests) 46ms

Co-Authored-By: Claude Code noreply@anthropic.com

Jorgenclaw and others added 2 commits March 12, 2026 21:58
…ith keys

Explains the signing daemon architecture: why file-based key storage
is unsafe when AI agents have filesystem access, and how kernel memory
+ a Unix socket solves it. Written for sharing with other developers
and AI agents building on Nostr.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds Signal as a channel skill using signal-cli's Unix socket JSON-RPC
interface. Includes self-registration, direct/group messaging, and
comprehensive test suite.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Andy-NanoClaw-AI Andy-NanoClaw-AI added Status: Blocked Blocked by merge conflicts or dependencies PR: Skill Skill package or skill-related changes labels Mar 13, 2026
Signal group members may @mention the assistant by phone number
(e.g. @+15102143647) instead of by trigger word. This was silently
ignored, causing the agent to never respond to those messages.

Add phone-number matching to messageHasTrigger() so both
@TriggerWord and @phonenumber are recognized as valid triggers.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: Skill Skill package or skill-related changes Status: Blocked Blocked by merge conflicts or dependencies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants