How to install chatmany on Mac

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.

  1. Install Git

    Apple opens a small installer.

    Type this into Terminal, then press Return.

    xcode-select --install

    You know this worked when: Git responds with a version number

  2. Install Node LTS

    Choose the macOS Installer (.pkg).

    Open download

    You know this worked when: Node responds with a version number

Install chatmany

  1. Open Terminal

    Keep it open beside this page.

    You know this worked when: Terminal is open

  2. Check Git and Node

    chatmany's deploy tool needs Node 22 or newer.

    Type this into Terminal, then press Return.

    git --version
    node --version

    You know this worked when: Git and Node respond with version numbers

  3. 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 aa0888ffe73e880bb90dbc588665981d9a53d205

    You know this worked when: You are inside the chatmany folder

  4. Install the deploy tool

    A few hundred small packages, including wrangler — Cloudflare's deploy tool.

    Type this into Terminal, then press Return.

    npm install

    You know this worked when: npm finishes without errors

  5. 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 login

    You know this worked when: The terminal prints Successfully logged in

  6. 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 chatmany

    You know this worked when: A database_id is printed

  7. 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.toml

    You know this worked when: wrangler.toml carries your database_id

  8. Set up the database tables

    Type this into Terminal, then press Return.

    npm run db:migrate:remote

    You know this worked when: Three migrations show a check mark

  9. 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 deploy

    You know this worked when: A workers.dev address is printed

  10. 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.toml

    You know this worked when: REDIRECT_URI is your callback address

  11. Deploy again

    Same command — it now ships the config with your address in it.

    Type this into Terminal, then press Return.

    npx wrangler deploy

    You know this worked when: The deploy finishes again

  12. 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_TOKEN

    You know this worked when: wrangler reports the secret was uploaded

  13. 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

  14. 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

  15. 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

  16. 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

  17. Publish the app

    Sidebar, Publish, then the Publish button. The sidebar badge must say Published.

    You know this worked when: The app says Published

  18. 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

  19. 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

  20. 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_SECRET

    You know this worked when: Both secrets report as uploaded

  21. 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

  22. 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.

Have a different setup?