Container Security Hardening
sickn33/agentic-awesome-skills
Harden Docker/container images and runtime deployments with secure base images, non-root users, CVE scanning, SBOM/signing, seccomp/AppArmor, and Kubernetes pod security controls.
Check if recent cybersecurity alerts from 10 international CERTs affect your current project.
$ npx skills add karimhabush/cyberowl --skill cyberowlai -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install karimhabush/cyberowl cyberowlai --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/karimhabush/cyberowl.git skills-src && mkdir -p .claude/skills && cp -r skills-src/docs/.vuepress/public/skill .claude/skills/cyberowlai && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cyberowlai" agent skill from https://github.com/karimhabush/cyberowl/tree/main/docs/.vuepress/public/skill into .claude/skills/cyberowlai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cyberowlai", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/karimhabush/cyberowl/tree/main/docs/.vuepress/public/skillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add karimhabush/cyberowl --skill cyberowlai -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install karimhabush/cyberowl cyberowlai --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/karimhabush/cyberowl.git skills-src && mkdir -p .agents/skills && cp -r skills-src/docs/.vuepress/public/skill .agents/skills/cyberowlai && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cyberowlai" agent skill from https://github.com/karimhabush/cyberowl/tree/main/docs/.vuepress/public/skill into .agents/skills/cyberowlai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cyberowlai", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add karimhabush/cyberowl --skill cyberowlai -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install karimhabush/cyberowl cyberowlai --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/karimhabush/cyberowl.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/docs/.vuepress/public/skill .cursor/skills/cyberowlai && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cyberowlai" agent skill from https://github.com/karimhabush/cyberowl/tree/main/docs/.vuepress/public/skill into .cursor/skills/cyberowlai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cyberowlai", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/karimhabush/cyberowl.git --path docs/.vuepress/public/skill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add karimhabush/cyberowl --skill cyberowlai -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install karimhabush/cyberowl cyberowlai --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/karimhabush/cyberowl.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/docs/.vuepress/public/skill .gemini/skills/cyberowlai && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cyberowlai" agent skill from https://github.com/karimhabush/cyberowl/tree/main/docs/.vuepress/public/skill into .gemini/skills/cyberowlai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cyberowlai", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install karimhabush/cyberowl cyberowlaiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add karimhabush/cyberowl --skill cyberowlai -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/karimhabush/cyberowl.git skills-src && mkdir -p .github/skills && cp -r skills-src/docs/.vuepress/public/skill .github/skills/cyberowlai && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cyberowlai" agent skill from https://github.com/karimhabush/cyberowl/tree/main/docs/.vuepress/public/skill into .github/skills/cyberowlai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cyberowlai", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add karimhabush/cyberowl --skill cyberowlai -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install karimhabush/cyberowl cyberowlai --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/karimhabush/cyberowl.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/docs/.vuepress/public/skill .opencode/skills/cyberowlai && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cyberowlai" agent skill from https://github.com/karimhabush/cyberowl/tree/main/docs/.vuepress/public/skill into .opencode/skills/cyberowlai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cyberowlai", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cyberowlaiCheck if recent cybersecurity alerts from 10 international CERTs affect your current project.
Cyberowlai is an agent skill from karimhabush/cyberowl. Check if recent cybersecurity alerts from 10 international CERTs affect your current project. Use when the user asks about security vulnerabilities, CVEs, "is my project affected", "any new security alerts", "check for vulnerabilities", "cyberowlai", or "/cyberowlai". Also trigger when the user is working on dependency updates, Dockerfile changes, security audits, or any security-related task — even if they don't explicitly mention CyberOwl AI. Trigger on questions like "should I update my dependencies", "are…
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Security, covering Vulnerability scanning, Containers and Dependency management. It works with Docker, Kubernetes and Ruby. The repository describes itself as: Aggregates security advisories from 10 international CERTs daily and provides an AI skill that cross-references alerts against your project's tech stack. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 805e820. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
apt-getapkyumFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
cyberowlai.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cyberowlai loads about 2.5k tokens when it runs. Until then it costs about 182 tokens; SKILL.md has 963 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from karimhabush/cyberowl at commit 805e820, republished under its MIT licence (© karimhabush). 963 words, ~2,529 tokens.
.claude/skills/cyberowlai/SKILL.md (or your agent's skills folder).Cross-reference recent cybersecurity alerts from 10 international CERTs against the user's project to surface vulnerabilities that actually matter to them.
https://cyberowlai.com/alerts.jsonRun steps 1 and 2 in parallel when possible — don't make the user wait.
Build a comprehensive inventory. Go beyond top-level deps — look at transitive dependencies, container base images, CI tool versions, and code import patterns.
Use Glob to locate files. Search for all of the following (skip categories that return nothing):
| Category | Files to find |
|---|---|
| Node.js | package.json, package-lock.json, yarn.lock, pnpm-lock.yaml |
| Python | requirements.txt, Pipfile, Pipfile.lock, pyproject.toml, poetry.lock, setup.py, setup.cfg |
| Go | go.mod, go.sum |
| Ruby | Gemfile, Gemfile.lock |
| Java/Kotlin | pom.xml, build.gradle, build.gradle.kts |
| Rust | Cargo.toml, Cargo.lock |
| PHP | composer.json, composer.lock |
| C#/.NET | *.csproj, packages.config, Directory.Packages.props |
| Swift | Package.swift |
| Dart/Flutter | pubspec.yaml |
| Elixir | mix.exs |
| Perl | cpanfile |
| Containers | Dockerfile, Containerfile, docker-compose.yml, docker-compose.yaml |
| Kubernetes | *.yaml in k8s/, kubernetes/, deploy/, manifests/ |
| Helm | Chart.yaml, values.yaml |
| Terraform | *.tf |
| Ansible | *.yml in ansible/, playbooks/ |
| Vagrant | Vagrantfile |
| CI/CD | .github/workflows/*.yml, .gitlab-ci.yml, Jenkinsfile, .circleci/config.yml, azure-pipelines.yml |
| Build | Makefile, Taskfile.yml, Justfile |
| Web servers | nginx.conf, nginx/*.conf, apache2.conf, .htaccess, httpd.conf, Caddyfile, traefik.yml, traefik.toml |
| Databases | prisma/schema.prisma, config/database.yml, alembic.ini |
| Env files | .env.example, .env.sample |
| Version files | .node-version, .nvmrc, .python-version, .ruby-version, .go-version, .java-version, .tool-versions, runtime.txt |
| Security | .snyk, snyk.json, .trivyignore, security.txt, renovate.json, dependabot.yml |
From each file, extract:
FROM lines) — note the OS, runtime, and versionapt-get install, apk add, yum installactions/checkout@v4)provider "aws", resource prefixes)REDIS_URL, POSTGRES_HOST, MONGO_URI, KAFKA_BROKER)Use Grep to detect frameworks and libraries that might not appear in dependency files. Search source directories for these import patterns:
import express, from django, import spring, using Microsoft.AspNetCore, import React, import Vue, from angularpassport, jsonwebtoken, jwt, oauth, auth0, firebase-auth, keycloakbcrypt, argon2, crypto, openssl, sodiumaxios, fetch, requests, httpx, okhttp, urllib3rabbitmq, kafka, celery, bull, sidekiq, natsaws-sdk, @google-cloud, azure, boto3Organize everything you found into a structured inventory:
This inventory drives the matching in Step 3 and is shown to the user in the final output so they can verify completeness.
Use WebFetch to retrieve https://cyberowlai.com/alerts.json.
The JSON structure:
{
"generated_at": "2026-04-23T10:00:54Z",
"sources": {
"<SOURCE_NAME>": {
"items": [
{
"title": "...",
"link": "https://...",
"description": "...",
"date": "Apr 20, 2026"
}
]
}
}
}Sources: US-CERT, CERT-FR, MA-CERT, IBM-X-FORCE-EXCHANGE, ZERODAYINITIATIVE, OBS-Vigilance, VulDB, HK-CERT, CA-CCS, EU-CERT (~90 alerts total).
If the fetch fails: Tell the user the feed is unavailable, suggest they check https://cyberowlai.com/activity/ directly, and still show the detected stack inventory so the visit isn't wasted.
Cross-reference every alert's title and description against the full stack inventory. Classify matches into tiers:
The alert explicitly names a package, library, or tool the project uses.
Examples:
The alert targets a broader platform that encompasses something in the stack.
Examples:
The alert is about a class of technology the project uses, even without a direct name match.
Examples:
Some alerts are important enough to surface no matter what the project uses. Flag any alert where:
Use this structure for the report. Keep it concise — only show alerts that matched or are critical. Don't dump the full 90-alert feed.
## CyberOwl Security Check
Last updated: [generated_at timestamp] | [N] sources checked | [total] alerts scanned
### Alerts matching your project ([count] found)
**HIGH — Direct dependency match:**
| Alert | Source | Matched Component | Date |
|---|---|---|---|
| [Title](link) | SOURCE | component-name (where detected) | date |
**MEDIUM — Platform/framework match:**
| Alert | Source | Related To | Date |
|---|---|---|---|
| [Title](link) | SOURCE | platform (context) | date |
**LOW — Category match:**
| Alert | Source | Related To | Date |
|---|---|---|---|
| [Title](link) | SOURCE | category (context) | date |
### Critical alerts (always worth knowing)
| Alert | Source | Why Flagged | Date |
|---|---|---|---|
| [Title](link) | SOURCE | Actively exploited / Zero-day / etc. | date |
### Your detected stack
- **Languages:** ...
- **Frameworks:** ...
- **Databases:** ...
- **Infrastructure:** ...
- **CI/CD:** ...When no direct matches are found: Skip the matching tables and show only the "Critical alerts" section with a note: "No alerts directly matched your detected stack, but these critical advisories are worth reviewing." Always include the detected stack section so the user can verify nothing was missed.
Omit empty tiers. If there are no HIGH matches, don't show that table. Same for MEDIUM and LOW.
© karimhabush, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in docs/.vuepress/public/skill of karimhabush/cyberowl.
Open the folder on GitHubat commit 805e820
Cyberowlai next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cyberowlai this skillkarimhabush/cyberowl | 263 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Container Security Hardeningsickn33/agentic-awesome-skills | 47k | 1 repos | ~1k | Automated safety check: Notes | MIT | |
| Security Analyzeraiskillstore/marketplace | 433 | — | ~1.2k | Automated safety check: Notes | None | |
| Container Securityhardw00t/ai-security-arsenal | 105 | — | ~2.8k | Automated safety check: Pass | None | |
| Sca TrivyAgentSecOps/SecOpsAgentKit | 220 | 2 repos | ~3.7k | Automated safety check: Pass | Custom licence | |
| Alibabacloud Ecs Sec Userspacealiyun/alibabacloud-ecs-troubleshoot-skills | 148 | — | ~2.6k | Automated safety check: Notes | Apache-2.0 |
sickn33/agentic-awesome-skills
Harden Docker/container images and runtime deployments with secure base images, non-root users, CVE scanning, SBOM/signing, seccomp/AppArmor, and Kubernetes pod security controls.
aiskillstore/marketplace
Comprehensive security vulnerability analysis for codebases and infrastructure.
hardw00t/ai-security-arsenal
Container and Kubernetes security assessment — image vulnerability scanning, SBOM diff analysis, K8s cluster auditing, RBAC privilege mapping, NetworkPolicy review, container escape testing, and…
AgentSecOps/SecOpsAgentKit
Software Composition Analysis (SCA) and container vulnerability scanning using Aqua Trivy for identifying CVE vulnerabilities in dependencies, container images, IaC misconfigurations, and license…
aliyun/alibabacloud-ecs-troubleshoot-skills
Linux 用户态安全入侵检测与取证工具,专为 AI Agent 设计。自动判断服务器是否被入侵, 提供完整证据链和可执行修复建议。51 个安全分析器覆盖进程/网络/认证/持久化/Rootkit/ 恶意软件/内存取证/容器逃逸等 12 类检测维度,10 个数据采集器全面采集系统状态, 映射 103+ MITRE ATT&CK 技术,支持 standalone/docker/k8s 三种部署模式。
warpdotdev/warp
Gathers security findings from Dependabot, GCP container scanning, Docker Scout and Linear security issues, then triages and remediates them across Warp's repos and images.
Works with
Categories
Check if recent cybersecurity alerts from 10 international CERTs affect your current project. Cyberowlai is an agent skill from karimhabush/cyberowl. Check if recent cybersecurity alerts from 10 international CERTs affect your current project.
Cyberowlai fits situations like: the user asks about security vulnerabilities; is my project affected; any new security alerts; check for vulnerabilities.
Run `npx skills add karimhabush/cyberowl --skill cyberowlai -a claude-code`. Or copy the skill folder (docs/.vuepress/public/skill in karimhabush/cyberowl) into .claude/skills/cyberowlai in your project. Claude Code loads it when a task matches its description.
Run `npx skills add karimhabush/cyberowl --skill cyberowlai -a codex`. Or copy the skill folder (docs/.vuepress/public/skill in karimhabush/cyberowl) into .agents/skills/cyberowlai in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add karimhabush/cyberowl --skill cyberowlai -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cyberowlai, .gemini/skills/cyberowlai, .github/skills/cyberowlai and .opencode/skills/cyberowlai in your project.
Going by SKILL.md and its folder, Cyberowlai needs the command-line tools its instructions call (apt-get, apk and yum). Our summary lists: Node.js; Docker.
SKILL.md names 1 domain. In commands or code: cyberowlai.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Cyberowlai is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Cyberowlai: Container Security Hardening (sickn33/agentic-awesome-skills, 47k stars), Security Analyzer (aiskillstore/marketplace, 433 stars), Container Security (hardw00t/ai-security-arsenal, 105 stars) and Sca Trivy (AgentSecOps/SecOpsAgentKit, 220 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
karimhabush (a GitHub user) maintains it in karimhabush/cyberowl, which has 263 GitHub stars. The repository was last updated on October 10, 2026.
Source: karimhabush/cyberowl on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.