hwm: Haskell Workspace Manager - Orchestrates Stack, Cabal, and HLS

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

HWM (Haskell Workspace Manager) manages multi-package Haskell projects by generating and synchronizing configuration files for Stack, Cabal, Hpack, and HLS from a single source of truth (hwm.yaml). It handles dependency management, build matrices across GHC versions, and coordinated package releases.


[Skip to Readme]

Properties

Versions 0.0.1, 0.0.1, 0.0.5
Change log CHANGELOG.md
Dependencies aeson (>=1.4.4 && <3.0.0), ansi-terminal (>=0.11.3 && <=1.1.5), async (>=2.2.4 && <2.3.0), base (>=4.7.0 && <5.0.0), base16-bytestring (>=1.0.0 && <2.0.0), bytestring (>=0.10.4 && <=0.12.2.0), Cabal (>=3.8 && <=3.16.1.0), containers (>=0.4.2.1 && <=0.8), cryptohash-sha256 (>=0.11.100 && <=0.11.102.1), directory (>=1.0 && <=1.3.10.1), filepath (>=1.1.0 && <=1.5.5.0), Glob (>=0.7.0 && <1.0.0), hpack (>=0.36.0 && <=0.39.1), hwm (>=0.0.0 && <0.1.0), modern-uri (>=0.1.0.0 && <1.0.0), mtl (>=2.0.0 && <2.6.0), optparse-applicative (>=0.12.0 && <0.20.0), process (>=1.0.0 && <2.0.0), relude (>=0.3.0 && <2.0.0), req (>=3.0.0 && <=3.13.4), stm (>=2.4 && <2.6.0), text (>=1.2.3 && <3.0.0), time (>=1.9.2 && <2.0.0), transformers (>=0.5.6 && <0.7.0), typed-process (>=0.1.0 && <0.4.0), unordered-containers (>=0.2.8 && <0.3.0), yaml (>=0.8.32 && <1.0.0) [details]
License MIT
Copyright (c) 2026 Daviti Nalchevanidze
Author Daviti Nalchevanidze
Maintainer d.nalchevanidze@gmail.com
Category Development
Home page https://github.com/nalchevanidze/hwm#readme
Bug tracker https://github.com/nalchevanidze/hwm/issues
Source repo head: git clone https://github.com/nalchevanidze/hwm
Uploaded by nalchevanidze at 2026-02-15T19:52:33Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for hwm-0.0.1

[back to package description]

HWM: Haskell Workspace Manager

HWM is not a build tool. It is the missing link that orchestrates the tools you already use.

Haskell has excellent build systems (stack, cabal, nix) and a powerful IDE (hls), but they don't talk to each other in a monorepo. HWM bridges this gap by acting as a single source of truth, automatically generating and synchronizing the configuration files those tools expect.

The Problem

In a typical Haskell monorepo:

The Solution

You define the "what" in hwm.yaml. HWM handles the "how."

name: my-project
version: 0.1.0

workspace:
  - name: libs
    prefix: my-app
    members: [core, api, client]

registry:
  - aeson >= 2.0 && < 3.0
  - text  >= 2.0 && < 3.0

matrix:
  default-environment: stable
  environments:
    - { name: stable, ghc: 9.6.3, resolver: lts-22.6 }
    - { name: nightly, ghc: 9.10.1, resolver: nightly-2024-05-22 }

One command regenerates everything:

hwm sync

HWM generates and keeps in sync:

Quick Start

# Install
stack install hwm
# or
cabal install hwm

# In an existing Stack project
hwm init
hwm sync
hwm run build

Key Commands

Full Documentation

📚 Complete Documentation & Examples →

Visit the GitHub repository for:

Origin

HWM was born out of necessity to manage the Morpheus GraphQL ecosystem with 15+ packages across multiple GHC versions.