Social agent

The AI social media agent that waits for your yes.

FounderReply is an AI social media agent that finds the threads where your buyers are asking, drafts an on-brand reply or post, and publishes it from your own connected account through the platform’s official API. Every draft waits in an approval queue until a human releases it. 5 platforms are connectable today: Reddit, X, Bluesky, Lemmy and Discourse.

Connect accounts you already own · 5 platforms live · 5 pending platform review · No credit card required

Your own accounts
Official platform APIs only
A human approves every send
Autonomy capped to each platform’s ToS

What it does

An agent that reads the room before it opens its mouth.

Most social AI is a caption generator with a scheduler attached. This one starts from the conversation: it discovers public threads, scores them against a structured picture of your brand, and only then writes — and what it writes is a draft, not a post.

It finds the conversation first

Before it writes anything it reads. Public threads are pulled through each platform’s own search endpoint and scored against your brand — what you sell, who you sell to, and the topics you have standing to speak on.

lib/persona.ts turns a short intake into audience segments, content pillars and a tone matrix; lib/growth.ts scores discovered threads against that persona before a draft is ever generated.

It drafts in your voice, not a template

Each draft is written for one thread, grounded in the persona and in what this brand has already posted — a contribution to the conversation rather than a paragraph with your product bolted to the end.

Drafting runs through draft() in lib/ai.ts, which injects your recent approved corrections as few-shot guidance and fences the untrusted thread text so it cannot act as an instruction.

It posts as you, through the front door

Nothing is scraped and no account is rented, aged or “managed”. The agent acts through the account you connected, on the platform’s documented API, and you can revoke it at the platform whenever you like.

Each connector in lib/connectors/ talks to one documented API host and nothing else — Reddit over OAuth at oauth.reddit.com, X over OAuth 2.0 with PKCE, Bluesky over AT Protocol XRPC.

Where it posts

5 of 10 platforms are connectable today.

A connector being written is not the same as a platform app being approved. The ones listed below can be connected right now; the rest are waiting on their platform’s review, and until that clears the connect route refuses them outright rather than failing halfway through a setup.

How it works

Four steps, and the last one is you.

Setup is a connect flow and an intake form. After that the loop runs on a schedule and surfaces work for you rather than asking you to go looking for it.

  1. 1

    Connect an account you already own

    Reddit and X connect over OAuth. Bluesky takes an app password you generate in its settings, Lemmy your instance login, Discourse a key your forum admin issues. Passwords for Reddit and X never touch FounderReply.

  2. 2

    Describe the brand once

    A short intake — what you do, who you sell to, tone preferences, competitors — becomes a structured persona: audience segments, content pillars, a tone matrix and per-platform cadence. Every later draft is written against it.

  3. 3

    The agent finds threads and drafts

    Discovery runs on a schedule, scores what it finds, and drafts a contribution for the ones worth answering. Guardrails — banned topics, a link policy, a length cap — are evaluated on the text before it goes anywhere.

  4. 4

    You approve, and only then does it ship

    The draft waits in the approval queue. You edit it, release it, or reject it; releasing it is what calls the connector. If you changed the wording, the draft and what you actually sent are both kept.

The ceiling

The limit is in the code, not in a promise.

Every action resolves through one gate before it can leave the system, and that gate returns the safer of your setting and the platform’s cap on the ordering off < approve < auto. Your dial can only tighten it. This is that table, printed rather than described.

Platform-ToS hard capslib/autonomy.ts
For each agent action: the mode it ships as, and the most permissive mode FounderReply will allow on each connectable platform.
ActionShips asRedditXBlueskyLemmyDiscourse
Publish to your own accountpostapproveapproveautoautoautoauto
Reply under your own postsreplyapproveapproveautoautoautoauto
Send a direct messagedmapproveapproveapproveapproveapproveapprove
Comment on someone else’s threadgrowth_commentoffoffapproveapproveapproveapprove
  • growth_comment — commenting under strangers’ threads — is hard-off on Reddit and on LinkedIn. An allowlist entry can lift Reddit’s “off” only as far as approve — never to auto.
  • A platform or action with no entry in the table falls back to approve. The fallback is never auto, so a connector added tomorrow is human-gated by default rather than by memory.
  • Bluesky direct messages sit on an off-protocol side service that is not wired up, so its dm cap is moot in practice.

What each connector asks you for

  • Reddit

    OAuth 2.0

    identitysubmitreadprivatemessageshistoryedit

    No vote scope, so it cannot upvote or downvote anything on your behalf.

  • X

    OAuth 2.0 + PKCE

    tweet.readtweet.writeusers.readdm.readdm.writelike.writeoffline.access

    offline.access is what issues the refresh token; nothing else is requested.

  • Bluesky

    App password

    AT Protocol has no OAuth scope list here — you generate an app password in Bluesky’s settings and revoke it there.

  • Lemmy

    Per-instance login

    Every Lemmy instance is its own server with no central OAuth client, so the account logs in to its own instance for a JWT.

  • Discourse

    Forum API key

    A key issued by an admin of that one forum, sent with an Api-Username. It grants nothing anywhere else.

Scope strings are the literal defaults in each connector’s getAuthUrl lib/connectors/reddit.ts and lib/connectors/x.ts. Bluesky, Lemmy and Discourse have no OAuth client to scope: they authenticate with a credential you issue and can withdraw at the source.

The gate

Nothing dispatches before you approve it.

A draft is a row in a queue, not a scheduled post. The connector call that publishes it lives on the far side of your approval — releasing an item is what invokes it, and rejecting one simply closes the row.

Approval is the dispatch

There is no “publish anyway” path around the queue. Whatever the agent wants to send — a reply, a DM, an original post, a comment under someone else’s thread — arrives as a pending row and stays there.

approveAndSend() in lib/approval.ts is the only caller of the connector’s publish, reply, DM and comment methods for queued work, and it accepts your edited text in place of the draft.

Your edit is the training signal

When you rewrite a draft before releasing it, the model’s version and the version you actually sent are both kept. That pair is the most specific description of your brand’s voice anyone will ever write down.

lib/editlog.ts stores the draft→final pair when the change is more than whitespace or case, and the most recent corrections are injected back into drafting as few-shot guidance.

How the approval queue works

FAQ

Before you connect an account.

What the agent can and cannot do, which platforms are genuinely available, and what happens to the draft between the model writing it and it appearing in public.

What is an AI social media agent?

It is software that reads the conversations around your brand, writes a reply or a post in your voice, and publishes it through a platform’s official API. FounderReply is that, with a gate: every draft it writes lands in an approval queue and a person releases it before anything is published.

Which platforms can I connect today?

5 today: Reddit, X, Bluesky, Lemmy and Discourse. Instagram, Facebook, LinkedIn, YouTube and Stack Exchange have connectors written, but their platform apps are still in review — the connect route rejects them and the dashboard disables them, so they cannot be connected yet. Each one becomes available the day its app is approved.

Does the AI post automatically without me?

Only where a platform’s own rules allow it, and only if you ask for it. The autonomy controller returns the safer of your setting and a per-platform ceiling, so your dial can make things stricter but never looser. On Reddit every action is capped at approve, whatever you choose.

Can it comment on other people’s posts?

That action ships switched off on every platform. On Reddit and LinkedIn it is also hard-capped off, so no plan and no setting turns it on; an explicit allowlist entry can raise it only as far as approve. Any platform with no entry in the table falls back to approve, never to auto.

Whose accounts does the agent post from?

Yours. Reddit and X connect over OAuth, Bluesky with an app password you generate, Lemmy with your instance login, Discourse with a key your forum admin issues. Nothing is scraped, no accounts are rented or resold, and you can revoke access at the platform at any time.

Does it learn my brand’s voice?

Yes, from your edits. When you change a draft before releasing it, both the draft and the text you actually sent are stored, and the most recent corrections are fed back into drafting as few-shot guidance. Whitespace-and-case-only changes are ignored so the signal stays meaningful.

Get started

Let it draft the first one. You send it.

Connect an account you already own, describe the brand once, and read what the agent writes before anyone else can. Nothing leaves the queue until you release it.

Free to start · No credit card required · Disconnect any time