Your personal Claude AI, accessible via iMessage.
Text Claude from anywhere. Send messages, voice notes, or images - get intelligent responses back to your phone.
- Text Claude - Natural conversation via iMessage
- Voice Notes - Send audio, automatically transcribed via OpenAI Whisper
- Images - Send photos, Claude can see and analyze them
- File Access - Claude has full filesystem access for coding tasks
- Attachments - Claude can send files back to you
- Crash Alerts - Get notified if the daemon goes down
- Queue System - Multiple messages processed in order
- Go to sendblue.com/api
- Click the "Sign up" button at the top
- Log in to your new account
- Verify your phone number (required before you can use the API)
- Go to Settings → API Settings tab
- Copy your API Key and API Secret
- Go to Settings → Phone Lines tab and copy your Sendblue phone number
brew install node # Node.js 18+
npm install -g @anthropic-ai/claude-code # Claude CLImkdir -p ~/.config/claude-imessage
nano ~/.config/claude-imessage/config.json{
"sendblue": {
"apiKey": "YOUR_API_KEY",
"apiSecret": "YOUR_API_SECRET",
"phoneNumber": "+1SENDBLUE_NUMBER"
},
"whitelist": ["+1YOUR_PHONE"],
"pollIntervalMs": 5000,
"conversationWindowSize": 20
}To enable voice memo transcription, add your OpenAI API key to daemon/.env:
echo "OPENAI_API_KEY=sk-your-key-here" > daemon/.envgit clone https://github.com/njerschow/textme.git
cd textme/daemon && npm install && npm run build
npm startText your Sendblue number: hello
| Command | Action |
|---|---|
? |
Show commands |
status |
Current status & directory |
queue |
View queued messages |
history |
Recent messages |
home |
Go to home directory |
reset |
Home + clear history |
cd /path |
Change directory |
stop |
Cancel current task |
yes / no |
Approve/reject actions |
pm2 start dist/index.js --name textme
pm2 save
pm2 startupdaemon/
├── src/
│ ├── index.ts # Main loop, message processing, media handling
│ ├── sendblue.ts # Sendblue API (send, receive, upload files)
│ └── ...
├── dist/ # Compiled output
└── package.json
# PM2
pm2 logs textme
# Standalone
tail -f ~/.local/log/claude-imessage.log./scripts/install-launchd.sh # Enable
./scripts/uninstall-launchd.sh # Disablepm2 delete textme # or: pkill -f "node.*daemon/dist"
rm -rf ~/.config/claude-imessage ~/.local/log/claude-imessage.logMIT License