document
features
sections
capabilities · stack · considerations
issue
001
status
main + named branches
brief

this sheet separates the baseline toolkit from branch additions and operational duties. an adapter being present is not the same as a carrier delivery being verified.

features

give the agent
the thread.
gate the reply.

capabilities
01
receive and normalize texts

the catcher accepts json, form posts, and query-string deliveries, then adapts provider payloads into a common message shape.

02
keep a local inbox

append messages to jsonl, deduplicate provider ids, retain the raw payload, and track read state separately.

03
read calls and voicemail

inspect threads, missed calls, call history, voicemail, and imported carrier email through local views.

04
work through cli or browser

use agent-friendly commands and structured setup output, or open the local browser launcher for threads and drafts.

05
send through explicit gates

single-recipient sms adapters exist for voip.ms, flowroute, and signalwire, behind environment and send authorization checks.

06
extend through mcp

the mcp branch adds fifteen local tools, a javascript sdk, policy and lookup integration, calling code, and a live event timeline.

stack
  1. 01
    carrier and number layer

    a provider-owned did, carrier account, sip credentials, and the provider's chosen sms delivery route.

  2. 02
    persistent host layer

    an awake machine holds the sip registration, credentials, catcher, and communication history instead of relying on an ephemeral agent run.

  3. 03
    intake and normalization

    provider-specific webhook or email input becomes a common message record while preserving the original delivery for inspection.

  4. 04
    local state

    jsonl messages, read marks, drafts, sent records, imported attachments, and read-only access to the sip client's call database.

  5. 05
    agent interfaces

    commands and structured output on main; a local stdio mcp server and javascript sdk on the mcp branch.

  6. 06
    outbound policy

    explicit send authorization on main, with closed-by-default sender policy on the allow branch and outbound calling experiments in callheavy.

sipwebhooksjsonlclimcpexplicit outbound
considerations
provider verification

provider models and adapters are implemented, but the repository marks provider verification false. real delivery still needs a live account test.

webhook exposure

main's optional catcher token permits requests when unset. use a strong token, tls termination, and appropriate network controls in deployment.

local interface boundary

the browser launcher defaults to loopback and has no authentication beyond its bind address. do not expose it as a public dashboard.

otp limitations

voip numbers can be rejected by verification-code services. an agent-controlled number does not guarantee otp delivery or device attestation.

no campaign engine

bulk lists, schedules, retry queues, and quiet-hours automation are outside the baseline scope. outbound gates are not compliance certification.

sensitive local data

messages and attachments are sensitive. operators must choose file permissions, retention, deletion, and backup policies for their own host.