Fernthedev Serverless Offline Step Functions

Serverless Offline Plugin to Support Step Functions for Local Development.

View on Github

Serverless Offline Step Functions (STATUS: ALPHA)

serverless npm node-lts GitHub GitHub issues GitHub pull requests

Serverless Offline Plugin to Support Step Functions for Local Development.


  • Fully Written in TypeScript
  • Promise based (no process spawn)
  • Completely based on AWS Docs

If the plugin is being useful in your company and/or project and want to keep the development active, consider buying me a coffee 🙂... coffee is the thing that makes me the most happy person in the world and I'd appreciate the sponsorship.




$ npm i -D @fernthedev/serverless-offline-step-functions

# or

$ yarn add -D @fernthedev/serverless-offline-step-functions


The plugin contain a couple of options to configure in custom

    port: 8014
    enabled: true
    debug: false
  • port: Port of the Step Functions API Simulator (Default: 8014)
  • enabled: Enabled Step Function API Simulator (Default: true)
  • debug: Enable Debugger Output (Default: false)

Using it with Webpack

If your project uses serverless-webpack to compile/transpile your serverless application. Make sure is defined in your plugins before this plugin and serverless-offline


  - serverless-webpack # Defined Before
  - serverless-step-functions # Defined Before
  - '@fernthedev/serverless-offline-step-functions'
  - serverless-offline

Known Issues

  • The library will only start with $npx sls offline start and not npx sls offline.
  • If there's no input for the options it will throw an error. please copy&paste the ones provided on the top.

State Types Supported

States Notes
Task Basic Retry/Catch now supported!, Timeout and Heartbeat are not supported yet.
Parallel Not Supported at all yet.
Map Basic Support

Credits and inspiration

The plugin began as a fork of flocasts/serverless-offline-step-functions for a fix. Then I decided to do a full rewrite of it 😀



How to Contribute

Thank you for your interest on contributing. There's a tons of ways that you can contribute!

  • If you see that something is not right, open an issue!
  • If you know exactly what is happening, open a PR!
  • Want to improve the docs? Open a PR!
  • Want to improve the code? Open a PR!

Please follow both PR and Issues template for contribution. Any Open Issue/PR that does not follow the templates will be closed