About Badfish

Badfish is a vendor-agnostic, redfish-based API tool used to consolidate management of IPMI and out-of-band interfaces for common server hardware vendors.  Badfish is also a popular song from Sublime, this may be a coincidence – are you a badfish too?

We wrote Badfish because more and more vendors are starting to standardize on the redfish API.  We run a very large, diverse infrastructure with lots of different vendor technologies and we were tired of tooling differences, limitations and a lack of consistency in approaches to systems automation.

Badfish is a Python-based, asyncio-native standalone tool but it is also bundled into QUADS as a library to manage boot interface ordering/management and bare-metal automation tasks starting in the 1.1 codebase.


  • Management of interface boot order for Dell systems
  • One-time PXE operations for Dell hardware
  • Gathering firmware and hardware inventory for Dell systems
  • Pulling Dell system configuration into XML
  • Flexible logging for IPMI/out-of-band operations
  • Check/set SRIOV global defaults (Dell Only)
  • Check/unmount virtual media (SuperMicro Only)
  • Gather additional systems information (memory, interfaces, etc).
  • Asynchronous IPMI/Redfish automation across large sets of bare-metal systems
  • Other SuperMicro and HPE server features are also available.

Project Details

  • Language:  Python
  • License:  GPLv3
  • Documentation:  Github
  • CI/Tests:  Travis
  • Installation Methods: Github source, Podman container, Python Setuptools, Pip
  • Platforms:  Linux, BSD, OSX, Windows
  • Requirements:  Podman or Python3.6+

Core Development Team

  • Gonzalo Rafuls
  • Will Foster
  • Kambiz Aghaiepour
    • kambiz on IRC & kambiz-aghaiepour on Github