AI Social Media: The Full Feature List
A presence-management system for one brand across seven platforms. It reads incoming activity, drafts replies in your voice, finds posts worth engaging with, generates images on demand, and publishes content on your schedule. Every action is logged, every draft can be reviewed, and every rule you set is followed.
Below is a complete list of what the system does, including the universal features (image generation, learning, background automation) that work the same across other system types.
Bluesky
Full support. Read mentions, replies, likes, reposts, and follows. Post text and images. Reply to any post. Like, repost, follow accounts. Search posts by topic. Read any account's recent posts. Setup uses an app password from your Bluesky settings.
X (Twitter)
Full support. Read mentions, post text and images, reply, like, repost, follow. Search recent tweets by query. Read any account's recent tweets. Setup uses OAuth1 keys from your Twitter Developer account. Basic tier rate limits (10k reads per month) are respected automatically.
LinkedIn (Personal Profile)
Outbound: post, comment on posts you have URNs for, like, reshare. Inbound: read replies received on your posts. LinkedIn does not expose post search or mention discovery for personal profiles, so the admin interface uses web search to find LinkedIn posts on a topic, extracts the post URN, and drafts a comment for your approval. Access tokens (60-day expiry) are refreshed automatically every day.
Mastodon
Full support on a single instance per deployment. Read mentions, replies, favourites, reblogs, and follows. Post text and images. Reply, favourite, reblog, follow accounts. Search posts by topic. Read any account's recent posts. Notifications are auto-marked-seen so the system never duplicates responses. Setup uses an access token from your instance's developer settings.
Threads
Post text, reply to threads you have IDs for, and repost. Read replies received on your posts. Threads' personal API does not expose like, follow, post search, or other-account fetch, so the system honestly does not attempt those. Image posts require a public URL (Threads does not accept local file uploads).
Facebook Pages
Post text and images to your Page. Reply to comments on your own Page's posts. Read recent comments across your Page. Page-level analytics (followers, fans). Facebook does not expose like or repost actions for Pages via the API.
Instagram (Business Account)
Post images and captions (Instagram requires a public image URL, not a local file upload). Reply to comments on your media. Read tagged posts as mentions. Instagram does not expose like, repost, or follow actions via the API for business accounts.
Every 15 minutes, the engagement agent checks all connected platforms for new activity, processes mentions and replies, decides on outbound actions, and either sends them directly or queues them for your approval based on the mode you set.
Unified Inbox
Mentions, comments, replies, likes, reposts, and follows from every connected platform arrive in one stream each cycle. The agent prioritizes direct questions first, high-follower mentions second, regular mentions third.
No Duplicate Responses
Bluesky and Mastodon notifications are marked-seen automatically. For Threads, where the API has no mark-as-read endpoint, the system tracks the last 100 processed reply IDs and skips anything it has already responded to.
Approval-First by Default
Every drafted reply and every drafted post goes to a pending queue for you to review and approve before anything is sent. You can switch posting or replying to auto mode independently when you trust the system on a particular workflow.
Reply Threshold Guardrail
Replies to accounts above a configurable follower threshold (default 10000) are always queued for human review, regardless of your auto-mode settings. A bad reply to a large account is a public brand risk.
Sensitive-Topic Filter
You define a list of topics the system must never engage with (politics, competitor comparisons, pricing, anything you specify). Mentions matching those topics are skipped silently, with no reply, like, or repost.
Flag-and-Alert
Notable events (mentions from very high-follower accounts, viral activity, business inquiries, spam attacks, negative sentiment clusters) are flagged for your attention and surfaced through the chat interface and optional Discord or Slack alerts.
Topic Search
The engagement agent searches Bluesky, X, and Mastodon each cycle for posts matching your configured content themes, rotating through topics so the system stays present in conversations you care about. Best candidates are queued as drafted replies for your approval.
Watch List
Maintain a list of specific accounts to monitor across Bluesky, X, and Mastodon. The system fetches their recent posts every six hours and surfaces engagement opportunities. You add and remove accounts through natural commands like "add @influencer on x to my watch list."
LinkedIn Comment Discovery
When you ask "find me LinkedIn posts about [topic]," the chat agent uses web search to find recent LinkedIn posts on the topic, extracts the post URN from each result, drafts a comment in your voice, and queues the comment for your approval. This works around LinkedIn's lack of feed-search API for personal profiles.
Drafted, Not Just Surfaced
Discovery candidates queue with drafted reply text already written, not just a list of posts to look at. You either approve the draft, edit it, or reject it. No empty work for you to fill in.
A research agent runs a multi-step pipeline every 15 minutes to find content worth posting. It explores trending topics in your industry, monitors competitor accounts, identifies audience questions, and synthesizes proposals into ready-to-publish posts. A skeptical step reviews each proposal for brand voice, accuracy, platform fit, and risk before it reaches the engagement agent.
Per-Platform Variants
Every proposal includes adapted text for each enabled platform. Bluesky, X, LinkedIn, Mastodon, Threads, Facebook, and Instagram each get framing appropriate to that platform's audience and conventions. The system rejects proposals that would post identical text across platforms.
Content Themes
You configure 2-5 topics the system focuses on. The research agent uses these to bound its discovery, find relevant trends, and avoid drifting into off-brand territory. Add or remove themes anytime.
Posting Cadence
Configurable post frequency (default: one post every five hours), maximum posts per day (default: four across all platforms combined), and a hard zero option to disable automatic posting entirely. The system never exceeds your daily cap, even in auto mode.
Skeptical Review Step
Before any proposal reaches the engagement agent, a skeptical reviewer checks brand voice consistency, fact-verifies any claims, checks duplication against recent posts, evaluates engagement potential, and rejects proposals that fail on any dimension.
Generate On Demand
Ask the chat agent "generate an image of [description]" and the system creates a PNG using the Gemini CLI on your existing subscription. No separate API key, no extra billing. Images appear in a shared library at work/images.
Universal Across System Types
The image generator is a shared tool any background agent can use. Marketing emails, dev team announcements, science papers, and social media posts all draw from the same library. Browse images by date, prompt, and model.
Auto-Attach to Posts
When a research proposal includes an image prompt, the engagement agent generates the image first, then attaches it to the post on every platform that supports local image upload (Bluesky, X, LinkedIn, Mastodon, Facebook).
Honest About Limits
Instagram and Threads require public image URLs, not local files. When a proposal asks for an image on those platforms, the system posts text-only there and uses the image on the others. You can manually host the image yourself if you want it on Instagram or Threads.
Hourly Analytics Snapshots
Every hour, the system pulls per-platform analytics (follower counts, engagement, post count) and saves a snapshot. Cached snapshots power instant "how am I doing" answers without burning API quota on every check.
Six-Hourly Maintenance
Every six hours, the system prunes pending posts older than 30 days, prunes implemented or rejected suggestions older than 30 days, and writes a status report (pending counts, follower deltas, suggestion counts, system confidence). The status report is what the chat agent reads when you ask "what is happening."
Daily LinkedIn Token Refresh
LinkedIn access tokens expire every 60 days. The system refreshes yours every 24 hours using the refresh token you provided during setup. You should never see an expired LinkedIn token.
Pause-Aware Throughout
One pause command stops every background agent (engagement, research, learning) and every scheduled job (maintenance, refresh) at the next tick. Resume restarts everything. The chat agent keeps working when paused so you can review and adjust.
Every social media action the system takes (post published, reply sent, like given, post approved or rejected by you, image generated, growth action) is logged to a structured outcomes file. The learning agent reads these outcomes and the cached analytics snapshots, compares deltas over time, and generates strategy improvement ideas grounded in actual numbers rather than assumptions. A skeptical step reviews ideas against your seeded safety rules before they become suggestions for your review.
Outcomes Logging
Every meaningful action becomes a structured event. The learning agent uses these to find patterns: which content types get engagement, which reply approaches lead to conversations, which platforms your audience actually responds on.
Grounded Suggestions
Learning ideas reference real numbers: "follower growth on X dropped from +12 per day to +3 per day this week, three of four rejected posts were jokes; consider pausing joke posts on X for two weeks." Not "consider posting more on X."
Suggestion Lifecycle
Approved suggestions persist indefinitely until you mark them implemented. Pending suggestions older than 30 days expire automatically (with a nudge at 7 days so they do not pile up unreviewed). Rejected suggestions also expire at 30 days.
Pattern Memory
When the learning agent identifies a clear pattern from outcomes data, it creates a memory entry that all background agents read each cycle. Over time the system gets sharper about what works for your specific audience without you needing to tell it.
Minimal Onboarding
First setup walks you through brand voice, content themes, sensitive topics, and one platform of your choice. The other platforms can be added on demand by saying "set up mastodon next" or similar. You are running with a working system in under 15 minutes.
Per-Platform Setup Walkthrough
For each platform, the chat agent walks you through where to get credentials (developer portals, app passwords, OAuth flows) and what scopes to request. After saving, the system makes a live API call to verify the credentials work and re-walks setup if anything is wrong.
Pending Review Commands
"Show me pending posts and replies" lists everything queued. "Approve item-id" or "reject item-id" handles each one. Each pending item shows the platform, the drafted text, the target post if it is a reply, and the reason it was queued.
Discovery and Posting Commands
"Find me posts to comment on about [topic]," "post this to bluesky," "reply to this post with X," "show me my analytics," "generate an image of [description]" all work as natural commands. The agent runs the right tool and shows you the result.
Settings By Conversation
Change brand voice, sensitive topics, posting frequency, watch accounts, reply threshold, approval mode, anything in your config by telling the chat agent. It edits the right file with the right format and confirms the change.
Pause and Resume
"Pause the system" stops every background agent and scheduled job until you resume. Useful for vacations, brand crises, or just when you want hands-on control for a few hours.
Four non-negotiable rules are seeded as human-source guardrails on first install. The learning agent cannot override them. The engagement agent enforces them at every decision point.
No Cross-Posting
Identical text never goes to multiple platforms in the same batch. The synthesizer produces per-platform variants; the engagement agent rejects any proposal that would copy-paste across platforms. Audience overlap fatigues followers, so the system refuses to create that fatigue.
Human Review For Large Accounts
Replies to accounts above the configured follower threshold always queue for your review, regardless of auto-mode settings. A bad reply to a large account is a permanent public artifact, so the system treats it as worth a few seconds of your attention.
Sensitive Topics Are Off-Limits
You define a list of topics the system never engages with (politics, competitor comparisons, pricing, controversial industry debates, anything you specify). Mentions matching those topics are skipped silently, even in auto mode. This rule overrides everything else.
No Paid Growth Services
The system never recommends or integrates bot networks, follower-purchase services, comment pods, or engagement-exchange platforms. Growth comes from your actual content and engagement, not from gaming the algorithm.
What Is Actually Running
The system runs as a set of background agents on your server, each on its own timer. All of them respect the system-wide pause flag and skip cycles silently when paused.
Master agent handles the chat interface (5-second tick). This is the one you talk to.
Engagement agent runs every 15 minutes: processes incoming activity, handles proactive discovery (search, watch list), publishes content from research proposals, manages the pending queue.
Research agent runs every 15 minutes through a multi-step pipeline: explore trending topics, search for specifics, synthesize per-platform post proposals, review for brand fit and risk.
Learning agent runs every 15 minutes through a three-step cycle: creative ideas grounded in outcomes data, skeptical review against safety rules, execute (auto-implement what is safe, queue everything else as suggestions for your approval).
Coordinator ticks every 5 minutes: curates background agent logs, surfaces stale pending items, extracts patterns from outcomes for the learning agent.
Scheduler handles hourly analytics snapshots, six-hourly maintenance, daily LinkedIn token refresh, and any custom daily cleanup scripts you add.
All data stays on your deployment. Your accounts, your credentials, your posts, your audience data, your learning outcomes. Nothing is shared with any external service the system itself does not call (the platform APIs you set up, the Gemini CLI for image generation).