[ library, mit, program, unclassified ] [ Propose Tags ]


[Last Documentation]

  • Stackctl
    • Stackctl.AWS
      • Stackctl.AWS.CloudFormation
      • Stackctl.AWS.Core
      • Stackctl.AWS.EC2
      • Stackctl.AWS.Lambda
      • Stackctl.AWS.Orphans
      • Stackctl.AWS.STS
      • Stackctl.AWS.Scope
    • Stackctl.Action
    • Stackctl.CLI
    • Stackctl.ColorOption
    • Stackctl.Colors
    • Stackctl.Commands
    • Stackctl.Config
      • Stackctl.Config.RequiredVersion
    • Stackctl.DirectoryOption
    • Stackctl.FilterOption
    • Stackctl.Options
    • Stackctl.ParameterOption
    • Stackctl.Prelude
    • Stackctl.Prompt
    • Stackctl.Sort
    • Spec
      • Stackctl.Spec.Capture
      • Stackctl.Spec.Cat
      • Stackctl.Spec.Changes
        • Stackctl.Spec.Changes.Format
      • Stackctl.Spec.Deploy
      • Stackctl.Spec.Discover
      • Stackctl.Spec.Generate
    • Stackctl.StackDescription
    • Stackctl.StackSpec
    • Stackctl.StackSpecPath
    • Stackctl.StackSpecYaml
    • Stackctl.Subcommand
    • Stackctl.TagOption
    • Stackctl.VerboseOption
    • Stackctl.Version
  • UnliftIO
    • Exception
      • UnliftIO.Exception.Lens


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Change log
Dependencies aeson, aeson-casing, aeson-pretty, amazonka, amazonka-cloudformation, amazonka-core, amazonka-ec2, amazonka-lambda, amazonka-sts, base (>=4 && <5), Blammo (>=, bytestring, cfn-flip (>=, conduit, containers, envparse, errors, exceptions, extra, filepath, Glob, lens, lens-aeson, monad-logger, mtl, optparse-applicative, QuickCheck, resourcet, rio, semigroups, stackctl, text, time, unliftio, unliftio-core, unordered-containers, uuid, yaml [details]
License MIT
Copyright 2022 Renaissance Learning Inc
Author Freckle Engineering
Home page
Bug tracker
Source repo head: git clone
Uploaded by PatrickBrisbin at 2023-02-02T15:58:51Z
Executables stackctl
Downloads 1114 total (116 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2023-02-02 [all 2 reports]

Readme for stackctl-

[back to package description]


Hackage CI

Manage CloudFormation Stacks through specifications.


stackctl is a command-line tool for working with Stack Specifications. A Stack Specification is a file-system format for describing deployed (or to-be-deployed) CloudFormation Stacks including the Template, Parameters, and Tags. stackctl can be used to pretty-print, diff, and deploy these specifications.

This project also contains a Haskell library for doing the same.



  • Have ~/.local/bin on your $PATH
  • Have ~/.local/share/man on your $MANPATH (for documentation)
  • If on OSX, brew install coreutils (i.e. have ginstall available)


curl -L | bash

NOTE: some in the community have expressed concerns about the security of so-called "curl-sh" installations. We think the argument has been pretty well debunked, but feel free to use the manual steps instead.


Go to the latest release and download the .tar.gz asset appropriate for your OS. Navigate to the directory containing the downloaded file and run:

tar xvf stackctl-*.tar.gz
cd stackctl

User installation:

make install PREFIX="$HOME/.local"

Global installation

sudo make install


Once installed, see:

  • stackctl --help,
  • stackctl <command> --help,
  • man 1 stackctl, or
  • man 1 stackctl <command>

The man pages are also available in-repository, but contain documentation as of main, and not your installed version.

Relationship to CloudGenesis

CloudGenesis is a project that also takes a directory of Stack Specifications and deploys them when changed. Its on-disk format inspired ours and, in fact, directories built for CloudGenesis can be managed by stackctl (not necessarily the other way around).

The key differences are:

  • CloudGenesis supplies AWS CodeBuild tooling for handling changes to your GitOps repository; Stackctl expects you to implement a GitHub Action that installs and executes stackctl commands as appropriate

    This makes Stackctl better if you need or want to also run the same tooling in a local context, but it makes CloudGenesis better if you need or want this activity to remain within the boundaries of your AWS VPC.

  • CloudGenesis reacts to file-change events in S3, which only happens when you synchronize from main; Stackctl can run on any branch and easily be scoped to files changed in the PR or push.

    This enables Stackctl features like commenting with ChangeSet details on PRs, which are not possible in CloudGenesis as it's currently implemented.

  • Stackctl adds the Depends key, for ordering multi-Stack processing