
Post
- 45 installs
- Updated May 12, 2026
- tryshift-sh/skills-store
Helps with ai & agent building tasks.
About
post is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- post
- AI & Agent Building
- AI-coding skill
Post by the numbers
- 45 all-time installs (skills.sh)
- Ranked #7,749 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/tryshift-sh/skills-store --skill postAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 45 |
|---|---|
| Last updated | May 12, 2026 |
| Repository | tryshift-sh/skills-store ↗ |
What it does
Helps with ai & agent building tasks.
Files
X Post
Use this managed skill when the user wants to post on X, reply to a post, quote a post, or delete a post.
This skill uses Shift's local Skill Router. Do not ask the user to paste credentials into chat.
Invocation
Base URL:
SHIFT_LOCAL_GATEWAY
Endpoint:
POST /skill-router/invoke
Request body for a new tweet:
{
"skillProvider": "x",
"skill": "post",
"action": "create",
"input": {
"text": "Hello from Shift"
}
}Request body for a reply:
{
"skillProvider": "x",
"skill": "post",
"action": "reply",
"input": {
"text": "Reply text",
"tweetId": "1234567890"
}
}Request body for a quote tweet:
{
"skillProvider": "x",
"skill": "post",
"action": "quote",
"input": {
"text": "Quoted text",
"tweetId": "1234567890"
}
}Request body to delete a tweet:
{
"skillProvider": "x",
"skill": "post",
"action": "delete",
"input": {
"tweetId": "1234567890"
}
}If the connection is missing, tell the user to configure X in Shift.
{
"id": "post",
"name": "Post",
"description": "Post, reply, quote, and delete posts on X.",
"actions": {
"create": {
"upstream": {
"method": "POST",
"baseUrl": "https://api.x.com",
"path": "/2/tweets",
"auth": { "mode": "bearer" }
},
"input": {
"bodyTemplate": {
"text": "$input.text"
}
},
"output": {
"responseSelect": "data",
"responseMap": {
"id": "$data.id",
"text": "$data.text",
"url": "https://x.com/i/status/${data.id}"
}
}
},
"reply": {
"upstream": {
"method": "POST",
"baseUrl": "https://api.x.com",
"path": "/2/tweets",
"auth": { "mode": "bearer" }
},
"input": {
"bodyTemplate": {
"text": "$input.text",
"reply": {
"in_reply_to_tweet_id": "$input.tweetId"
}
}
},
"output": {
"responseSelect": "data",
"responseMap": {
"id": "$data.id",
"text": "$data.text",
"url": "https://x.com/i/status/${data.id}"
}
}
},
"quote": {
"upstream": {
"method": "POST",
"baseUrl": "https://api.x.com",
"path": "/2/tweets",
"auth": { "mode": "bearer" }
},
"input": {
"bodyTemplate": {
"text": "$input.text",
"quote_tweet_id": "$input.tweetId"
}
},
"output": {
"responseSelect": "data",
"responseMap": {
"id": "$data.id",
"text": "$data.text",
"url": "https://x.com/i/status/${data.id}"
}
}
},
"delete": {
"upstream": {
"method": "DELETE",
"baseUrl": "https://api.x.com",
"path": "/2/tweets/{tweetId}",
"auth": { "mode": "bearer" }
},
"output": {
"responseSelect": "data",
"responseMap": {
"deleted": {
"$value": "$data.deleted",
"$default": false
}
}
}
}
}
}