X Activity Notifier watches selected X accounts and sends instant notifications when they post new content, so you never miss time-sensitive updates. It can also prepare photo+caption reply drafts from a batch you provide, keeping engagement fast while staying human-approved.
Created by Appilot, built to showcase our approach to Automation!
If you are looking for custom , you've just found your team — Let’s Chat.👆 👆
This project monitors activity from a list of target X accounts and triggers notifications to your preferred channels (Telegram, Discord, Slack, email, or webhook).
It solves the “missed moment” problem by detecting new posts quickly, then optionally generating ready-to-send reply drafts (including media + captions) from your preloaded batch.
- Tracks new posts from specific accounts you care about
- Sends notifications with post link, author, and excerpt
- Prepares reply drafts using your caption library and image batch
- Enforces rate limits and deduplication to avoid noisy alerts
- Keeps posting actions manual/approved by default
| Feature | Description |
|---|---|
| Account watchlist | Monitor a configurable list of X accounts |
| Near real-time alerts | Trigger notifications when a new post is detected |
| Multi-channel notifications | Send alerts to Telegram/Discord/Slack/email/webhook |
| Draft reply generator | Suggest captions and attach images from your batch for quick replies |
| Deduplication | Prevent duplicate alerts for the same post |
| Audit logging | Record detections, notifications, and draft suggestions |
| Field Name | Field Description |
|---|---|
| author_handle | Handle of the monitored account |
| tweet_id | ID of the detected post |
| tweet_url | Direct link to the post |
| created_at | Timestamp of the post |
| detected_at | Timestamp when the system detected it |
| notification_targets | Channels/users that received the alert |
| draft_caption | Suggested caption selected/generated from your batch |
| draft_image_path | Local/hosted path for the suggested image |
| status | detected, notified, draft_generated |
[
{
"author_handle": "target_account",
"tweet_id": "1899988776655443322",
"tweet_url": "https://x.com/target_account/status/1899988776655443322",
"created_at": "2025-12-18T08:21:10Z",
"detected_at": "2025-12-18T08:21:18Z",
"notification_targets": ["telegram:my_channel", "discord:#alerts"],
"draft_caption": "Big moment 🔥 Here’s the highlight — what do you think?",
"draft_image_path": "batches/images/img_014.jpg",
"status": "draft_generated"
}
]
X Activity Notifier/
├── src/
│ ├── main.py
│ ├── watchers/
│ │ ├── timeline_watcher.py
│ │ ├── dedupe_store.py
│ │ └── rate_limiter.py
│ ├── notifiers/
│ │ ├── telegram_notifier.py
│ │ ├── discord_notifier.py
│ │ ├── slack_notifier.py
│ │ └── webhook_notifier.py
│ ├── drafts/
│ │ ├── caption_pool.py
│ │ ├── image_picker.py
│ │ └── draft_builder.py
│ ├── storage/
│ │ ├── sqlite_store.py
│ │ └── models.py
│ └── utils/
│ ├── time.py
│ └── logging.py
├── batches/
│ ├── captions/
│ │ └── captions.sample.txt
│ └── images/
│ ├── img_001.jpg
│ └── img_014.jpg
├── config/
│ ├── settings.example.json
│ └── watchlist.example.json
├── data/
│ ├── logs/
│ │ └── app.log
│ └── state/
│ └── dedupe.sqlite
├── requirements.txt
└── README.md
- Traders use it to get alerts from specific accounts, so they can react quickly to market-moving posts.
- Community managers use it to monitor partner accounts, so they can engage at the right moment.
- Brands use it to track competitor announcements, so they can respond with prepared content faster.
- Content teams use it to generate reply drafts, so approvals and posting are quick and consistent.
- Operators use it to route alerts to multiple channels, so teams stay aligned in real time.
Can this automatically comment with a photo and caption?
This repository is designed to generate reply drafts and notify you instantly. Automated commenting is intentionally not enabled by default because it can create policy and account-risk issues; the safer workflow is human approval + one-click posting.
How fast are notifications?
With short polling intervals and deduplication, alerts can arrive within seconds to a couple of minutes depending on rate limits and network conditions.
How do I provide the batch of captions and photos?
Add captions to batches/captions/ and images to batches/images/. The draft engine can rotate, randomize, or select by keyword rules.
Can I filter which posts trigger alerts?
Yes. You can filter by author, keywords, reposts vs originals, or other rules inside the watcher module.
Primary Metric: Detects new posts and triggers notifications typically within 15–60 seconds under stable conditions.
Reliability Metric: Deduplication prevents repeat alerts for the same post, maintaining consistent signal quality across long runtimes.
Efficiency Metric: Runs lightweight monitoring with low idle CPU usage; burst work occurs only when new posts appear.
Quality Metric: Draft replies stay consistent and on-brand by selecting from your curated caption and image batches.
