Social Extension — AthenaBot Plugin

Setup

Install the plugin and add your own API access for X and Instagram.

Setup

1. Install the plugin

  1. Copy the plugin folder into the bot: plugins/social-extension/.
  2. Restart the bot. The plugin registers its config, schedule, the /social command and the dashboard page automatically.
  3. Open the Social page in the dashboard.

2. RSS (easiest — no API keys)

Instead of a platform API you can simply give each account an RSS / Atom feed URL. When it is set, the plugin crawls that feed — with no API keys at all. This is especially handy for Instagram (e.g. a feed from RSS.app) and works the same way for X (RSS.app or a Nitter instance).

  1. Create an RSS feed for the account (e.g. on RSS.app).
  2. Paste the feed URL on the account under RSS feed URL in the dashboard.
  3. Pick a channel & role, save — done.
With RSS you need neither an X bearer token nor the Instagram Graph API. The API sections below are only needed if you do not use RSS.

3. Twitter / X

X is read through the official X API v2 using an app-only Bearer Token. One token is enough to watch many public accounts.

  1. Create a project/app at developer.x.com.
  2. Copy the app-only Bearer Token.
  3. Paste it under API Credentials → Twitter / X Bearer Token in the dashboard and save.
For each X account you then only enter the username (without @) — the token applies to all of them.

4. Instagram

Prefer the RSS option above — it needs no API setup. Use the Graph API only if you specifically want it.

Instagram is read through the official Instagram Graph API, which works with business/creator accounts.

For every Instagram account you need:

FieldDescription
Instagram account idThe id of the Instagram business account
Access tokenA valid access token for that exact account

You enter both values directly on the account in the dashboard (see Dashboard & Accounts).

API tokens are secrets. Never share them. In the dashboard, saved tokens are never sent back to the browser — leaving the field blank on save keeps the existing value.
Third-party APIs are rate limited. Keep the check interval at a reasonable value (default: 5 minutes).
Copyright © 2026