Xqueue
File-based X/Twitter post scheduler. Drop tweets into day/time folders, they post automatically. No frontend, no app — your file system is the UI. Skill: Xqueue Owner: madebydia Summary: File-based X/Twitter post scheduler. Drop tweets into day/time folders, they post automatically. No frontend, no app — your file system is the UI. Tags: latest:1.0.6 Version history: v1.0.6 | 2026-06-07T03:31:53.047Z | user Refresh publisher identity and metadata for madebydia v1.0.5 | 2026-03-27T16:00:31.523Z | user Cross-list sync from workspace v1.0.4 | 2026-03-24T16:58:12.6
Rank
62
Safety
84
Downloads
1.6k
Updated
Oct 10, 2026
Version
1.0.6
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.6K downloads reported by the source. Last updated 10/10/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 10, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 10, 2026
- Adoption signal
- 1.6K downloadsadoption · observed Oct 10, 2026
- Latest release
- 1.0.6release · observed Jun 7, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s176b3312npmthbt2chf2mccw183grfh:xqueue- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-madebydia-xqueue/snapshot"
Documentation
CLAWHUB
66,647 characters of source documentation, loaded on request.
Extracted files
4 files captured from the source.
SKILL.md
---
name: xqueue
description: File-based X/Twitter post scheduler. Drop tweets into day/time folders, they post automatically. No frontend, no app — your file system is the UI.
metadata: {"openclaw":{"requires":{"env":["X_CONSUMER_KEY","X_CONSUMER_SECRET","X_ACCESS_TOKEN","X_ACCESS_TOKEN_SECRET"],"bins":["python3"]},"permissions":{"filesystem":"read/write within xqueue/ directory","network":"api.twitter.com, upload.twitter.com","keychain":"optional macOS Keychain if XQUEUE_KEYCHAIN_ACCOUNT is set"},"homepage":"https://github.com/madebydia/xqueue","author":"Diana Park (@madebydia)"}}
---
# XQueue
A file-based post scheduler for X (Twitter). Your file system is the UI.
## How It Works
Create a folder structure with days and times. Drop tweet files into the time slots. A cron job checks every 15 minutes — if it's the right day and time and there's content, it posts and cleans up.
```
xqueue/
config.json
backlog/
ebook-launch-thread.md
ai-tools-roundup.md
Sunday/
10am/
my-tweet.md
photo.jpg
Monday/
9am/
thread-about-shipping.md
12pm/
5pm/
Tuesday/
...
```
The schedule cycles weekly. Monday's 9am slot fires every Monday at 9am. If the folder is empty, it pulls the oldest file from `backlog/` (sorted alphabetically). If there's content in the slot, it posts that and backlog waits. This means you can schedule up to a week of specific content, and dump everything else in backlog — it'll fill empty slots automatically.
After posting, files are deleted (by default) so they don't repeat.
## Setup
Run the setup command to create your queue:
```bash
python3 xqueue-setup.py
```
This asks you:
1. How many times per day do you want to post?
2. What times? (or let it pick optimal times)
3. What timezone?
4. Any X communities to post to?
5. Thread separator preference (default: ---)
6. Delete after posting? (recommended yes — if off, posts may send twice)
Creates the full folder structure + config.json.
## Tweet Format
### Simple tweet
Just write the text in a `.md` or `.txt` file:
```
This is my tweet. It can be up to 280 characters.
```
### Tweet with community
Start with `Post to [community name]:` on the first line:
```
Post to Build in Public: Just shipped my first ClawHub skill. File-based tweet scheduler, no frontend needed.
```
### Thread
One file, tweets separated by your configured separator (default `---`):
```
I built a file-based tweet scheduler with no frontend. Your filesystem is the UI.
---
Drop a .md file into Monday/9am/ and a cron job posts it. Empty slot? It pulls from a backlog/ folder automatically.
---
No database, no app, no dashboard. Just folders and text files. Sometimes the simplest architecture wins.
```
### Tweet with media
Put image/video files in the same time folder as the tweet. Supported: JPG, PNG, GIF (under 5MB for images, 15MB for GIF).
```
9am/
tweet.md ← the text
progress.png ← gets attached
```
If multiple media files exist, they attREADME.md
# XQueue
A file-based post scheduler for X (Twitter). Your file system is the UI.
No database. No dashboard. No app. Just folders, text files, and a cron job.
## How It Works
```
xqueue/
config.json
backlog/
Monday/
9am/
thread-about-shipping.md
12pm/
5pm/
Tuesday/
...
```
- **Drop a `.md` file into a day/time folder** → it posts at that time
- **Empty slot?** → pulls the oldest file from `backlog/` automatically
- **Schedule cycles weekly** → Monday/9am fires every Monday at 9am
- **Files are deleted after posting** (configurable) so nothing repeats
## Setup
```bash
python3 xqueue-setup.py
```
The setup wizard asks how many daily posts, what times, timezone, and optional X community targets (paste the community URL, it extracts the ID). Creates the full folder structure + `config.json`.
## Tweet Formats
**Simple tweet** — just text in a `.md` file:
```
Just shipped v2. Sometimes the simplest architecture wins.
```
**Thread** — one file, `---` between tweets:
```
I built a file-based tweet scheduler with no frontend. Your filesystem is the UI.
---
Drop a .md file into Monday/9am/ and a cron job posts it. Empty slot? It pulls from backlog automatically.
---
No database, no app, no dashboard. Just folders and text files.
```
**With media** — put images in the same folder (max 4, alphabetical order):
```
9am/
tweet.md
screenshot.png
```
**Community post** — prefix with the community name:
```
Post to Build in Public: Just shipped my first skill. File-based tweet scheduler, no frontend needed.
```
## Backlog
The `backlog/` folder holds content without a specific time slot. When a scheduled slot is empty, the oldest backlog file gets posted. Prefix filenames with numbers (`01-`, `02-`) to control order.
Write a week of content in one sitting, dump it in backlog, and it distributes itself across your empty slots.
## Cron
Designed to run on a 15-minute cron cycle. Each tick:
1. Checks current day + time against folder structure
2. Posts slot content (or pulls from backlog if empty)
3. Logs to `posted.log`
4. Cleans up posted files
## Requirements
- Python 3
- X API credentials via environment variables:
- `X_CONSUMER_KEY`, `X_CONSUMER_SECRET` (app credentials)
- `X_ACCESS_TOKEN`, `X_ACCESS_TOKEN_SECRET` (user credentials)
- Optional: set `XQUEUE_KEYCHAIN_ACCOUNT` to use macOS Keychain as fallback
- A cron runner (OpenClaw cron, system cron, etc.)
## License
MIT_meta.json
{
"ownerId": "kn711gxkbyw34qye3faaqw24yn8163fm",
"slug": "xqueue",
"version": "1.0.6",
"publishedAt": 1780803113047
}skill-card.md
## Description: File-based X/Twitter post scheduler. Drop tweets into day/time folders, they post automatically. No frontend, no app - your file system is the UI. This skill is ready for commercial/non-commercial use. ## Publisher: [madebydia](https://clawhub.ai/user/madebydia) ### License/Terms of Use: MIT-0 ## Use Case: External users and developers use Xqueue to schedule X/Twitter posts, threads, media posts, and community posts by placing text and media files into day and time folders. It is intended for personal or team social posting workflows that can be run from cron with X API credentials. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: A queue-isolation weakness could allow symlinked files outside the queue to be posted to X under the user's account. Mitigation: Use a private queue directory that untrusted users and processes cannot write to, and avoid symlinks in the queue. Risk: When deleteAfterPost is enabled, successfully posted content and media are removed after posting. Mitigation: Keep backups of scheduled content and media if retaining originals matters. Risk: The skill can post scheduled content and media to X using the user's account credentials. Mitigation: Review queued files before enabling cron, start with dryRun when validating setup, and only provide credentials for an account authorized for this posting workflow. ## Reference(s): - [ClawHub Skill Page](https://clawhub.ai/madebydia/skills/xqueue) - [Xqueue Homepage](https://github.com/madebydia/xqueue) ## Skill Output: **Output Type(s):** [guidance, shell commands, configuration] **Output Format:** [Markdown guidance with shell commands and JSON configuration examples] **Output Parameters:** [1D] **Other Properties Related to Output:** [Produces setup and operating guidance for a local file-based queue; posting behavior depends on the user's configured cron schedule, queue contents, and X API credentials.] ## Skill Version(s): 1.0.6 (source: server-resolved release metadata) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/madebydia/skills/xqueue",
"sourceUrl": "https://clawhub.ai/madebydia/skills/xqueue",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T05:47:51.138Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-madebydia-xqueue/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-madebydia-xqueue/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-10T05:47:51.138Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.6K downloads",
"href": "https://clawhub.ai/madebydia/xqueue",
"sourceUrl": "https://clawhub.ai/madebydia/xqueue",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-10T05:47:51.138Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.6",
"href": "https://clawhub.ai/madebydia/xqueue",
"sourceUrl": "https://clawhub.ai/madebydia/xqueue",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-06-07T03:31:53.047Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-madebydia-xqueue/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-madebydia-xqueue/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.0.6",
"description": "Refresh publisher identity and metadata for madebydia",
"href": "https://clawhub.ai/madebydia/xqueue",
"sourceUrl": "https://clawhub.ai/madebydia/xqueue",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-06-07T03:31:53.047Z",
"isPublic": true
}
]
}Record generated Oct 10, 2026.
