seedance@1.2.1
CAUTION· static onlyPublisher claims: "Generate videos with the doubao-seedance-2.0 model (text-to-video, image-to-video, first/last-frame-to-video). Use when the user asks to "generate a video", mentions "seedance", or wants AI video generation from text and/or images. Wraps the asynchronous Volcengine Ark / OpenAI-style video API behind one synchronous call." Observed in sandbox: static analysis only — behavior not yet observed.
Coverage
Static only; nothing was run yet.The label rests on the code, the instruction files and the publisher. The honeypot run replaces this verdict when it completes.
Is [email protected] safe to install?
KillerSkills analysed it statically (a sandbox run is pending) on 2026-11-10 and scored it 59/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: Fake instruction boundary tag; Access to sensitive file paths; Access to sensitive file paths. Summary: static analysis only — behavior not yet observed.
Behavior trace
Queued for honeypot run · static analysis onlyThis version has not been detonated yet. The score above counts behavior as unknown (50/100), so it cannot read Verified until the honeypot run completes and replaces this verdict.
Static findings
-t "<prompt>" [-i ./local.png | --image-url <url>] [-f ./first.png -l ./last.png] \Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.Tests do **not** auto-load `.env` (so offline runs never accidentally hit the network). Live tests need `ARK_API_KEY` either in the real env or loaded via the one-liner above.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.- **`load_dotenv`** — tiny stdlib `.env` parser (no python-dotenv). Real env takes precedence over the file. `--env-file` selects the path.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.<skill_dir>/scripts/seedance --api-type openai-video --env-file <skill_dir>/.env -t "<prompt>" ...Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.… sys.path.insert(0,'scripts'); import seedance, unittest; seedance.load_dotenv('.env'); unittest.TextTestRunner(verbosity=2).run(unittest.TestLoader().loadTestsFrom…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.user for it (offer to store it in `<skill_dir>/.env`).Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.<skill_dir>/scripts/seedance --api-type openai --env-file <skill_dir>/.env -t "<prompt>" ...Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.--env-file path to .env file (default .env)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Resolve `<skill_dir>` (this directory). Load secrets from `<skill_dir>/.env` ifFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.- **`ARK_API_KEY`** is required. It may be a real env var or stored in a `.env`Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.… sys.path.insert(0,'scripts'); import seedance, unittest; seedance.load_dotenv('.env'); unittest.TextTestRunner(verbosity=2).run(unittest.TestLoader().loadTestsFrom…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.offer to write it to `<skill_dir>/.env` (never print the value back).Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.2. **API key**: if `ARK_API_KEY` is not in the environment or a `.env`, ask theFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.## Env vars (`.env`)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.must point at the openai-video base (set in .env).Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."""Tests for the dependency-free .env loader."""Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…is a venv wrapper that provisions an isolated `.venv/` (installing `requirements.txt`), auto-picks `python3.11`/`python3.12` for proxy-TLS safety, and forwards all args to `scripts/seedance.py`. The only third-party dep is the Alibaba OSS …Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.DEFAULT_ENV_FILE = ".env"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."ARK_API_KEY is required. Set it in the environment or pass api_key=..."Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.path = os.path.join(tmpdir, ".env")Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."""Load KEY=VALUE pairs from a .env file into os.environ.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.self.assertFalse(seedance.load_dotenv("/no/such/.env"))Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Environment (real env wins over the .env file)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.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
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
21 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim jiangsier-xyz: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- 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.
- Credential pass-through configuration≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.