What you end up with
chatmany running in your browser, on your own computer. It is free, and it stays free — there is no account, no trial and no subscription at the end of this.
- Time
- About 45 minutes
- Steps
- 24
- Cost
- Free
Before you start
These are one-time installs. If you have used Terminal before, you may have them already — the first step checks.
Install Git
Apple opens a small installer.
Type this into Terminal, then press Return.
xcode-select --installYou know this worked when: Git responds with a version number
Install Node LTS
Choose the macOS Installer (.pkg).
Open downloadYou know this worked when: Node responds with a version number
Install chatmany
Open Terminal
Keep it open beside this page.
You know this worked when: Terminal is open
Check Git and Node
chatmany's deploy tool needs Node 22 or newer.
Type this into Terminal, then press Return.
git --version node --versionYou know this worked when: Git and Node respond with version numbers
Copy chatmany to this Mac
Type this into Terminal, then press Return.
cd ~ if [ ! -d chatmany/.git ]; then git clone https://github.com/Blueturboguy07/chatmany.git fi cd chatmany git checkout aa0888ffe73e880bb90dbc588665981d9a53d205You know this worked when: You are inside the chatmany folder
Install the deploy tool
A few hundred small packages, including wrangler — Cloudflare's deploy tool.
Type this into Terminal, then press Return.
npm installYou know this worked when: npm finishes without errors
Sign in to Cloudflare
A browser opens — sign in to your free Cloudflare account and click Allow.
Type this into Terminal, then press Return.
npx wrangler loginYou know this worked when: The terminal prints Successfully logged in
Create the database
Copy the database_id it prints — the next step needs it.
Type this into Terminal, then press Return.
npx wrangler d1 create chatmanyYou know this worked when: A database_id is printed
Put the database id in the config
In wrangler.toml, replace REPLACE-WITH-THE-ID-FROM-wrangler-d1-create with your database_id.
Type this into Terminal, then press Return.
open -e wrangler.tomlYou know this worked when: wrangler.toml carries your database_id
Set up the database tables
Type this into Terminal, then press Return.
npm run db:migrate:remoteYou know this worked when: Three migrations show a check mark
Put chatmany online
The printed workers.dev address is MY ADDRESS from here on — write it down.
Type this into Terminal, then press Return.
npx wrangler deployYou know this worked when: A workers.dev address is printed
Tell the config its own address
In wrangler.toml, set REDIRECT_URI to MY ADDRESS + /auth/callback.
Type this into Terminal, then press Return.
open -e wrangler.tomlYou know this worked when: REDIRECT_URI is your callback address
Deploy again
Same command — it now ships the config with your address in it.
Type this into Terminal, then press Return.
npx wrangler deployYou know this worked when: The deploy finishes again
Set your owner password
Invent a long random password, paste it when asked, and keep a copy — it is your only login.
Type this into Terminal, then press Return.
npx wrangler secret put OWNER_TOKENYou know this worked when: wrangler reports the secret was uploaded
Create your Meta app
On developers.facebook.com: My Apps, Create app, use case Manage messaging & content on Instagram.
You know this worked when: The new app's dashboard is open
Copy the Instagram app ID and secret
Use cases, Customize, API setup with Instagram login. Add all required permissions, then copy both.
You know this worked when: Instagram app ID and secret are in your notes
Register your address with Meta
On the same page: Set up Instagram business login. Enter MY ADDRESS + /auth/callback and save.
You know this worked when: The redirect URL is saved
Fill in the app's public pages
App settings, Basic: set privacy, terms and data deletion to MY ADDRESS + those three pages.
You know this worked when: Changes saved
Publish the app
Sidebar, Publish, then the Publish button. The sidebar badge must say Published.
You know this worked when: The app says Published
Add the Instagram Tester role
App roles, Roles, Add People, pick Instagram Tester, type your Instagram username, Add.
You know this worked when: Your username is listed as Instagram Tester
Accept the tester invite
On instagram.com in a computer browser: Settings, Apps and websites, Tester Invites, Accept.
You know this worked when: The invite shows as accepted
Give chatmany the Meta credentials
Run each line, pasting the Instagram app ID for the first and the secret for the second.
Type this into Terminal, then press Return.
npx wrangler secret put APP_ID npx wrangler secret put APP_SECRETYou know this worked when: Both secrets report as uploaded
Connect your Instagram account
Open MY ADDRESS + /auth/authorize, then click Allow on Instagram's permission screen.
You know this worked when: The page says Connected
Open your dashboard
Open MY ADDRESS, sign in with your owner password, and build your first automation.
You know this worked when: The dashboard shows your Instagram handle
If something goes wrong
Nothing here can damage your computer, and every step can be run again safely. If a command fails, the usual cause is the step before it not having finished.
Still stuck? Tell us what happened and we will fix the guide. Include the step number and we can usually reproduce it.