CtrlK
BlogDocsLog inGet started
Tessl Logo

ttyd-remote-terminal-wsl2

Setup secure web-based terminal access to WSL2 from mobile/tablet via ttyd + ngrok/Cloudflare/Tailscale. One-command install, start, stop, status. Use when you need remote terminal access, web terminal, browser-based shell, or mobile access to WSL2 environment.

58

Quality

73%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./.claude/skills/ttyd-remote-terminal-wsl2/SKILL.md

The canonical home for this skill is ttyd-remote-terminal-wsl2 in fernandezbaptiste/Skrillz

SKILL.md
Quality
Evals
Security

Quality

Content

56%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The skill is highly actionable with verified, copy-paste-ready commands and a well-sequenced workflow with validation checkpoints, but it is severely over-inflated: duplicated narratives, padded explanatory sections, and dangling file references undermine token efficiency and structure. Cutting the body to a lean overview that defers to the existing reference guides would address most weaknesses.

Suggestions

Cut the body to a lean Quick Start plus script reference (~150-200 lines): remove the duplicated Quick Start/Workflow overlap, the simulated credential output blocks, 'What You Can Do', 'Example Commands to Try', the iOS/Android bookmark instructions, and the pre-checked Success Checklist.

Move the Security Essentials threat model, Performance Expectations, and the ttyd vs code-server comparison into the existing reference guides (security-guide.md, tunneling-options.md) and link to them instead of inlining.

Fix dangling references: either add the templates/ directory with ttyd.service and .env.template, or remove the 'File: templates/...' and 'cp templates/...' instructions; do the same for the non-existent ~/.ttyd/PERSISTENT-SESSION-GUIDE.md and CONNECTION-KEEPALIVE-GUIDE.md pointers, and relocate the orphaned 'Connection Timeout' and 'Persistent Session' sections (which document critical readonly-mode and tmux behavior) into the main workflow or troubleshooting section.

DimensionReasoningScore

Conciseness

The ~950-line body is noticeably to heavily padded: the Quick Start duplicates the entire Workflow section, simulated credential output blocks appear three times, and sections like 'What You Can Do' ('Run any command you normally run in terminal', 'Navigate directories'), 'Example Commands to Try' (uname -a, ls -la, htop), iOS/Android bookmark instructions, and a pre-checked Success Checklist explain things Claude already knows. Not 1 because genuine instructional content (exact script invocations, tunnel setup, verified fixes) is interwoven throughout.

2 / 5

Actionability

Commands are copy-paste ready and verified against the bundle (TTYD_PORT, --writable, --ngrok/--cloudflare/--tailscale, --custom-password, tmux new -As ttyd-mobile, --ping-interval 3 all exist in the scripts). Not 5 because referenced files that commands depend on do not exist: 'cp templates/ttyd.service ~/.config/systemd/user/' would fail (no templates/ directory), and the ~/.ttyd/PERSISTENT-SESSION-GUIDE.md and CONNECTION-KEEPALIVE-GUIDE.md 'complete guides' are not created by any script.

4 / 5

Workflow Clarity

Steps 1-6 are clearly sequenced with verification checkpoints (1.4 verify installation, 5.2 verify stopped, ttyd-status.sh checks) and per-error troubleshooting fixes. Not 5 because two critical behaviors (the readonly-mode keyboard fix and the persistent tmux session default) are appended as orphaned headings after the document's closing sign-off line, disconnected from the main flow, and the Quick Start/Workflow duplication creates two parallel narratives for the same process.

4 / 5

Progressive Disclosure

The five reference guides exist and are well-signaled one level deep, but the body inlines large amounts of content that belongs in those references (threat model, performance statistics, tunnel comparison duplicating tunneling-options.md), forming a ~950-line monolithic overview. Referenced paths that do not exist in the bundle (templates/ttyd.service, templates/.env.template, ~/.ttyd/*-GUIDE.md) further break the navigation structure.

3 / 5

Total

13

/

20

Passed

Description

78%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description that explicitly covers what and when with concrete trigger phrases and named tools. The main deductions are the second-person 'you need' phrasing (specificity penalty per guidelines) and minor overlap risk with a sibling remote-access skill.

Suggestions

Rewrite in third-person voice (e.g., 'Use when the user needs remote terminal access...') to avoid the specificity penalty for second-person phrasing.

Add a few natural synonyms such as 'access WSL2 remotely', 'shell from phone', or 'SSH-like access' to broaden trigger coverage.

DimensionReasoningScore

Specificity

Base content lists several concrete actions ('Setup secure web-based terminal access to WSL2', 'One-command install, start, stop, status'), which fits anchor 4, but 'Use when you need remote terminal access' is second-person voice, which the guidelines penalize by reducing specificity by 1. Not score 2 because the domain and actions are named concretely, not generic.

3 / 5

Completeness

Both are explicit: what ('Setup secure web-based terminal access to WSL2 from mobile/tablet via ttyd + ngrok/Cloudflare/Tailscale. One-command install, start, stop, status.') and when ('Use when you need remote terminal access, web terminal, browser-based shell, or mobile access to WSL2 environment.') with concrete trigger phrases, matching the anchor-5 example pattern.

5 / 5

Trigger Term Quality

'remote terminal access, web terminal, browser-based shell, or mobile access to WSL2 environment' are natural phrases a user would say, giving good keyword coverage. Not 5 because common variations like 'SSH-like access', 'shell from phone', or 'access WSL2 remotely' are missing.

4 / 5

Distinctiveness Conflict Risk

The ttyd/WSL2/tunnel-service niche is distinct with specific named tools, but 'mobile access to WSL2 environment' overlaps with the closely related code-server remote-IDE skill territory. Not 5 because of this minor overlap risk with a sibling skill; not 3 because the core triggers (web terminal, ttyd, browser-based shell) are unambiguous.

4 / 5

Total

16

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (1010 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

Repository
fernandezbaptiste/Skrillz
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.