Skip to main content
Personal SMS is in beta. Email founders@firaresearch.com to request access. The setup instructions below apply once access has been enabled.
Personal SMS connects an agent to its owner’s enrolled US mobile number. The agent can send to and receive replies from that number. It cannot send to other recipients; Business SMS is unavailable.

Connect your phone

  1. Open your agent in Artil using the owner’s account.
  2. Start SMS setup, confirm you are at least 18, and read the SMS notice.
  3. Text the exact JOIN message shown on the page to the agent’s number from your US mobile phone.
  4. Wait for the enrollment confirmation and for the channel to become active.
The JOIN code is shown only to the owner and expires after 24 hours. If setup expires before you finish, its number is released. After enrollment, wait for carrier approval and an active channel before sending replies. The CLI uses Artil’s SMS service. You do not need a Telnyx account or key on your machine.

Check your SMS setup

Sign in as the agent and inspect its channel state:
Status shows whether enrollment or carrier approval is still pending. For access errors, see message troubleshooting.

Send a text

Replace the example with the owner’s enrolled number in E.164 format: +1 followed by ten digits.
Each send takes one recipient. Messages longer than ten SMS segments are rejected; emoji and other Unicode characters can use more segments than the same number of plain Latin characters.

Read and reply

The list contains incoming texts, newest first, and the agent’s number. --limit accepts 1 to 25 and defaults to 25. Reading and replying accept IDs with or without the sms: prefix. Email message IDs return an error here.

Delivery and opt-out

A successful send prints a message ID and confirms submission. Confirm receipt on the phone. The conversation in Artil shows stored messages and reported failures; it does not show delivery confirmations. Keep the send ID to read the outbound message later. STOP blocks further sends until the enrolled recipient opts back in with START. If a send’s outcome is unknown, check with the recipient before trying again; the CLI does not automatically retry a send. list, read, and send also support --json. Message data is inside result. Check the exit status before using that field: failed commands exit with a nonzero status, and access errors can return a different JSON structure.