Tricorder aims to empower users developing programs with Haskell and LLM coding agents. It does so by providing operations to surface the right information required at a given stage: documentation, build status, diagnostics, etc.
ℹ️ More information about how to use
tricordercan be found in this presentation for the Haskell Foundation's "Haskell and AI Workshop".
Like similar tools (ghcid, ghciwatch), it builds the code continuously on
every change, presents diagnostics, and runs the tests afterwards. However,
Tricorder offers other advantages:
- Designed for humans - A
tricorder uiinteractive TUI mode that presents stats in real time for developers. - Designed for agents - A
SKILLis provided to inform agentic usage via thetricorderCLI. - Background builds - Building in the background using a daemon allows
different clients to query the build state simultaneously without triggering
multiple rebuilds. For instance, we ship the
tricorder uiTUI and thetricorder statusCLI command that communicate witha single daemon via a socket. - Sane defaults - Running
tricorder startshould Just Work™ for most cabal-based Haskell projects.- Daemon restarts automatically when cabal files change
- If customization is needed it can be provided at different levels via a
.tricorder.yamlor CLI args.- Optional config includes which cabal packages to watch, which exact command to use to enter a GHCi session, customizable key bindings, etc.
- Multi-package projects - In a
cabal.projectworkspace, Tricorder discovers every package's components automatically, building and running tests across all of them — no manual target configuration needed. - Project context - Tools like
tricorder source Some.Modulewill attempt to find and provide the source code for a given dependency from disk, which allows exploring library APIs more easily. - Machine-readable output - Using
tricorder status --jsonwe can get build information in a format appropriate for programmatic usage.
For a deeper guide on the various features of Tricorder, see Features of Tricorder.
With the tricorder CLI in your path, start the Tricorder daemon either
explicitly with tricorder start or automatically by just running tricorder ui, which will start the daemon if it's not already running and show you the
TUI.
For using Tricorder with Claude Code, Copilot, or another coding agent, see Using with coding agents.
Tricorder is supported on both Linux and macOS.
Tricorder is published on both on Hackage and on
Stackage from
Stackage Nightly 2026-08-19 and onwards, so you
may install it using either cabal or stack, whichever is your preference:
cabal install tricorder
# Or
stack install tricorderOn NixOS, when installing with cabal, you might get errors like this:
Missing dependency on a foreign library:
* Missing (or bad) C library: z
Pass the following flag to ensure zlib uses the zlib bundled with your
system: --constraint='zlib +bundled-c-zlib'.
To install and use Tricorder in your NixOS configuration, see Using with Nix.
Tricorder is also released as pre-built binaries on GitHub.
Currently, multiple of our dependencies do not support GHC 9.14, and as such we are not able to officially support 9.14 just yet. But stay tuned, as we are eager to utilize the new multi-home features!
nix develop
tricorder uiThis repository also contains Atelier, a set of Haskell libraries providing foundational infrastructure for effect-based applications (to be extracted into their own repository).
Some less maintained Atelier libraries have been moved to atelier-extras.