Files
fuzzforge_ai/fuzzforge-runner
tduhamel42 d786c6dab1 fix: block Podman on macOS and remove ghcr.io default (#39)
* fix: block Podman on macOS and remove ghcr.io default

- Add platform check in PodmanCLI.__init__() that raises FuzzForgeError
  on macOS with instructions to use Docker instead
- Change RegistrySettings.url default from "ghcr.io/fuzzinglabs" to ""
  (empty string) for local-only mode since no images are published yet
- Update _ensure_module_image() to show helpful error when image not
  found locally and no registry configured
- Update tests to mock Linux platform for Podman tests
- Add root ruff.toml to fix broken configuration in fuzzforge-runner

* rewrite guides for module architecture and update repo links

---------

Co-authored-by: AFredefon <antoinefredefon@yahoo.fr>
2026-02-03 10:15:16 +01:00
..

FuzzForge Runner

Direct execution engine for FuzzForge OSS. Provides simplified module and workflow execution without requiring Temporal or external infrastructure.

Overview

The Runner is designed for local-first operation, executing FuzzForge modules directly in containerized sandboxes (Docker/Podman) without workflow orchestration overhead.

Features

  • Direct module execution in isolated containers
  • Sequential workflow orchestration (no Temporal required)
  • Local filesystem storage (S3 optional)
  • SQLite-based state management (optional)

Usage

from fuzzforge_runner import Runner
from fuzzforge_runner.settings import Settings

settings = Settings()
runner = Runner(settings)

# Execute a single module
result = await runner.execute_module(
    module_identifier="my-module",
    project_path="/path/to/project",
)

# Execute a workflow (sequential steps)
result = await runner.execute_workflow(
    workflow_definition=workflow,
    project_path="/path/to/project",
)

Configuration

Environment variables:

  • FUZZFORGE_STORAGE_PATH: Local storage directory (default: ~/.fuzzforge/storage)
  • FUZZFORGE_ENGINE_TYPE: Container engine (docker or podman)
  • FUZZFORGE_ENGINE_SOCKET: Container socket path