A modern interface for browsing the OSINT Framework collection. The UI provides search, tagging, categories, tool details, and local favorites while keeping the original resource structure intact.
Note: Installing dependencies requires internet access to npm. If your environment blocks outgoing connections, you can still regenerate the tool index (see below), but
npm installwill not succeed.
- Install dependencies
npm install
- Generate the tool index from the upstream
public/arf.jsonnpm run generate:tools
- Start the development server
Visit http://localhost:3000 to use the workbench.
npm run dev
- Category sidebar sourced from the ARF hierarchy
- Full-text search and tag filters for (T), (D), (R), (M)
- Tool cards with quick open links
- Detail modal with links, notes, and copy-to-clipboard for commands when provided
- Favorites stored in
localStorage - Case workspaces with deterministic search packs, evidence capture, and hypothesis tracking
- API route at
/api/toolsto consume the generated catalog
The catalog is deterministically generated from public/arf.json.
npm run generate:toolsThis writes data/tools.json, which the UI and API consume.
The case workspace is available at /cases and /cases/[id].
- Open Cases and create a new case with subject name, optional location, keywords, usernames, and notes.
- The app creates a workspace with a deterministic search pack that groups suggested web, social, business, archive, and image queries as clickable buttons and copyable strings.
- Use Add evidence on any case to log URLs, notes, tags, and source types; items are stored locally.
- Track hypotheses with confidence, status, contradictions, and linked evidence. An AI assist action suggests next-step questions using existing evidence text (no web calls).
- All case data is stored in
localStorageso it persists across refreshes.
When you update UI surfaces, capture a screenshot from the running app (e.g., npm run dev and use the browser tooling)
to illustrate the change in pull requests.
Basic parser coverage is provided via Vitest:
npm test- Keep the meaning and structure of the upstream OSINT list intact
- Update
public/arf.jsonfirst, then regeneratedata/tools.json - Run tests before opening a PR when possible
The UI only exposes links and copy-to-clipboard helpers. No commands are executed automatically; any run examples are displayed for manual use.