Skip to main content
Descriptive alt text

CLI Run Progress

This document describes the command-line interface (CLI) for Osmedeus which is the main entry point for running workflows and modules and some other utilities. It provides usage examples and explanations for each command. Below are all available commands:
j3ssie osmedeus -h

Usage:
  osmedeus [flags]
  osmedeus [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  config      Manage osmedeus configuration
  db          Database management commands
  function    Execute and test utility functions
  health      Check and fix environment health (alias for 'osmedeus install validate')
  help        Help about any command
  install     Install workflows, base folder, or binaries
  run         Execute a workflow
  scan        Execute a workflow (alias for 'run')
  serve       Start the Osmedeus web server
  snapshot    Export and import workspace snapshots
  version     Print version information
  worker      Worker node commands for distributed scanning
  workflow    Manage workflows

1. Osmedeus Run (aliases: scan)

Execute a workflow against one or more targets
Descriptive alt text

CLI Run with LLM Step

Descriptive alt text

CLI Run Progress

Descriptive alt text

CLI Run Progress


 Examples
  # Run against a single target
  osmedeus run -f recon-workflow -t example.com

  # Run against multiple targets
  osmedeus run -m simple-module -t target1.com -t target2.com

  # Run with stdin input with concurrency
  cat list-of-urls.txt | osmedeus run -m simple-module --concurrency 10

  # Combine multiple input methods
  echo "extra.com" | osmedeus run -m simple-module -t main.com -T more-targets.txt

  # Run with custom parameters
  osmedeus run -m simple-module -t example.com --params 'threads=20'

  # Run with custom base folder
  osmedeus run --base-folder /opt/osmedeus-base -f recon-workflow -t example.com

  # Run with timeout (cancel if exceeds)
  osmedeus run -m recon -t example.com --timeout 2h

  # Repeat run every hour continuously
  osmedeus run -m recon -t example.com --repeat --repeat-wait-time 1h

  # Run multiple modules in sequence
  osmedeus run -m subdomain -m portscan -m vulnscan -t example.com

  # Combine timeout with repeat mode
  osmedeus run -m recon -t example.com --timeout 3h --repeat --repeat-wait-time 30m

  # Dry-run mode (preview without executing)
  osmedeus run -m recon -t example.com --dry-run

  # Run module from stdin (pipe YAML)
  cat module.yaml | osmedeus run --std-module -t example.com

  # Load parameters from YAML/JSON file
  osmedeus run -m recon -t example.com --params-file params.yaml

  # Custom workspace path
  osmedeus run -m recon -t example.com --workspace /custom/workspace

  # Skip heuristics checks
  osmedeus run -m recon -t example.com --heuristics-check none

  # Concurrent targets from file
  osmedeus run -m recon -T targets.txt --concurrency 5

2. Osmedeus Function Eval

Execute and test utility functions available in workflows
Descriptive alt text

CLI Function Eval to Query Database

Descriptive alt text

CLI Function Eval to render markdown

 Subcommands
 list       - List all available functions
 eval (e)   - Evaluate scripts with template rendering

 Examples
  # List all available functions
  osmedeus func list

  # Evaluate a simple function
  osmedeus func eval 'trim("  hello  ")'

  # Short alias for eval
  osmedeus func e 'log_info("Hello World")'

  # Use with target variable
  osmedeus func e 'fileExists("{{target}}")' -t /tmp/test.txt

  # Print markdown file with syntax highlighting
  osmedeus func e 'print_markdown_from_file("README.md")'

  # Multi-line script with variable
  osmedeus func e 'var x = trim("  test  "); log_info(x); x'

  # Make HTTP request
  osmedeus func e 'httpRequest("https://api.example.com", "GET", {}, "")'

  # With custom params
  osmedeus func e 'log_info("{{host}}:{{port}}")' --params 'host=localhost' --params 'port=8080'

  # Query database with SQL
  osmedeus func e 'db_select("SELECT severity, COUNT(*) FROM vulnerabilities GROUP BY severity", "markdown")'

  # Query filtered assets from database
  osmedeus func e 'db_select_assets_filtered("example.com", 200, "subdomain", "jsonl")'

  # Read script from stdin
  echo 'log_info("hello")' | osmedeus func e --stdin

  # Alternative stdin syntax
  echo 'trim("  test  ")' | osmedeus func e -

3. Installation Command

One-liner to install workflows, base folder, or binaries from various sources.
 Description
  Install workflows, base folder, or binaries from various sources.

 Subcommands
 workflow  - Install workflows from git URL, zip URL, or local zip
 base      - Install base folder (backs up and restores database)
 binary    - Install binaries from registry
 env       - Add binaries path to shell configuration
 validate  - Check and fix environment health

 Examples
  # List available binaries (direct-fetch mode)
  osmedeus install binary --list-registry-direct-fetch

  # List available binaries (nix-build mode)
  osmedeus install binary --list-registry-nix-build

  # Install specific binaries
  osmedeus install binary --name nuclei --name httpx

  # Install all required binaries
  osmedeus install binary --all

  # Install all binaries including optional ones
  osmedeus install binary --all --install-optional

  # Check if binaries are installed
  osmedeus install binary --all --check

  # Install Nix package manager
  osmedeus install binary --nix-installation

  # Install binary via Nix
  osmedeus install binary --name nuclei --nix-mode

  # Install all binaries via Nix
  osmedeus install binary --all --nix-mode

  # Install workflows from git
  osmedeus install workflow https://github.com/user/osmedeus-workflows.git

  # Install base folder from git
  osmedeus install base https://github.com/user/osmedeus-base.git

4. Database Management

View and manage the database, including clean up, and schema operations.
cli-db-list

CLI Database List

cli-db-view

CLI Database Table View

 Description
  List all database tables with their row counts, or list records from a
  specific table with pagination support.

 Options
  -t, --table         Table name to list records from
  --offset            Number of records to skip (default: 0)
  --limit             Maximum records to return (default: 20, max: 100)
  --list-columns      List all available columns for the specified table
  --exclude-columns   Comma-separated column names to exclude from output

 Valid Tables
  runs, step_results, artifacts, assets, event_logs, schedules

 Examples
  # List all tables with row counts
  osmedeus db list

  # List records from runs table
  osmedeus db list -t runs

  # List available columns for assets table
  osmedeus db list -t assets --list-columns

  # List assets excluding specific columns
  osmedeus db list -t assets --exclude-columns id,created_at,updated_at

  # List assets with pagination
  osmedeus db list -t assets --offset 0 --limit 10

  # Get next page of results
  osmedeus db list -t assets --offset 10 --limit 10

Full Usage Examples

See Full Usage Examples for full CLI usage examples.