This project allows you to send and receive SMS messages and run arbitrary services.
Currently, it supports:
- ChatGPT
- aviation weather.
I use a dumb phone as my daily driver. I started writing this service because I missed access to ChatGPT, and I have since expanded it to support other functionality.
DISCLAIMER: My calculations are an estimate and specific to my geography and usage. Please do your own math before using it. All responsibility for the correctness of the calculations and incurred costs is yours.
Important: You need to have a paid SMS provider account and a paid OpenAI API account, both with available credits.
OpenAI's free tier has a limited quota and will return insufficient_quota errors when exceeded. Visit https://platform.openai.com/account/billing to set up a paid account.
- Twilio: $3 (phone number) + $7.90 (outbound SMS @ $0.079/msg) + $3.80 (inbound SMS @ $0.038/msg) = $14.70
- OpenAI API: ~$0.05
- Total: ~$14.75/month
- Twilio: $3 (phone number) + $2.37 (outbound SMS) + $1.14 (inbound SMS) = $6.51/month
- OpenAI API: ~$0.015
- Total: ~$6.53/month
To install the dependencies, run:
npm installTo start the development server, use:
npm run dev- Sign up for a Twilio account
- Get a phone number (preferably a local number or a number in the EU — some countries are cheaper than others)
- Set up webhook URL in Twilio dashboard to point to your deployment URL:
- If using Vercel:
https://your-project-name.vercel.app/api/sms
- If using Vercel:
- Configure environment variables
Coming later.
ALLOWED_PHONE_NUMBER: Your phone number that is allowed to send messages Phone numbers must be in+XXXXXXXXXXXXformat (e.g.+12345678901)
TWILIO_ACCOUNT_SID: Your Twilio Account SIDTWILIO_AUTH_TOKEN: Your Twilio Auth TokenTWILIO_PHONE_NUMBER: Your Twilio phone number
OPENAI_API_KEY: Your OpenAI API key
BROWSERLESS_TOKEN: Your Browserless token for running the scraping service
Check specific providers for their configuration in /api/providers/aviation/weather/XX.js where XX is the ICAO country prefix.
- If you have an international number, replies come from a generic Twilio phone number, not the
TWILIO_PHONE_NUMBERyou set up in the Twilio dashboard.
This project is licensed under the MIT License.