Wan Satya

CatWalk - Declarative workflow engine written in Python

by

What is CatWalk?

CatWalk lets you define workflows in JSON, then run or serve them via HTTP (or locally) with minimal boilerplate. It’s designed for developer-friendly orchestration of tasks, conditions, triggers, and actions, without sacrificing flexibility.


Why we built it


Many workflow engines force you to write a lot of imperative code or lock you into heavy infrastructure. We wanted something:

  • Lightweight and easy to bootstrap

  • Declarative: you describe what should happen, not how step-by-step

  • Native to Python (so you stay in your stack)

  • Transparent and extensible (you can add your own nodes/triggers)

  • Visualizable (so you can see the flow, not just read JSON)

Key features

  • Define your workflow in JSON (flows, nodes, conditions)

  • One-line or one-command to run locally or serve across HTTP

  • Visual UI integration (via ReactFlow or similar) to see your flows in action

  • Extendable: add your custom node types (API call, delay, validation, branching)

  • Open-source: inspect, contribute, fork, whatever you like

Who it’s for

  • Python backend engineers who want orchestration without heavy dev-ops overhead

  • Teams automating jobs, triggers, API workflows, validations, etc

  • Projects where you want the logic externalised (in JSON) rather than buried in dozens of scripts

  • Anyone wanting a workflow engine that doesn’t force you into Kubernetes or some massive stack

Try it out

👉 Visit the website: https://pycatwalk.com
👉 GitHub: https://github.com/pycatwalk/catwalk
👉 Quick start: install → define your JSON flow → run it locally or serve → watch it execute


What we’d love from you

  • Upvotes 🧡 if you like what we’re doing

  • Feedback: Try it out, tell us what features you’d add (UI, integrations, monitoring, branching, distributed execution?)

  • Share: if you know someone working on workflow orchestration, dev ops, backend Python, pass the initiative

4 views

Add a comment

Replies

Be the first to comment