Agent Skills › ryantsai/KKTerm

ryantsai/KKTerm

GitHub

指导设计KKTerm仪表盘组件,涵盖图表选择、可视化工作流及操作语义。强调数据真实性、无障碍访问和紧凑布局,避免误导用户,适用于指标、趋势、日志等数据的直观展示与状态管理。

12 skills 255

Install All Skills

npx skills add ryantsai/KKTerm --all -g -y
More Options

List skills in collection

npx skills add ryantsai/KKTerm --list

Skills in Collection (12)

指导设计KKTerm仪表盘组件,涵盖图表选择、可视化工作流及操作语义。强调数据真实性、无障碍访问和紧凑布局,避免误导用户,适用于指标、趋势、日志等数据的直观展示与状态管理。
需要设计仪表盘图表或指标展示 处理服务健康、趋势或日志的可视化需求
assistant-skills/dashboard-data-visualization/SKILL.md
npx skills add ryantsai/KKTerm --skill dashboard-data-visualization -g -y
SKILL.md
Frontmatter
{
    "name": "dashboard-data-visualization",
    "description": "Design KKTerm Dashboard widgets that show metrics, charts, logs, timelines, gauges, health states, trends, and operational data without misleading users."
}

Dashboard Data Visualization

Use this skill when a Dashboard widget needs charts, metrics, service health, trends, logs, gauges, timelines, counters, or operational summaries. Pair it with dashboard-widget-builder for implementation and dashboard-widget-designer for broader visual polish.

Visualization Workflow

  1. Identify the user's question before choosing a chart: current value, trend, comparison, distribution, threshold, incident, or history.
  2. Choose the simplest representation that answers that question inside the widget's available size.
  3. Preserve source units, timestamps, and uncertainty. Do not invent precision.
  4. Prefer glanceable summaries with drill-down details only when the widget has room.
  5. Include empty, loading, error, stale, and partial-data states for live or external data.

Chart Selection

  • Single important value: metric tile with unit, trend delta, and freshness.
  • Status across resources: compact status list with severity chips and counts.
  • Short time trend: sparkline or mini area chart with clear last value.
  • Threshold monitoring: gauge, progress bar, or banded meter with explicit threshold labels.
  • Event sequence: timeline or log strip with severity and timestamp.
  • Comparison across a few items: horizontal bars, not tiny pies.
  • Dense logs: latest-events list with filtering or grouping, not a chart.

Avoid charts that look impressive but do not answer the user question.

Operational Semantics

  • Use consistent severity order: healthy, info, warning, critical, unknown.
  • Make unknown or stale data visually distinct from healthy data.
  • Show last updated time for live data.
  • Label units directly near numbers.
  • Do not hide failed fetches behind optimistic green status.
  • Do not show fake sample data unless the user explicitly asked for a mock.

Color and Encoding

  • Color must reinforce meaning, not carry it alone.
  • Use shape, label, icon, position, or text alongside color for health states.
  • Avoid rainbow palettes for operational dashboards.
  • Reserve red/orange for real warnings and failures.
  • Use neutral tones for background gridlines and non-critical context.

Scale and Integrity

  • Do not truncate axes in a way that exaggerates small differences unless the label makes the scale obvious.
  • For sparklines without axes, label the current value and the time window.
  • Keep moving averages, smoothing, or derived scores explicit.
  • If data is missing, show missing rather than drawing a continuous line through it.
  • Prefer exact numbers for small counts and rounded values for noisy telemetry.

KKTerm Widget Constraints

  • Keep charts compact and legible at Dashboard widget sizes.
  • Prefer SVG or canvas drawn from the widget viewport.
  • Recompute dimensions on resize.
  • Stop animation loops when a chart is static or when the widget no longer needs live rendering.
  • Use curated local libraries only when their documented globals are actually needed.
用于创建、修复和定制 KKTerm Dashboard 小部件。涵盖脚本编写、布局优化、数据获取及密钥管理,支持文件拖拽与本地读写,确保符合平台规范与视觉标准。
创建新的 Dashboard 小部件 修复或重新设计现有小部件 处理小部件的数据获取与错误状态 配置小部件的密钥与安全设置
assistant-skills/dashboard-widget-builder/SKILL.md
npx skills add ryantsai/KKTerm --skill dashboard-widget-builder -g -y
SKILL.md
Frontmatter
{
    "name": "dashboard-widget-builder",
    "description": "Create, repair, redesign, and troubleshoot KKTerm Dashboard AI Created Widgets, script widgets, widget layout, visual polish, data fetching, secrets, and custom Dashboard views."
}

Dashboard Widget Builder

Use this skill when the user asks the AI Assistant to create, modify, fix, or improve a Dashboard widget or view.

Workflow

  1. Treat the active Dashboard view as the target unless the user names a different view.
  2. Use Dashboard tools instead of describing manual edits when tool access is available.
  3. For new user-visible widgets, create a script widget directly with the dashboard widget creation workflow.
  4. For broken widgets, load current Dashboard state first, inspect the existing AI Created Widget source, then patch the smallest necessary body fields.
  5. Use real data when the user asks for live, current, or external information. Do not ship fake sample data unless the user explicitly asks for a mock.
  6. If a widget needs an API key or token, define a secret settings field and request secret entry. Never ask for plaintext secrets in chat.
  7. Keep widgets compact, readable, and object-like: meters, clocks, charts, maps, launchers, calculators, consoles, timelines, or focused tools.
  8. Use KKTerm widget classes and runtime helpers before inventing a custom UI framework.
  9. For canvases and visual libraries, size from the widget viewport and handle resize.

Visual Defaults

  • Prefer dense but calm desktop utility over marketing composition.
  • Avoid text-only widgets unless the user asked for text output.
  • Choose a non-default accent when it clarifies meaning.
  • Avoid inner scrollbars in the initial layout.
  • Use loading, error, empty, and refresh states when data can fail or change.

KKTerm Boundaries

  • All AI Created Widgets are script widgets.
  • Runtime CDN scripts are blocked; use curated local libraries when available.
  • Secret values are stored outside SQLite.
  • Generated widgets must fit inside their assigned Dashboard grid bounds.

File I/O

Use these KK bridge methods for any widget that reads or writes local files:

  • Drag-and-drop from Explorer: KK.onFileDrop(target, callback, options?) — attach to a drop-zone element. Callback receives (items, event) where each item is { kind, name, path, bytes?, children? }. Returns a cleanup function. Add a visual hoverClass via options.hoverClass (default 'is-drop-target').
  • File picker (read): KK.readLocalFile({ filters? }) — opens a native open dialog; resolves to { name, bytes, path } or null on cancel.
  • File picker (save): KK.saveFile(filename, bytes, filters?) — opens a native save dialog and writes bytes; resolves to the saved path or null on cancel.

Do not use raw dragover/drop DOM events for OS file drops — always go through KK.onFileDrop so the widget code follows the established bridge pattern.

优化KKTerm仪表盘AI生成小部件的视觉设计、布局层级及一致性。提供紧凑状态、清晰状态反馈(加载/空/错误等)及设计规范,确保在小尺寸网格内美观可用,需配合builder技能进行代码实现。
用户要求改善仪表盘小部件的外观或可用性 需要对小部件进行视觉重构或设计评审
assistant-skills/dashboard-widget-designer/SKILL.md
npx skills add ryantsai/KKTerm --skill dashboard-widget-designer -g -y
SKILL.md
Frontmatter
{
    "name": "dashboard-widget-designer",
    "description": "Improve KKTerm Dashboard AI Created Widget visual design, layout hierarchy, desktop utility polish, design-system consistency, compact states, and redesign critique."
}

Dashboard Widget Designer

Use this skill when the user asks for a better-looking, more usable, or more polished Dashboard AI Created Widget or Dashboard view. Pair it with dashboard-widget-builder when code must be created or patched.

This skill adapts open-design-style practice for KKTerm: choose a clear artifact role, apply a small design system consistently, critique the result before delivery, and keep the artifact runnable inside its sandbox.

Design Workflow

  1. Identify the widget's job: monitor, launcher, calculator, timeline, command helper, map, chart, status panel, game, or focused utility.
  2. Define a compact visual direction before writing or changing code: calm utility, dense operations, high-contrast alert, soft desktop object, or playful canvas.
  3. Preserve the user's requested content and behavior. Redesign presentation before inventing new features.
  4. Prefer one strong hierarchy: primary metric or action, secondary details, then tertiary metadata.
  5. Treat the Dashboard grid size as a hard constraint. Design for the current widget bounds first, then make it resilient to resize.
  6. Critique the widget before finalizing: scan for cramped spacing, unclear status color, unreadable text, competing focal points, missing states, and unnecessary chrome.

KKTerm Visual Language

  • Prefer desktop utility over marketing-page composition.
  • Use compact cards, meters, status chips, timelines, small controls, and object-like surfaces.
  • Keep the host widget frame visible; do not duplicate the app's outer card chrome inside the widget.
  • Use the widget accent only when it helps meaning or grouping.
  • Keep decorative effects subtle. Avoid heavy glassmorphism, oversized hero sections, excessive gradients, and animated clutter.
  • Use system-ish type sizing: clear labels, readable values, short captions, and no tiny critical text.
  • Keep icons functional. If an icon does not clarify status, action, or category, omit it.

Layout Rules

  • Start with a single-column layout for small widgets and a two-zone layout only when there is enough room.
  • Keep controls close to the content they affect.
  • Put refresh, configure, or secondary actions in a quiet top or bottom utility row.
  • Avoid inner scrollbars in the default state. If overflow is unavoidable, make the scroll area intentional and label what it contains.
  • Use fluid sizing from the widget viewport. Avoid fixed desktop-sized canvases or hardcoded full-page dimensions.
  • Do not rely on browser page background; the widget is rendered inside KKTerm's Dashboard surface.

State Design

Every data-driven widget should have clear states:

  • Loading: short, low-noise progress text or skeleton shape.
  • Empty: explain what is missing and what action would populate it.
  • Error: show the user-facing failure and a safe retry path.
  • Stale: show last updated time when data can become old.
  • Success: make the primary result visible without requiring reading every detail.

Redesign Heuristics

When improving an existing widget:

  1. Keep the current data model and bridge calls unless the user asked for behavior changes.
  2. Remove visual noise before adding new elements.
  3. Consolidate duplicate labels and repeated timestamps.
  4. Make the most important value readable at a glance.
  5. Normalize spacing, border radius, and color use across repeated rows.
  6. Preserve non-English text exactly.
  7. Patch only the smallest source area needed.

Handoff Checklist

Before creating or updating a widget, verify:

  • It fits the assigned Dashboard grid bounds.
  • It has a readable hierarchy at small sizes.
  • Loading, empty, error, and stale states are present when relevant.
  • Color is not the only status cue.
  • Animation is bounded and can stop when not needed.
  • The code stays script-widget compatible and does not import runtime CDN assets.
用于审查和创建KKTerm UI及Dashboard组件的无障碍设计技能。涵盖可读性、焦点管理、状态反馈、动画控制等,确保键盘操作友好、色彩非唯一信号、无焦点陷阱,并遵循KKTerm边界规范。
审查KKTerm UI组件 创建Dashboard小部件 检查桌面端可用性 评估对比度与焦点样式
assistant-skills/desktop-accessibility-ui/SKILL.md
npx skills add ryantsai/KKTerm --skill desktop-accessibility-ui -g -y
SKILL.md
Frontmatter
{
    "name": "desktop-accessibility-ui",
    "description": "Review KKTerm UI and Dashboard widgets for accessible desktop usability, contrast, focus, keyboard behavior, readable text, motion restraint, and non-color status cues."
}

Desktop Accessibility UI

Use this skill when creating or reviewing KKTerm UI, especially Dashboard widgets, dialogs, controls, status panels, and dense desktop utility surfaces. Pair it with widget skills when the request includes visual design or widget creation.

Accessibility Workflow

  1. Identify who must use the interface and what action or information matters most.
  2. Check readability before decoration: text size, contrast, spacing, and label clarity.
  3. Ensure keyboard and pointer users can both complete the task.
  4. Make status understandable without color alone.
  5. Keep motion helpful, optional-looking, and bounded.
  6. Review final output for focus traps, tiny controls, ambiguous icons, and missing state text.

Readability

  • Use short labels and plain operational language.
  • Keep critical values and errors large enough to read at Dashboard widget size.
  • Avoid placing important text over busy gradients or images.
  • Maintain clear contrast in light and dark themes.
  • Prefer stable layout over text that jumps during refresh.

Focus and Interaction

  • Interactive controls need visible focus styling.
  • Do not create hover-only actions for essential behavior.
  • Keep click targets large enough for desktop pointer use.
  • Put destructive actions away from routine actions and label them clearly.
  • Provide a visible retry or recovery action when data fetches fail.

Status and Feedback

  • Pair color with text, shape, icon, or position.
  • Distinguish healthy, warning, critical, unknown, loading, and stale states.
  • Do not report success while an async operation is still pending.
  • Keep transient feedback concise and close to the affected control or data.

Motion and Animation

  • Avoid continuous decorative animation in utility widgets.
  • Stop requestAnimationFrame loops when animation is complete or not needed.
  • Keep attention-grabbing motion for meaningful changes only.
  • Avoid flashing and rapid color cycling.

KKTerm Boundaries

  • Do not replace app-owned dialogs with browser alert, confirm, or prompt calls.
  • Do not add one-off toast systems; user-facing transient status belongs in KKTerm's established status patterns.
  • Do not duplicate Dashboard widget chrome inside script widgets.
  • Preserve translated or non-English user-visible text exactly when editing existing code.

Review Checklist

Before finalizing UI or widget code, verify:

  • Important information is readable without zooming.
  • Each interactive element has text, a title, or a clear accessible name.
  • Keyboard focus is visible where custom controls are used.
  • Color is not the only signal.
  • Loading, empty, error, and stale states are understandable.
  • Motion is bounded and not required for comprehension.
诊断 KKTerm 环境下的 DNS 和 DHCP 故障,涵盖主机名解析错误、缓存过期、DHCP 租约异常及 VPN 影响。指导用户通过 Windows/WSH/Linux 命令排查网络配置与解析路径,区分本地与远程环境差异,避免硬编码公共 DNS,确保企业内网策略合规。
主机名解析失败或返回错误 IP 特定网络下 DNS 解析异常 连接 VPN 后出现网络问题 怀疑本地 IP、网关或 DNS 设置有误 DHCP 租约或地址分配异常
assistant-skills/dns-dhcp-troubleshooter/SKILL.md
npx skills add ryantsai/KKTerm --skill dns-dhcp-troubleshooter -g -y
SKILL.md
Frontmatter
{
    "name": "dns-dhcp-troubleshooter",
    "description": "Diagnose DNS and DHCP problems in KKTerm, including failed hostname lookup, wrong records, split DNS, stale cache, DHCP lease issues, gateway\/DNS option problems, and VPN DNS behavior."
}

DNS and DHCP Troubleshooter

Use this skill when a hostname resolves incorrectly, only works on some networks, fails after VPN changes, or the local machine has suspicious IP/gateway/DNS settings.

Workflow

  1. Determine whether the symptom is DNS, DHCP, or both: name lookup failure, wrong address, search suffix issue, no lease, wrong gateway, or wrong DNS server.
  2. Identify the resolver path: Windows DNS client, WSL resolver, VPN-provided DNS, remote SSH host resolver, or application-specific proxy.
  3. Ask for the exact hostname and expected network context, but do not ask for secrets or private zone contents beyond what is needed.
  4. Compare authoritative intent vs client result when available: expected record, actual answer, resolver used, TTL/cache behavior, and search suffix expansion.
  5. For split DNS, check whether the user is on the right VPN or network and whether the query is being sent to the internal resolver.
  6. For DHCP, inspect lease address, subnet mask, gateway, DNS servers, and lease age before suggesting renew/release actions.
  7. Avoid telling users to hard-code public DNS servers when private zones, VPNs, domain controllers, or corporate policy may be required.
  8. If flushing cache is suggested, explain that it removes cached client answers but does not fix authoritative records or resolver policy.

Command Guidance

  • Windows DNS: Resolve-DnsName <host>, nslookup <host>, Get-DnsClientCache, Get-DnsClientServerAddress.
  • Windows DHCP/interface: Get-NetIPConfiguration, ipconfig /all, ipconfig /renew only after confirming a local lease problem.
  • WSL/POSIX: getent hosts <host>, resolvectl query <host> when available, cat /etc/resolv.conf.
  • Remote SSH vantage point: run resolver checks on the remote host only when the question is about that remote network.

KKTerm Boundaries

  • DNS behavior can differ between local Windows terminal Sessions, WSL, SSH Sessions, and WebView2 URL Connections.
  • A Connection hostname is durable data, but DNS answers are runtime environment state.
  • Do not rewrite Connection hosts from names to IPs unless the user explicitly wants that tradeoff.
诊断KKTerm中防火墙、NAT及端口连通性问题。支持识别超时或拒绝连接,检查客户端与目标端监听状态,排查Windows防火墙及安全组限制,验证NAT映射与服务绑定,指导安全测试而不推荐全局关闭防火墙。
SSH/RDP/VNC等端口连接失败或超时 服务本地正常但远程无法访问 需要诊断防火墙规则或NAT配置问题
assistant-skills/firewall-port-troubleshooter/SKILL.md
npx skills add ryantsai/KKTerm --skill firewall-port-troubleshooter -g -y
SKILL.md
Frontmatter
{
    "name": "firewall-port-troubleshooter",
    "description": "Diagnose firewall, NAT, listener, and port reachability problems in KKTerm, including blocked SSH, RDP, VNC, HTTP(S), SFTP, custom ports, Windows Firewall, and remote service binding issues."
}

Firewall and Port Troubleshooter

Use this skill when a host is reachable but a service port fails, times out, refuses connections, or works from one network but not another.

Workflow

  1. Identify the protocol and port, including defaults only when the user has not provided one: SSH/SFTP 22, RDP 3389, VNC 5900+, HTTP 80, HTTPS 443.
  2. Distinguish timeout, connection refused, reset, TLS/application error, and authentication failure. They point to different layers.
  3. Check both sides: client-to-target reachability and whether the target service is actually listening on the expected address and port.
  4. Consider path controls: Windows Firewall, host firewall, router/NAT, VPN ACL, cloud security group, corporate proxy, and service allowlists.
  5. Prefer targeted allow rules or service binding fixes. Do not recommend disabling a firewall globally except as a short, explicit, user-approved test in a controlled environment.
  6. For NAT/port forwarding, verify public/private address, forward target, hairpin NAT expectations, and whether the service is bound to localhost only.
  7. For "works locally but not remotely," inspect listen address, firewall profile, and network classification before changing application credentials.
  8. Avoid port scans beyond the named target and small named port set unless the user explicitly authorizes broader discovery.

Command Guidance

  • Client test on Windows: Test-NetConnection <host> -Port <port>.
  • Client test on POSIX/SSH: nc -vz <host> <port> or timeout 5 bash -c '</dev/tcp/<host>/<port>' when netcat is unavailable.
  • Windows listener check: Get-NetTCPConnection -LocalPort <port> -State Listen and Get-Process -Id <pid> after mapping the owning process.
  • POSIX listener check: ss -ltnp | grep ':<port>'.
  • Windows Firewall read-only check: Get-NetFirewallRule -Enabled True filtered by DisplayName, Direction, Profile, or Program.

KKTerm Boundaries

  • SFTP uses the SSH Connection transport; do not diagnose it as a separate open port.
  • RDP and VNC are different protocols even when both are remote desktop Sessions.
  • A failed port check can explain a Session startup failure, but it does not mutate the stored Connection.
用于诊断 KKTerm 中网络连通性故障,涵盖主机不可达、路由、网关、VPN、代理、丢包及延迟等问题。通过分层检查(DNS、接口、路由等)和多视角对比,提供只读命令建议以定位问题根源。
用户询问为何特定主机或服务无法连接 报告网络连接不稳定、高延迟或间歇性中断 需要排查 DNS 解析失败或路由配置错误
assistant-skills/network-connectivity-troubleshooter/SKILL.md
npx skills add ryantsai/KKTerm --skill network-connectivity-troubleshooter -g -y
SKILL.md
Frontmatter
{
    "name": "network-connectivity-troubleshooter",
    "description": "Diagnose general network connectivity failures in KKTerm, including unreachable hosts, routing, gateway, VPN, proxy, packet loss, latency, MTU, and local-vs-remote reachability checks."
}

Network Connectivity Troubleshooter

Use this skill when the user asks why a host, service, Connection, URL, or remote network path is unreachable or unreliable.

Workflow

  1. Identify the vantage point: local Windows shell, WSL, SSH Session, remote host, VPN, or another network segment.
  2. Clarify the target as narrowly as possible: host/IP, port/protocol if known, and whether the failure is total, intermittent, slow, or one app only.
  3. Separate layers before suggesting fixes: name resolution, local interface, default gateway, route, VPN/proxy, firewall, remote listener, and application protocol.
  4. Prefer read-only checks first: interface state, IP address, route table, DNS answer, ping when allowed, TCP connect test, and traceroute/path trace.
  5. Compare at least two vantage points when possible, such as local KKTerm terminal vs SSH Session from a nearby host.
  6. Treat ICMP results carefully. A failed ping does not prove TCP is blocked, and a successful ping does not prove the service is healthy.
  7. For intermittent loss or latency, ask for timing, affected destinations, wired vs wireless/VPN state, and recent network changes before recommending resets.
  8. For MTU symptoms, look for large transfers hanging, VPN-only failures, TLS stalls, or SSH/SFTP freezes after login.
  9. Avoid broad reset commands until targeted evidence points to local network stack corruption.

Command Guidance

  • Windows reachability: Test-NetConnection <host> -Port <port> for TCP, Resolve-DnsName <host> for DNS, and tracert <host> for path checks.
  • PowerShell interface/routing: Get-NetIPConfiguration, Get-NetRoute, Get-DnsClientServerAddress.
  • POSIX/SSH vantage point: ip addr, ip route, getent hosts <host>, nc -vz <host> <port>, tracepath <host> or traceroute <host> when installed.
  • Keep commands read-only unless the user explicitly asks to change adapter, VPN, proxy, or route configuration.

KKTerm Boundaries

  • Stored targets are Connections; live failures happen in Sessions.
  • Quick Connect failures may come from draft fields that are not saved yet.
  • URL Connections use embedded WebView2 and may be affected by OS proxy, TLS, or corporate inspection.
  • SSH, SFTP, RDP, VNC, URL, and local terminal checks can all provide different network vantage points.
指导KKTerm的RDP和VNC远程桌面会话管理,涵盖连接设置、键鼠交互、截图、显示调整及故障排查。强调优先使用只读状态,避免盲操作,并严格区分RDP与VNC的特性边界。
用户询问RDP或VNC连接问题 需要远程控制远程桌面的输入操作 遇到远程桌面显示或凭据异常
assistant-skills/remote-desktop-helper/SKILL.md
npx skills add ryantsai/KKTerm --skill remote-desktop-helper -g -y
SKILL.md
Frontmatter
{
    "name": "remote-desktop-helper",
    "description": "Guide KKTerm RDP and VNC remote desktop Sessions, connection setup, keyboard and mouse interaction, screenshots, focus problems, display sizing, credentials, and troubleshooting."
}

Remote Desktop Helper

Use this skill when the user asks about RDP, VNC, remote desktop input, screenshots, display sizing, connection failures, or credential prompts.

Workflow

  1. Determine whether the target is RDP or VNC and whether it is a stored Connection, Quick Connect draft, or live Session.
  2. For live interaction, inspect available Session context before sending keys, text, mouse clicks, or screenshots.
  3. Prefer screenshots and read-only state before mutating remote input.
  4. For keyboard input, use named keypresses for special keys and text send for plain text.
  5. For mouse input, reason in remote surface coordinates and avoid blind clicks when the visible state is unknown.
  6. For connection failures, separate network reachability, port/protocol, credentials, server policy, display size, and TLS/security settings.
  7. Do not ask users to paste passwords into chat.
  8. If an app overlay crosses an RDP surface, remember that RDP uses native HWND-backed rendering and may need special handling.

KKTerm Boundaries

  • RDP and VNC are live Sessions; saved settings live on the Connection.
  • RDP uses ActiveX on Windows and has special overlay parking behavior.
  • WebView2, terminal, SFTP, and VNC should not inherit RDP overlay workarounds.
  • Remote desktop tools that mutate input may require approval depending on Assistant tool permission mode.
辅助处理KKTerm SFTP会话中的文件浏览、上传下载规划、冲突解决、权限管理及路径导航。区分SSH与SFTP状态,谨慎处理远程路径与删除操作,确保传输安全并避免敏感信息泄露。
用户询问SFTP文件浏览或目录导航 需要规划或执行SFTP上传和下载任务 遇到文件覆盖冲突或权限错误 确认远程路径格式或解析路径错误
assistant-skills/sftp-transfer-helper/SKILL.md
npx skills add ryantsai/KKTerm --skill sftp-transfer-helper -g -y
SKILL.md
Frontmatter
{
    "name": "sftp-transfer-helper",
    "description": "Help with KKTerm SFTP file browsing, upload and download planning, overwrite conflicts, remote path mistakes, permissions, directory navigation, and SFTP Sessions opened from SSH Connections."
}

SFTP Transfer Helper

Use this skill when the user asks about SFTP browsing, uploads, downloads, file conflicts, permissions, paths, or transfer failures.

Workflow

  1. Confirm whether the user is working in an SFTP Session, an SSH terminal, or a stored SSH Connection.
  2. Treat remote paths carefully. Distinguish root, home-relative, absolute, and sibling paths.
  3. Prefer listing and inspecting before upload, overwrite, rename, chmod, or delete.
  4. For transfers, clarify direction: local to remote upload, remote to local download, or remote-side rename/move.
  5. For conflicts, explain the consequence of fail, overwrite, resume, rename, or skip choices.
  6. For permission errors, separate ownership, mode bits, parent directory permissions, and server policy.
  7. Avoid suggesting terminal-side file operations when the SFTP browser can perform the operation more safely.
  8. Do not ask the user to paste passwords or private keys into chat.

KKTerm Boundaries

  • SFTP opens from an SSH Connection.
  • SFTP browser state is a live Session, not durable Connection data.
  • File deletes are destructive and should be confirmed through app-owned approval flows when tools are available.
  • Windows local paths and POSIX remote paths need separate quoting and separator rules.
用于诊断KKTerm中SSH连接失败、tmux恢复异常、主机密钥警告、认证错误及SFTP启动问题。按安全规范逐步排查,区分会话状态,提供基于证据的修复建议。
SSH连接失败 tmux恢复问题 主机密钥警告 认证错误 ProxyJump配置问题 SFTP启动失败
assistant-skills/ssh-troubleshooter/SKILL.md
npx skills add ryantsai/KKTerm --skill ssh-troubleshooter -g -y
SKILL.md
Frontmatter
{
    "name": "ssh-troubleshooter",
    "description": "Diagnose SSH Connection failures, tmux resume problems, host key warnings, authentication errors, ProxyJump issues, and SFTP-over-SSH startup problems in KKTerm."
}

SSH Troubleshooter

Use this skill when a user asks why an SSH Connection, SSH Session, tmux resume, or SFTP launch is failing.

Workflow

  1. Identify whether the user is talking about a stored Connection, a Quick Connect draft, or a live Session.
  2. Ask for the smallest missing fact only when the current context does not include it: host, port, auth method, proxy/jump path, or the visible error.
  3. Prefer read-only checks first: Connection settings, host reachability, DNS, known host status, auth method, and tmux session name/history settings.
  4. Explain likely causes in order of evidence, not in order of convenience.
  5. Suggest commands only when they are reviewable and scoped to the target host or local config file.
  6. For host key changes, treat the warning as security-sensitive. Do not tell the user to delete trust records until they confirm the host identity out of band.
  7. For auth failures, separate password, key file, agent, and keyboard-interactive paths. Do not ask the user to paste secrets into chat.
  8. For tmux issues, distinguish attach/resume failure from SSH transport failure.

KKTerm Boundaries

  • Stored resources are Connections, not profiles.
  • Live terminal state is a Session.
  • SFTP opens from an SSH Connection.
  • Secrets belong in the OS keychain, not chat or SQLite.
  • Native SSH uses KKTerm's NativeSsh transport; local Windows shells use ConPTY through the Pty transport.
用于规划安全终端命令,支持本地、SSH、WSL及PowerShell等环境。优先只读检查,避免破坏性操作,提供干跑预览,并处理跨平台语法差异与KKTerm边界限制。
请求终端命令 Shell诊断 日志检查 服务检查 命令解释
assistant-skills/terminal-command-planner/SKILL.md
npx skills add ryantsai/KKTerm --skill terminal-command-planner -g -y
SKILL.md
Frontmatter
{
    "name": "terminal-command-planner",
    "description": "Plan safe terminal commands for local shells, SSH terminals, PowerShell, Command Prompt, WSL, diagnostics, log inspection, service checks, and approval-based command assistance in KKTerm."
}

Terminal Command Planner

Use this skill when the user asks for terminal commands, shell diagnostics, log checks, service inspection, or command explanations.

Workflow

  1. Determine whether the command targets a local terminal Session, an SSH Session, WSL, PowerShell, Command Prompt, or a generic shell.
  2. Prefer read-only inspection before mutation.
  3. Explain the intent and expected output before suggesting risky or unfamiliar commands.
  4. Keep commands scoped to the named host, path, service, process, or file.
  5. Avoid broad deletes, destructive disk operations, fork bombs, credential dumping, or irreversible system-wide changes.
  6. For mutating commands, offer a safer dry run, preview, backup, or targeted form when practical.
  7. Do not claim a command ran unless a tool result or session context proves it.
  8. If the current shell is unknown, make the shell assumption explicit.
  9. When translating between PowerShell, Command Prompt, WSL, and POSIX shells, call out syntax differences that matter.

KKTerm Boundaries

  • Local Windows shells run through ConPTY; browser previews do not validate local terminal focus or input behavior.
  • SSH uses NativeSsh and can differ from local shell behavior.
  • Secrets must not be pasted into normal chat text.
  • User-facing status belongs in the workspace status bar when changing app state.
用于诊断KKTerm中HTTPS、API或代理连接失败引发的TLS证书问题,涵盖过期、不信任根、主机名不匹配及握手错误。通过区分SSH与TLS信任体系,提供安全的排查步骤和命令行检测工具,避免禁用验证,确保连接安全。
HTTPS URL Connection errors expired certificates untrusted roots hostname mismatch SNI issues chain issues corporate inspection problems TLS handshake failures
assistant-skills/tls-certificate-troubleshooter/SKILL.md
npx skills add ryantsai/KKTerm --skill tls-certificate-troubleshooter -g -y
SKILL.md
Frontmatter
{
    "name": "tls-certificate-troubleshooter",
    "description": "Diagnose TLS and certificate problems in KKTerm, including HTTPS URL Connection errors, expired certificates, untrusted roots, hostname mismatch, SNI, chain issues, corporate inspection, and TLS handshake failures."
}

TLS Certificate Troubleshooter

Use this skill when HTTPS, API, URL Connection, proxy, or secure service access fails with certificate, trust, hostname, or TLS handshake errors.

Workflow

  1. Identify the failing client and target: WebView2 URL Connection, terminal command, SSH remote host, dashboard widget network request, or another tool.
  2. Capture the exact error class: expired certificate, hostname mismatch, unknown issuer, incomplete chain, revoked certificate, protocol version, cipher, or handshake timeout.
  3. Separate TLS certificate trust from SSH host key trust. They are different trust systems and should not share remediation steps.
  4. Check the hostname used by the client. Certificate validation follows the requested DNS name, not a convenient alias or raw IP address.
  5. For corporate inspection or proxy environments, ask whether the issuing CA is expected and managed before suggesting trust changes.
  6. Treat clock skew as a first-class cause when certificates appear not-yet-valid or unexpectedly expired.
  7. Avoid telling users to disable certificate validation. If a temporary bypass is discussed, label it unsafe and keep it out of saved app settings.
  8. For internal services, prefer fixing the certificate chain, SANs, and server configuration over pinning brittle workarounds.

Command Guidance

  • Windows certificate/date context: Get-Date, browser/WebView2 error text, and certificate viewer details when available.
  • PowerShell HTTPS check: Invoke-WebRequest https://<host> -Method Head for a simple client-side error, without adding validation bypasses.
  • OpenSSL check when installed: openssl s_client -connect <host>:443 -servername <host> -showcerts.
  • POSIX remote check: curl -Iv https://<host> to view TLS and certificate errors without downloading a body.
  • For non-443 services, use the service port and correct SNI/server name when the tool supports it.

KKTerm Boundaries

  • URL Connections use WebView2, which follows Windows trust and proxy behavior.
  • Dashboard AI Created Widgets may make network requests only when their permissions allow it and Settings permits widget network tools.
  • Secrets and private keys must not be pasted into chat.
  • SSH host key warnings belong to SSH troubleshooting, not TLS certificate repair.

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-14 14:21
浙ICP备14020137号-1 $Map of visitor$