x-act-on-notifications
Perform selected actions on X (Twitter) notifications through ai-chrome-pilot.
Skill by shinshin86
Chalk Labs
Need help deploying x-act-on-notifications?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/shinshin86-x-act-on-notifications
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/x-act-on-notifications
What's inside
- Skill name
x-act-on-notifications- Description
- Perform selected actions on X (Twitter) notifications through ai-chrome-pilot. Use when the user wants to open X notifications, identify reply or quote repost notifications, filter them by explicit criteria such as action, type, actor, text, date, or limit, and then execute only the requested notification action such as like, bookmark, or repost.
- License
- MIT
- Instructions
- 219 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# X Act On Notifications
Use ai-chrome-pilot to inspect X notifications, build a candidate list, and perform only the requested action on the notifications that match the user's criteria.
Keep the skill profile-agnostic. Use `default` unless the user explicitly requested another profile.
Use this skill for notification actions. If the user only wants to inspect notifications first, use `x-get-notifications` instead. If the user wants to reply or quote-post from a target post, use `x-compose-post`.
## Supported Actions
- `like`
- `bookmark`
- `repost`
Do not overload this skill with reply or quote composition. Treat those as posting workflows.
## Prerequisites
- ai-chrome-pilot server is available in the current repo
- Google Chrome is installed
- The user is already logged in to X in the chosen Chrome profile
- The UI is expected to be Japanese; match labels such as `すべて`, `@ツイート`, `いいねする`, `いいねしました`, `ブックマーク`, `リポスト`, and `リポストを取り消す`
If X shows a login screen, stop and use `x-login` first.
## Inputs To Resolve
Resolve these before acting:
- `profile_name`: default to `default` if unspecified
- `action`: one of `like`, `bookmark`, `repost`
- `types`: `reply`, `quote`, or both
- `filters`: actor handle/name, text substring, date substring, and optional limit
- `mode`: `dry-run` or `execute`
Default resolution rules:
- If `profile_name` is unspecified, use `default` without asking
- If the user explicitly asked to `like` or `bookmark`, default `mode=execute`
- If the user explicitly asked to `repost`, default `mode=dry-run` unless the request already includes clear matching conditions
- If `types` is unspecified, inspect both `reply` and `quote`
- If `filters` is unspecified and the action is `like` or `bookmark`, treat the request as applying to all matching pending notifications currently collected
If the user says only "interact with notifications" without enough detail to infer an action, default to `dry-run` and present candidates instead of clicking anything.
Recommended decision rule:
- Use `x-get-notifications` for read-only collection and review
- Use `x-act-on-notifications` only after the user supplied a clear action and matching conditions
- Prefer `dry-run` before `repost`, because reposting has broader visibility impact than likes or bookmarks
## Workflow
### 1. Ensure the server is running
Check health:
```bash
curl -s http://127.0.0.1:3333/health
```
If not running, start it with the requested profile:
```bash
HEADLESS=0 PROFILE_NAME=<profile_name> npx tsx src/index.ts
```
### 2. Open notifications
Navigate to notifications and wait for rendering:
```bash
curl -s -X POST http://127.0.0.1:3333/goto \
-H 'Content-Type: application/json' \
-d '{"url":"https://x.com/notifications"}'
sleep 2
```
Take a screenshot to confirm the user is logged in and the page loaded:
```bash
curl -s http://127.0.0.1:3333/screenshot -o /tmp/x_notifications.png
```
### 3. Inspect both notification tabs
Check both:
- `すべて`: quote reposts often appear here
- `@ツイート`: replies often appear here
Before any click, take a fresh `/snapshot` and use fresh refs from that snapshot only.
If the needed tab is not active, click the corresponding tab ref, then wait briefly and take another `/snapshot`.
### 4. Collect candidate notifications
Use `/snapshot` and limited scrolling to gather visible notifications. Repeat 2-3 times when needed:
```bash
curl -s http://127.0.0.1:3333/snapshot
curl -s -X POST http://127.0.0.1:3333/eval \
-H 'Content-Type: application/json' \
-d '{"js":"window.scrollBy(0, window.innerHeight * 2)"}'
sleep 1
```
Normalize each candidate with:
- `tab`: `all` or `mentions`
- `type`: `reply` if it contains `返信先:`, `quote` if it contains `引用`
- `actor`: display name and handle when visible
- `date`: visible date text such as `3月3日`
- `notification_text`: reply or quote text
- `original_post_text`: quoted or replied-to post text when visible
- `action_ref`: ref of the requested action button in the same article
- `action_state`
- `like`: `done` if the button says `いいねしました`, `pending` if it says `いいねする`
- `bookmark`: `present` if a bookmark button exists and is not already toggled off by stateful UI text; when state is ambiguous, do not act automaticallyFrom shinshin86/ai-chrome-pilot, MIT.
More from shinshin86/ai-chrome-pilot
- 0.474score
x-get-scheduled-posts
shinshin86
Inspect the scheduled posts list on X (Twitter) through ai-chrome-pilot without creating or modifying posts.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-schedule-post
shinshin86
Schedule a post on X (Twitter) and verify it was successfully scheduled.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-compose-post
shinshin86
Compose and send posts on X (Twitter) through ai-chrome-pilot.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-get-notifications
shinshin86
Inspect notifications on X (Twitter) through ai-chrome-pilot and extract replies or quote reposts without performing likes or other engagement actions.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-like-notifications
shinshin86
Like selected unliked notifications on X (Twitter) through ai-chrome-pilot.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-quote-post
shinshin86
Quote a specific post on X (Twitter) through ai-chrome-pilot.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-schedule-image-post
shinshin86
Schedule a post with an image and AI-generated content label on X (Twitter).
SkillDFreshness: D★ 7Claude Code +9 - 0.466score
x-login
shinshin86
Log in to X (Twitter) via browser.
SkillDFreshness: D★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Mar 11, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/shinshin86/ai-chrome-pilot
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from shinshin86
- 0.474score
x-get-scheduled-posts
shinshin86
Inspect the scheduled posts list on X (Twitter) through ai-chrome-pilot without creating or modifying posts.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-schedule-post
shinshin86
Schedule a post on X (Twitter) and verify it was successfully scheduled.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-compose-post
shinshin86
Compose and send posts on X (Twitter) through ai-chrome-pilot.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-get-notifications
shinshin86
Inspect notifications on X (Twitter) through ai-chrome-pilot and extract replies or quote reposts without performing likes or other engagement actions.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-like-notifications
shinshin86
Like selected unliked notifications on X (Twitter) through ai-chrome-pilot.
SkillDFreshness: D★ 7Claude Code +9 - 0.469score
x-quote-post
shinshin86
Quote a specific post on X (Twitter) through ai-chrome-pilot.
SkillDFreshness: D★ 7Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get x-act-on-notifications running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
x-act-on-notifications skill. Agent Mart. https://agentmart.dev/skills/shinshin86-x-act-on-notifications (last updated 2026-10-24)