Osmedeus

Osmedeus

Osmedeus
Osmedeus - A Modern Orchestration Engine for Security

What is Osmedeus?

Osmedeus is a security focused declarative orchestration engine that simplifies complex workflow automation into auditable YAML definitions, complete with encrypted data handling, secure credential management, and sandboxed execution.

Built for both beginners and experts, it delivers powerful, composable automation without sacrificing the integrity and safety of your infrastructure.

Features

  • Declarative YAML Workflows - Define reconnaissance pipelines using simple, readable YAML syntax
  • Two Workflow Types - Modules for single execution units, Flows for multi-module orchestration
  • Multiple Runners - Execute on local host, Docker containers, or remote machines via SSH
  • Distributed Execution - Scale with Redis-based master-worker pattern for parallel scanning
  • Event-Driven Triggers - Cron scheduling, file watching, and event-based workflow triggers with deduplication
  • Decision Routing - Conditional workflow branching with switch/case syntax
  • Template Engine - Powerful variable interpolation with built-in and custom variables
  • Utility Functions - Rich function library with event generation, bulk processing, and JSON operations
  • REST API Server - Manage and trigger workflows programmatically
  • Database Support - SQLite (default) and PostgreSQL for asset tracking
  • Notifications - Telegram bot and webhook integrations
  • Cloud Storage - S3-compatible storage for artifact management
  • LLM Integration - AI-powered workflow steps with chat completions and embeddings

See Documentation Page for more details.

Installation

curl -sSL http://www.osmedeus.org/install.sh | bash

See Quickstart for quick setup and Installation for advanced configurations.

Quick Start

# Run a module workflow
osmedeus run -m recon -t example.com

# Run a flow workflow
osmedeus run -f general -t example.com

# Multiple targets with concurrency
osmedeus run -m recon -T targets.txt -c 5

# Dry-run mode (preview)
osmedeus run -f general -t example.com --dry-run

# Start API server
osmedeus serve

# List available workflows
osmedeus workflow list

# Query database tables
osmedeus db list --table runs
osmedeus db list --table event_logs --search "nuclei"

# Evaluate utility functions
osmedeus func eval 'log_info("hello")'
osmedeus func eval -e 'httpGet("https://example.com")' -T targets.txt -c 10

# Show all usage examples
osmedeus --usage-example

Docker

# Show help
docker run --rm j3ssie/osmedeus:latest --help

# Run a scan
docker run --rm -v $(pwd)/output:/root/workspaces-osmedeus \
    j3ssie/osmedeus:latest run -f general -t example.com

For more CLI usage and example commands, refer to the CLI Reference.

CLI UsageWeb UI AssetsWeb UI Workflow
CLI UsageWeb UI AssetsWeb UI Workflow

Core Components

Trigger

TypeDescriptionUse Case
CronSchedule workflows at specific timesRegular scans
File WatchTrigger workflows when files changeContinuous monitoring
EventTrigger workflows based on external eventsIntegration with other tools
WebhookTrigger workflows based on HTTP requestsExternal system integration
ManualTrigger workflows manually via CLI or APIOne-time tasks

Workflows

TypeDescriptionUse Case
ModuleSingle execution unit with sequential/parallel stepsIndividual scanning tasks
FlowOrchestrates multiple modules with dependenciesComplete reconnaissance pipelines

Runners

RunnerDescription
HostLocal machine execution (default)
DockerContainer-based execution
SSHRemote machine execution

Step Types

TypeDescription
bashExecute shell commands
functionCall utility functions
foreachIterate over file contents
parallel-stepsRun multiple steps concurrently
remote-bashPer-step Docker/SSH execution
httpMake HTTP requests
llmAI-powered processing

Workflow Example

kind: module
name: demo-bash
description: Demo bash steps with functions and exports

params:
  - name: target
    required: true

steps:
  - name: setup
    type: bash
    command: mkdir -p {{Output}}/demo && echo "{{Target}}" > {{Output}}/demo/target.txt
    exports:
      target_file: "{{Output}}/demo/target.txt"

  - name: run-parallel
    type: bash
    parallel_commands:
      - 'echo "Thread 1: {{Target}}" >> {{Output}}/demo/results.txt'
      - 'echo "Thread 2: {{Target}}" >> {{Output}}/demo/results.txt'

  - name: check-result
    type: function
    function: 'fileLength("{{Output}}/demo/results.txt")'
    exports:
      line_count: "output"

  - name: summary
    type: bash
    command: 'echo "Processed {{Target}} with {{line_count}} lines"'

For writing your first workflow, refer to the Workflow Overview.

Roadmap and Status

The high-level ambitious plan for the project, in order:

#StepStatus
1Osmedeus Engine reforged with a next-generation architecture
2Flexible workflows and step types
3Event-driven architectural model and the different trigger event categories
4Beautiful UI for visualize results and workflow diagram
5Rewriting the workflow to adapt to new architecture and syntax⚠️
6Testing more utility functions like notifications⚠️
7Generate diff reports showing new/removed/unchanged assets between runs.
8Adding step type from cloud provider that can be run via serverless
NFancy features (to be discussed later)

Documentation

TopicLink
Getting Starteddocs.osmedeus.org/getting-started
CLI Usage & Examplesdocs.osmedeus.org/getting-started/cli
Writing Workflowsdocs.osmedeus.org/workflows/overview
Event-Driven Triggersdocs.osmedeus.org/advanced/event-driven
Deploymentdocs.osmedeus.org/deployment
Architecturedocs.osmedeus.org/concepts/architecture
Development docs.osmedeus.org/development and HACKING.md
Extending Osmedeusdocs.osmedeus.org/development/extending-osmedeus
Full Documentationdocs.osmedeus.org

License

Osmedeus is made with ♥ by @j3ssie and it is released under the MIT license.