Haskell Debugger Extension for Visual Studio Code.
TypeScript
54
65 commits
updated Feb 4, 2026
Install haskell-dap, ghci-dap, haskell-debug-adapter at once.
$ stack update
$
$ stack install haskell-dap ghci-dap haskell-debug-adapter
$
$ ghci-dap --version
[DAP][INFO] start ghci-dap-0.0.XX.0.
The Glorious Glasgow Haskell Compilation System, version X.X.X
$
$ haskell-debug-adapter --version
VERSION: haskell-debug-adapter-0.0.XX.0
$
Install ghci-dap, haskell-debug-adapter.
$ cabal update
$
$ cabal install ghci-dap haskell-debug-adapter
$
$ haskell-debug-adapter --version
VERSION: haskell-debug-adapter-0.0.XX.0
$
$ mkdir project_stack
$ cd project_stack
$
$ stack new sample --bare
$ stack test
$
$ mkdir project_cabal
$ cd project_cabal
$
$ cabal init
$ cabal configure
$ cabal bulid
$





see sample files.
| NAME | REQUIRED OR OPTIONAL | DEFAULT SETTING | DESCRIPTION |
|---|---|---|---|
| startup | required | ${workspaceRoot}/test/Spec.hs | debug startup file, will be loaded automatically. |
| startupFunc | optional | "" (empty string) | debug startup function, will be run instead of main function. |
| startupArgs | optional | "" (empty string) | arguments for startup function. set as string type. |
| stopOnEntry | required | false | stop or not after debugger launched. |
| mainArgs | optional | "" (empty string) | main arguments. |
| ghciPrompt | required | H>>= | ghci command prompt string. |
| ghciInitialPrompt | optional | "Prelude> " | initial pormpt of ghci. set it when using custom prompt. e.g. set in .ghci |
| ghciCmd | required | cabal repl -w ghci-dap --repl-no-load --builddir=${workspaceFolder/.vscode/dist-cabal-repl | launch ghci command (special value ghci-dap will use hie-bios to determine appropriate flags). |
| ghciEnv | required | {} | Environment variables for ghci exectution. |
| logFile | required | ${workspaceRoot}/.vscode/phoityne.log | internal log file. |
| logLevel | required | WARNING | internal log level. |
| forceInspect | required | false | Inspect scope variables force. |
We are currently experimenting with MCP (Model Context Protocol) support for haskell-debug-adapter.
As part of this effort, we are exploring integration with pty-mcp-server, a lightweight stdio-based MCP server that enables AI-assisted control over GHCi sessions.
We have also developed a dedicated VS Code extension named pms-vscode, which provides a frontend interface to pty-mcp-server within the editor.
Although haskell-debug-adapter and pms-vscode are implemented as independent extensions and operate separately, their collaboration may deepen in the future as part of broader efforts toward AI-driven and automated Haskell development tooling.
This integration aims to:
cabal repl
Ref : haskell cabal debug prompt
TypeScript
92.2%
Batchfile
4.3%
Shell
3.5%
Haskell Debugger Extension for Visual Studio Code.
TypeScript
54
65 commits
updated Feb 4, 2026
Install haskell-dap, ghci-dap, haskell-debug-adapter at once.
$ stack update
$
$ stack install haskell-dap ghci-dap haskell-debug-adapter
$
$ ghci-dap --version
[DAP][INFO] start ghci-dap-0.0.XX.0.
The Glorious Glasgow Haskell Compilation System, version X.X.X
$
$ haskell-debug-adapter --version
VERSION: haskell-debug-adapter-0.0.XX.0
$
Install ghci-dap, haskell-debug-adapter.
$ cabal update
$
$ cabal install ghci-dap haskell-debug-adapter
$
$ haskell-debug-adapter --version
VERSION: haskell-debug-adapter-0.0.XX.0
$
$ mkdir project_stack
$ cd project_stack
$
$ stack new sample --bare
$ stack test
$
$ mkdir project_cabal
$ cd project_cabal
$
$ cabal init
$ cabal configure
$ cabal bulid
$





see sample files.
| NAME | REQUIRED OR OPTIONAL | DEFAULT SETTING | DESCRIPTION |
|---|---|---|---|
| startup | required | ${workspaceRoot}/test/Spec.hs | debug startup file, will be loaded automatically. |
| startupFunc | optional | "" (empty string) | debug startup function, will be run instead of main function. |
| startupArgs | optional | "" (empty string) | arguments for startup function. set as string type. |
| stopOnEntry | required | false | stop or not after debugger launched. |
| mainArgs | optional | "" (empty string) | main arguments. |
| ghciPrompt | required | H>>= | ghci command prompt string. |
| ghciInitialPrompt | optional | "Prelude> " | initial pormpt of ghci. set it when using custom prompt. e.g. set in .ghci |
| ghciCmd | required | cabal repl -w ghci-dap --repl-no-load --builddir=${workspaceFolder/.vscode/dist-cabal-repl | launch ghci command (special value ghci-dap will use hie-bios to determine appropriate flags). |
| ghciEnv | required | {} | Environment variables for ghci exectution. |
| logFile | required | ${workspaceRoot}/.vscode/phoityne.log | internal log file. |
| logLevel | required | WARNING | internal log level. |
| forceInspect | required | false | Inspect scope variables force. |
We are currently experimenting with MCP (Model Context Protocol) support for haskell-debug-adapter.
As part of this effort, we are exploring integration with pty-mcp-server, a lightweight stdio-based MCP server that enables AI-assisted control over GHCi sessions.
We have also developed a dedicated VS Code extension named pms-vscode, which provides a frontend interface to pty-mcp-server within the editor.
Although haskell-debug-adapter and pms-vscode are implemented as independent extensions and operate separately, their collaboration may deepen in the future as part of broader efforts toward AI-driven and automated Haskell development tooling.
This integration aims to:
cabal repl
Ref : haskell cabal debug prompt
TypeScript
92.2%
Batchfile
4.3%
Shell
3.5%