Converting Docs to Skills
Convert a docs site's llms.txt into a skill and install it immediately:
Bashnpx txtskills@latest convert https://docs.example.com/llms.txt --install
Progress:
- Identify the docs source (direct llms.txt URL or base domain)
- Run
convertwith appropriate flags - Verify conversion succeeded (check output or
--jsonresult) - Install the skill (via
--installoradd) - Confirm skill is available; use
list/searchto double-check
Step 1: Convert
Use a direct llms.txt URL when available:
Bashnpx txtskills@latest convert https://docs.example.com/llms.txt
Or pass just the base domain — txtskills will locate llms.txt itself:
Bashnpx txtskills@latest convert docs.example.com
Set a custom skill name if the auto-derived name is unclear:
Bashnpx txtskills@latest convert docs.example.com --name example-docs
Step 2: Install
Auto-install right after conversion:
Bashnpx txtskills@latest convert docs.example.com --install
Or skip the install prompt and do it manually later:
Bashnpx txtskills@latest convert docs.example.com --skip-install npx txtskills@latest add example-docs
Step 3: Discover existing skills (optional, before converting)
Check if a skill already exists so you don't duplicate work:
Bashnpx txtskills@latest search example npx txtskills@latest list
Step 4: Manage
Remove a skill no longer needed:
Bashnpx txtskills@latest remove example-docs
Example 1: Input: "Turn the Stripe docs into a Claude skill and install it" Output:
Bashnpx txtskills@latest convert https://docs.stripe.com/llms.txt --install
Example 2: Input: "Check if a skill for docs.foo.com already exists before converting" Output:
Bashnpx txtskills@latest search foo # if not found: npx txtskills@latest convert docs.foo.com --name foo-docs --install
Example 3: Input: "The foo-docs skill changed upstream, regenerate it" Output:
Bashnpx txtskills@latest convert docs.foo.com --name foo-docs --force --install
Example 4: Input: "Get machine-readable output from a conversion for a script" Output:
Bashnpx txtskills@latest convert docs.example.com --json
- Prefer passing the direct
llms.txtURL when known — it's faster and unambiguous. - Use
--nameexplicitly when the base domain could produce an awkward/ambiguous auto-generated name. - Run
search/listbefore converting to avoid creating duplicate skills. - Use
--forceonly when the source docs have changed; otherwise the existing skill is reused. - Use
--jsonwhen the CLI output needs to be parsed programmatically (e.g., in CI or another script). - Use
--skip-installwhen converting many skills in bulk, then batch-install afterward withadd.
- Don't assume a base domain always resolves — if conversion fails, try the direct
.../llms.txtURL instead. - Don't forget
--installor a follow-upadd— a converted skill isn't usable until installed. - Don't re-run
convertwithout--forceexpecting changes to take effect if the skill already exists unchanged. - Don't hardcode the default API endpoint in scripts if a custom one is required — use
--api https://txtskills.hari.works(or the relevant endpoint) explicitly.