[!NOTE] Mercury is migrating our backend build to Buck2 after outgrowing the Cabal build system. As a result, ghciwatch is currently in maintenance mode: we are not developing new features and code review bandwidth is limited.
For more information on Mercury's Buck2 migration, see some of the conference talks by our engineers and contractors: - "Integrating Nix and Buck2 for fun and profit" by Claudio Bley (Tweag) at NixCon 2024 (31 minutes). - "Remote Execution with Buck2 and Nix" by Claudio Bley (Tweag) at FOSDEM 2025 (20 minutes). - "Haskell Builds at Scale: Comparing Bazel and Buck2" by Andreas Herrmann (Tweag) at BazelCon 2025 (32 minutes).
Ghciwatch loads a GHCi session for a Haskell project and reloads it when source files change.
--test-ghci
TestMain.testMain..cabal files with hpack before GHCi starts using
--before-startup-shell
hpack.--before-reload-shell
async:fourmolu.--error-file,
for compatibility with ghcid's --outputfile option.-- $> can be
evaluated
in GHCi.{- $> ... <$ -}.Check out a quick demo to see how ghciwatch feels in practice:
See CONTRIBUTING.md for information on hacking
ghciwatch.
$ claude mcp add ghciwatch \
-- python -m otcore.mcp_server <graph>