Security
Static scan: injections,
secrets, hidden payloads.
Akula scans every SKILL.md for attacks, then measures whether it actually improves your agent, model by model.
Security
Static scan: injections,
secrets, hidden payloads.
Effect
Paired runs: measured
delta for each model.
In SWE-Skills-Bench, 39 of 49 skills gave no gain in pass rate.
Snyk reviewed 3,984 public skills and confirmed 76 with malicious payloads.
The same tasks, with the skill and without it. Only deterministic checks decide who passed.
Change a single file and the old numbers stop applying.
Akula pulls in SKILL.md with its scripts, hooks and configs, and hashes every file. Nothing is executed at this stage.
Check a skillThe scan looks for known attack patterns. Paired runs then measure whether the skill helps, or quietly hurts, each model.
See the methodEach report lists its reasons and is bound to one bundle hash. Unmeasured stays visibly unmeasured.
Browse the catalogSend a skill from wherever it lives. Skill code is never run during a scan.
GitHub repository
Skill folder
SKILL.md text
Skill files
REST API
Akula CLI
Your coding agent
Set the address of your Akula instance.
export AKULA_URL=http://localhost:3000
It tells your coding agent to check skills before installing them.
Before installing any third-party skill in this project, check it with Akula.
- Akula URL: read it from AKULA_URL.
1. POST {AKULA_URL}/api/submissions with {"url": "<GitHub link to the skill>"}. Keep the returned jobId.
2. Poll GET {AKULA_URL}/api/jobs/{jobId} until status is done. Read result.slug.
3. GET {AKULA_URL}/api/skills/{slug} and read report.recommendation and report.reasons.
4. Show me the recommendation, its reasons and any critical or high findings.
Do not install the skill until I have confirmed. Treat "unmeasured" as unknown, never as safe.It submits the skill and reports the verdict before anything is installed.
Every part of a report says what it measured and what it cannot tell you.
report.securityInjections, hidden text, remote code, secrets, persistence
Runs on every submission
report.effectWith and without the skill, 95% interval per model
Measured on selected skills, not on every submission
report.compatibilityPermissions, activation and stability on each model
Permissions always, the rest after measuring
report.auditClarity and contradictions, as an explanation only
Never changes the verdict
Developers
See what a skill touches and what the scanner found before it reaches your agent.
report.security
{
"status": "warn",
"counts": { "critical": 0, "high": 0, "medium": 1 },
"coverage": { "scanned": 43, "total": 98 }
}Shape of the data, with example values.
How these are producedA static report takes seconds, stays on an unlisted link and runs none of your code.