x-to-skill Turn a public X/Twitter account's posts into a citable agent skill — recurring ideas, real contradictions, and a source URL behind every claim. English · Português (Brasil)
Overview
x-to-skill Turn a public X/Twitter account's posts into a citable agent skill — recurring ideas, real contradictions, and a source URL behind every claim. English · Português (Brasil) For people, it is a searchable collection. For AI agents, it is a local, provenance-preserving corpus with a cheap sample and monthly chunks — without putting an entire timeline into context. The resulting skill is structured by themes, not dates. An idea becomes a framework only when it recurs in at least three posts; smaller themes become observations or are dropped. opencli is required. It reuses the existing authenticated Chrome session to read only the named account's public posts. Do not substitute a scraper or another API/client: the safety guards depend on opencli's output format. For any agent/LLM that can install skills from a GitHub repository, paste this into its chat: The agent must follow its own skill-installation convention, then read SKILL.md before use.
README
x-to-skill
Turn a public X/Twitter account’s posts into a citable agent skill — recurring ideas, real contradictions, and a source URL behind every claim.
English · Português (Brasil)
For people, it is a searchable collection. For AI agents, it is a local, provenance-preserving corpus with a cheap sample and monthly chunks — without putting an entire timeline into context.
Output
-corpus/
├── manifest.json # requested/actual window, counts, and file list
├── raw.jsonl # complete source records; quote-tweet context
├── corpus.md # compact chronological collection
├── sample.md # up to 3 high-signal posts per month
└── chunks/YYYY-MM.md # monthly slices for selective reading
The resulting skill is structured by themes, not dates. An idea becomes a framework only when it recurs in at least three posts; smaller themes become observations or are dropped.
Requirement
opencli is required. It reuses the existing authenticated Chrome session to
read only the named account’s public posts.
npm install -g @jackwener/opencli
opencli twitter whoami -f json
Do not substitute a scraper or another API/client: the safety guards depend on
opencli’s output format.
Install in an agent or LLM
For any agent/LLM that can install skills from a GitHub repository, paste this into its chat:
Install https://github.com/virgiliojr94/x-to-skill
The agent must follow its own skill-installation convention, then read
SKILL.md before use. A future npx installer may simplify this;
the GitHub URL is the install source today.
Use it
After installation, ask your agent to use x-to-skill for the public X profile URL you want to analyze. Each agent discovers and invokes installed skills through its own configuration and command convention; this project does not prescribe a slash command, prompt syntax, or filesystem path.
The agent follows SKILL.md: it collects the named public profile,
asks the intake questions, and records the actual returned date window in
manifest.json. The default requested window is the previous 365 days; X may
return less history than requested.
Intake
Before collecting, choose or accept defaults:
| Question | Options | Default |
|---|---|---|
| Profile | Technical · Philosophical · Idealistic · Mixed/custom | Mixed/custom |
| Window | 3 · 6 · 12 · 24 months · all available · dates | 12 months |
| Depth | Economic reference · Deep study | Economic reference |
Profile is a lens for theme hypotheses; it never restricts collected posts. A technical account can yield philosophical principles and the reverse is true.
Safety and scope
- Reads only public posts from the named account.
- Never reads the operator’s timeline, DMs, bookmarks, notifications, likes, or following list.
- Refuses a target that matches the logged-in account unless
--allow-selfis explicit. - Refuses an empty or invalid URL/handle before calling
opencli— a command with no handle could fall back to the logged-in account’s timeline. - Excludes retweets; quote tweets preserve contextual attribution outside
raw.jsonland never attribute third-party text to the analyzed author.
Cheap AI reading
- Read
manifest.jsonto confirm what is available. - Read
sample.mdto identify candidate themes. - Read only the
chunks/YYYY-MM.mdfiles that can prove recurrence, evolution, or contradiction for each candidate. - Read
raw.jsonlonly when structured source data or quote context is needed.
Do not load corpus.md by default. Reuse an existing corpus to generate or
refresh another skill without collecting again or paying another full-context
ingestion cost.
For AI agents
Read SKILL.md before execution. Non-negotiable rules:
- Verify
opencli twitter whoami -f jsonbefore collection. - Do not bypass a protected account, missing session, or self-collection guard.
- Every claim in the generated skill must cite a post URL.
- Fewer than 3 posts about an idea is not a framework.
- Preserve dated position changes; do not manufacture consistency.
- Put the actual collected window in the generated skill’s front matter.
Verification
python3 scripts/test_collect.py
python3 scripts/verify_workflow.py intake
python3 scripts/verify_workflow.py economy
python3 scripts/verify_workflow.py safety
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add virgiliojr94/x-to-skill