ghci debug viewer on Visual Studio Code

Latest on Hackage:

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

BSD3 licensed by phoityne_hs
Maintained by

Phoityne VSCode

Phoityne is a ghci debug viewer for Visual Studio Code.




  • Breakpoint can be set in a .hs file which defineds "module ... where".
  • Source file extension must be ".hs"
  • When you start debugging for the first time, .vscode/tasks.json will be created automatically. Then you can use F6, F7, F8 shortcut key. F5 : start debug F6 : show command menu (for stack watch) Shift + F6 : stop stack watch F7 : stack clean & build * F8 : stack test


Run stack install

% stack install phoityne-vscode
  . . . . .

Add 'phoityne-vscode.exe' to PATH environment.

% where $path:phoityne-vscode.exe
C:\Users\[user name]\AppData\Roaming\local\bin\phoityne-vscode.exe


Install vscode extensions

  1. open Extensions from side menu of VSCode.
  2. search "haskell"
  3. select "Haskell GHCi debug viewer Phoityne"


Run to Cursor


Bindings & Watch

The variable added to watch will be forced.


Stack trace


Break condition


Hit count break condition

Supports these operators. == /= <, > <=, >= mod, % just digit is same with '>='


Repl & Completions



  • supportsConfigurationDoneRequest : yes
  • supportsFunctionBreakpoints : yes
  • supportsConditionalBreakpoints : yes
  • supportsHitConditionalBreakpoints : yes
  • supportsEvaluateForHovers : yes
  • exceptionBreakpointFilters : no
  • supportsStepBack : no
  • supportsSetVariable : no
  • supportsRestartFrame : no
  • supportsGotoTargetsRequest : no
  • supportsStepInTargetsRequest : no
  • supportsCompletionsRequest : yes
  • supportsModulesRequest : no
  • additionalModuleColumns : no
  • supportedChecksumAlgorithms : no
  • supportsRestartRequest : no
  • supportsExceptionOptions : no
  • supportsValueFormattingOptions : no



|NAME|REQUIRED OR OPTIONAL|DEFAULT SETTING|DESCRIPTION| |:--|:--:|:--|:--| |startup|required|${workspaceRoot}/test/Spec.hs|debug startup file, will be loaded automatically.| |ghciCmd|required|stack ghci --test --no-load --no-build --main-is TARGET|launch ghci command, must be Prelude module loaded. For example, "ghci -i${workspaceRoot}/src", "cabal exec -- ghci -i${workspaceRoot}/src"| |ghciPrompt|required|H>>=|ghci command prompt string.| |logFile|required|${workspaceRoot}/.vscode/phoityne.log|internal log file.| |logLevel|required|WARNING|internal log level.|


|TASK NAME|REQUIRED OR OPTIONAL|DEFAULT SETTING|DESCRIPTION| |:--|:--:|:--|:--| |stack build|required|stack build|task definition for F6 shortcut key.| |stack clean & build|required|stack clean && stack build|task definition for F7 shortcut key.| |stack test|required|stack test|task definition for F8 shortcut key.| |stack watch|required|stack build --test --no-run-tests --file-watch|task definition for F6 shortcut key.|

Version history


20170205 phoityne-vscode- * [FIX] 8 : Unterminated process after leaving GHCi

20161218 phoityne-vscode- [ADD] Hit count break conditionに対応した。 [FIX] エラー終了時にterminate eventを送信するように修正した。

20161009 phoityne-vscode- [MODIFY] REPL結果をイベントで返すように変更した。EvaluateResponseで返した場合は、複数行表示ができないため。 [MODIFY] REPLにおいて、複数行の入力に対応した。 [MODIFY] REPLにおいて、デバッグ関連のコマンドを実行しないように変更した。 [FIX] バインディング変数情報の取得において、複数行にまたがる情報のパースが失敗していた箇所を修正した。

20160919 phoityne-vscode- [ADD] ConfigurationDoneRequestに対応した。 [ADD] CompletionsRequestに対応した。 [MODIFY] Hover時の型表示を改善した。 [MODIFY] Hover時のforce実行を止めた。 * [FIX] setBreakpointsResponse, setFunctionBreakpointsResponseのBodyデータにおいて、キー名を修正した。

20160804 phoityne-vscode- [MODIFY] モジュール構成の変更。 [MODIFY] debugger adopter interface Capabilitiesの変更に対応した。

20160704 phoityne-vscode- [MODIFY] debugger adopter interface Capabilitiesの変更に対応した。 [MODIFY] debugger adopter interface StackFrameの変更に対応した。(endLin, endColumnの追加) * [MODIFY] debugger adopter interface Variableの変更に対応した。(typeの追加)

20160626 phoityne-vscode-

  • [MODIFY] launchリクエストのghciCmdパラメータで指定したghci起動コマンドを使用するように変更した。
  • [MODIFY] ghciの起動に失敗した場合、デバッグを終了するように修正した。

20160605 phoityne-vscode-

  • [MODIFY] launchリクエストのnoDebugパラメータをMaybeに変更した。

20160601 phoityne-vscode-

  • [MODIFY] スタックトレースの表示を番号から関数名に変更した。
  • [MODIFY] GHC-8.0.1のghciにおいて、:step結果の出力変更(Stopped in)に対応した。

20160515 phoityne-vscode-

  • [ADD] tasks.jsonが存在しない場合は、作成するようにした。
  • [ADD] package.json にキーバインディング設定を追加した。(stack build, stack clean, stack test, stack watch)
  • [ADD] hover requestに対して、:info結果を返すようにした。

20160508 phoityne-vscode-

  • [ADD] デバッガ起動後、ファイル保存時にghciにリロードするようにした。
  • [ADD] 条件付きブレークポイントに対応した。

20160504 phoityne-vscode-

  • [INFO] Initial release.

comments powered byDisqus