grokbot-x skill
Five skills for posting on X via the official Typefully API: replies go out as drafts and a nightly gate tunes the playbook
- 77 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- Original posts are published to the X account through the API with no extra confirmation
- The Typefully API key lives in `.env` and grants posting on behalf of the owner
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/grokbot-xDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Original posts are published to the X account through the API with no extra confirmation
- The Typefully API key lives in `.env` and grants posting on behalf of the owner
This is third-party code. Review the repository files before installing.
What it does
grokbot-x builds a working loop for running an X account from five skills and two Python scripts. The agent finds posts with views far above the author's follower count, writes a reply or a post in the owner's voice and sends the text to Typefully. Original posts go out through the API right away, replies are created as drafts, and they reach X only after a person clicks Publish. The scripts `publish_original.py` and `create_reply_draft.py` run on the Python 3.10 standard library with no dependencies. Every shipped post is logged as one JSON line in a trajectory file. Each night `skillopt/sleep_cycle.py` tests one edit of the main skill on held-out data and keeps it only if the lower bound of the confidence interval is above zero. Other edits land in `rejected_edits.md`. The `x-human-cadence` skill sets the rhythm: at most one original post per hour, replies in small batches, likes and follows only by the owner's own hands. The `x-unslop-humanizer` skills clean drafts of stock phrases.
Who it is for. Founders and marketers of small products who run their X account themselves and want an agent to prepare replies and posts while a person keeps the publishing decision.
Good fit when
- An X account needs daily attention, and there is no time to hunt for threads to reply to
- Replies should come out in the brand voice from a filled `BRAND-BIBLE` template
- You want to log the outcome of every post and see what worked
- You want playbook edits checked on held-out data instead of gut feeling
- Publishing must go through the official API with no browser scripting
Not a fit when
- You want bulk replies or automatic likes and follows: the kit deliberately does not do them
- There is no Typefully account with an API key
- You promote somewhere other than X: the skills and scripts are written only for it
Example request
Find two high-reach posts on our product topic and prepare replies as drafts in Typefully.Limitations
It needs Python 3.10 or newer, a Typefully API key, a social set id and an X handle. The values live in `.env` as `YOUR_TYPEFULLY_API_KEY`, `YOUR_TYPEFULLY_SOCIAL_SET_ID` and `YOUR_HANDLE`. The skills target Grok Bot: the `SKILL.md` files are copied into its skill folder by hand. Without a key nothing is published. The "Made with AI" label is controlled by `X_MADE_WITH_AI` and is off by default. The project is not affiliated with xAI, X or Typefully, and responsibility for posts and platform rules rests with the account owner.
How to disable. Delete the copied `SKILL.md` files from the agent skill folder, revoke the API key in Typefully settings and remove `.env` with the trajectory logs.
FAQ
Does the kit publish replies on its own?
No. Replies are created as Typefully drafts and reach X after a manual Publish click. Original posts are published through the API right away.
Does it use a browser or work around X limits?
No. The README states that browser scripting on x.com, auto-likes and auto-follows are off limits, and only the official Typefully API is used.
How does the nightly SkillOpt gate work?
`skillopt/sleep_cycle.py` tests one edit of the main skill on held-out trajectories and keeps it if the interval lower bound is above zero. The reward is fixed in code, so an edit cannot rewrite it.
Which environment variables are needed?
`YOUR_HANDLE`, `YOUR_TYPEFULLY_API_KEY` and `YOUR_TYPEFULLY_SOCIAL_SET_ID`. Optional: `SKILLOPT_DIR` and `X_MADE_WITH_AI`.
Do I need to install dependencies with pip?
No. The scripts run on the Python 3.10 standard library. `ruff` and `pytest` are needed only for development.
Discussion
No questions or reviews yet.
Related
SkillsThe official Typefully skill: an agent drafts, schedules and publishes posts for X, LinkedIn, Threads and Bluesky.
Four Claude Code skills that take a post for X from gathering material and picking topics to a ready draft
A skill for Claude Code and Codex on writing posts and running an X account with six creators' methods and your own data.
A social content skill: learns your voice, plans content, writes posts and, after confirmation, publishes through your logged-in Chrome
Nine skills for Claude Code and Codex write tweets and threads in your voice, extract hooks and plan a content week.
An X (Twitter) research skill: the agent searches posts, reads threads and profiles, and assembles a briefing with source links
README in short
The README describes two lanes, publishing and learning, a five-minute quickstart, a file table, environment variables and a list of what the kit refuses to do.
README badge
Original SKILL.md
--- name: X publish description: >- use this whenever publishing or scheduling any X post or reply for the operator: official API clients only, a human approves every reply, and AI disclosure is the operator's own setting --- # X publish Use this whenever shipping any X original OR reply for @YOUR_HANDLE. Details and curl examples: `docs/PUBLISH.md`. ## Hard ban NEVER automate x.com in a browser: no compose, no replies, no likes, no bookmarks, no follows. X's automation rules ban scripting the X website and ban automated likes and follows; the account can be permanently suspended. Likes, bookmarks and follows are the operator's own clicks. ## Disclosure Whether posts carry X's "Made with AI" disclosure is the operator's choice: `X_MADE_WITH_AI=true` in `.env` turns it on (default off). Use whatever the operator set; never change it on your own. If X applies a label itself, that is X's call: leave it, never try to work around it. ## Originals `python3 scripts/publish_original.py --text "..."` (Typefully API, `publish_at: "now"`, disclosure from `.env`). Or the operator's own phone / laptop. ## Replies 1. CREATE a draft: `python3 scripts/create_reply_draft.py --text "..." --reply-to URL`. It never sets `publish_at`; X does not allow API reply publish. 2. The operator opens the draft's private URL in Typefully, reads it, and clicks Publish. That human click is the approval step. Never schedule replies. ## Before publish checklist - Right path for originals vs replies - Disclosure as the operator set it - Max 1 original/hour; spaced replies - Not a throwaway test, not a duplicate of an earlier post