dsh-fasthtml-desktop@2.0.1
CAUTION· install onlyPublisher claims: "FastHTML + pywebview desktop application development skill as a distributable DeepSeek Harness (dsh) Cordis Bundle plugin. Registers the fasthtml-desktop Agent Skill (self-contained: SKILL.md plus references/, scripts/, templates/, examples/) as an embedd" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-10 and scored it 68/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: README links to an external installer; Privileged sudo command; Hidden zero-width characters detected. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
https://github.com/kuailexiaozixin/fasthtml-desktop/archive/refs/heads/main.zipFix: Pin versions and sources; vendor anything fetched at install time.# appimagetool: https://github.com/AppImage/appimagetool/releases (chmod +x, 加入 PATH)Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.return subprocess.run(cmd, capture_output=True, text=True, timeout=timeout)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run(cmd, capture_output=True, text=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run([sys.executable, "-c", f"import {mod}"], capture_output=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.if subprocess.run([str(self.python), "-c", f"import {mod}"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.probe = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.p = subprocess.run(cmd, capture_output=True, text=True, encoding="utf-8", errors="replace")Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.Popen([str(exe)], cwd=str(exe.parent),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run(cmd, cwd=HERE)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.Popen([args.exe])Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(cmd, check=True, **kw)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.proc = subprocess.Popen([str(exe_path)]) # 启动真实 EXEFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run(cmd, capture_output=True, text=True, env=env, timeout=900)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run(["taskkill", "/F", "/T", "/PID", str(proc.pid)],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.sudo apt install python3-venv libgirepository1.0-dev gir1.2-webkit2-4.1 libgtk-3-devFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.f"https://ghfast.top/https://github.com/{repo}/archive/refs/heads/{ref}.tar.gz"]Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls."url": "https://fastht.ml/docs/llms-ctx-full.txt",Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.{Fix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.…写代码**——骨架落地前,禁止开始写任何 .py 业务代码。 * **标准交付物(每个 f-d 项目必备)**:骨架 + `.gitignore` + `.env.example` + **`启动.bat`(一键双击启动器)** + **`launcher.py`(一键启动决策层,双击后端的唯一逻辑源)+ `launch…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.2. **深度清理**:按 `manifest.json` 的 `exclude` 排除无用产物(Playwright `output/`、`docs` 的 PDF/PPT/演示图、`screenshots/` 等),保留源码与可运行数据,省体积;Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.proc = subprocess.Popen([str(exe)], cwd=str(exe.parent), env=env,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run([py, "-m", "venv", str(vdir)], capture_output=True, text=True, env=env)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.…eepseek.com/anthropic + setx ANTHROPIC_AUTH_TOKEN=<DeepSeek Key>),\n 也可在示例目录 .env 配置(环境变量优先于 .env)。未配置时页面可打开,发起对话会报错(上游行为,非缺陷)。", ), # 08:code-assistan…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.if subprocess.run([str(self.python), "-c", f"import {m}"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.… APP_NAME="Bricksmith", STARTUP_NOTE="提示:聊天/RAG 问答需要配置大模型 API Key —— 在 .env 中填入 XAI_API_KEY 或 OPENAI_API_KEY(任选其一,OPENAI_BASE_URL 可指向兼容网关)。\n 未配置 Key 时桌…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.r = subprocess.run([str(art)], capture_output=True, text=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.p = subprocess.run(self.cmd, capture_output=True, text=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.r = subprocess.run(cmd, capture_output=True, text=True,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.# .env(已 gitignore,环境变量优先)。DeepSeek 端点会把 claude-haiku/sonnet 模型名自动映射到Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.sys.exit(subprocess.call(cmd, env=env))Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.p = subprocess.run([sys.executable, "-m", "uv", "--version"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.subprocess.run([sys.executable, "-m", "venv", str(HERE / ".venv")], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
No advisories in OSV for dsh-fasthtml-desktop@2.0.1 as of 4d ago. This is the package itself, not its dependencies.
What would make this Verified
12 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim kuailexiaozixin: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- README links to an external installer≈ +4 on the totalPin versions and sources; vendor anything fetched at install time.
- Privileged sudo command≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Hidden zero-width characters detected≈ +4 on the totalKeep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- File permission modification command≈ +2 on the totalRequest the narrowest permission that works; replace wildcards with the exact paths or hosts.