# Run Claude Osint

Build, validate, and run the claude-osint skills repo, check SKILL.md frontmatter, run...

- Repository: https://github.com/elementalsouls/Claude-OSINT (2943 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-10-20
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add elementalsouls/Claude-OSINT --skill run-claude-osint -g -a claude-code -y`
Codex: `npx skills add elementalsouls/Claude-OSINT --skill run-claude-osint -g -a codex -y`
Cursor: `npx skills add elementalsouls/Claude-OSINT --skill run-claude-osint -g -a cursor -y`
Gemini CLI: `npx skills add elementalsouls/Claude-OSINT --skill run-claude-osint -g -a gemini-cli -y`

## Description

Build, validate, and run the claude-osint skills repo, check SKILL.md frontmatter, run the secret_scan.py and h1_reference.py helpers, run sync-skill-content.sh, run the smoke test. Use when asked to run, build, test, validate, or smoke-test claude-osint or its OSINT skills/scripts.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Run: claude-osint

`claude-osint` is **not an app**, it's a Claude *skills package*. Its product
is two `SKILL.md` files (`skills/offensive-osint/`, `skills/osint-methodology/`)
plus two runnable Python helpers under `skills/offensive-osint/scripts/`. There
is no GUI, server, or TUI. "Running it" means: the SKILL.md frontmatter parses
and is complete (that's what Claude loads), and the helper scripts work.

The driver is **`.claude/skills/run-claude-osint/smoke.sh`**, it does all of
that in one shot. **All paths below are relative to the repo root.**

## Prerequisites

Python 3 with PyYAML (already present on this container). If `import yaml` fails:

```bash
pip install pyyaml    # or: apt-get install -y python3-yaml
```

The helpers are stdlib-only otherwise. `h1_reference.py` needs outbound HTTPS to
`hackerone.com`. No build step, no `npm install`, nothing to compile.

## Run (agent path), the driver

From the repo root:

```bash
.claude/skills/run-claude-osint/smoke.sh           # full smoke (exits 0 on pass)
.claude/skills/run-claude-osint/smoke.sh --no-net  # skip the HackerOne live check
```

It runs six checks and prints a `==> PASS` / `==> FAIL` line (exit 0 / 1):

1. `py_compile` both helpers.
2. `secret_scan.py` detects AWS key + JWT from stdin (the CI canaries).
3. `secret_scan.py` recursively scans `skills/` and emits JSONL (~11 findings, example tokens in the SKILL.md docs).
4. Every `skills/*/SKILL.md` has valid YAML frontmatter with `name`/`description`/`version`/`triggers` and ≥5 triggers.
5. `sync-skill-content.sh --check` exits 0.
6. `h1_reference.py` fetches one live disclosed report (non-fatal if offline).

## Run individual pieces

Verified this session:

```bash
# Secret scanner, stdin
printf 'AKIAIOSFODNN7EXAMPLE\n' | python3 skills/offensive-osint/scripts/secret_scan.py
# -> {"pattern": "AWS_ACCESS_KEY", "severity": "critical", ...}

The rest: https://github.com/elementalsouls/Claude-OSINT/blob/HEAD/.claude/skills/run-claude-osint/SKILL.md
