Selected tools made by Haskell for general purpose
Basilica
bench
- ベンチマークをとれるコマンド。繰り返し実行や結果のHTMLへの出力などができる。
- Gabriel439/bench: Command-line benchmark tool
$ bench 'sleep 1' # Don't forget to quote the command line
benchmarking sleep 1
time 1.003 s (1.002 s .. 1.003 s)
1.000 R² (1.000 R² .. 1.000 R²)
mean 1.003 s (1.003 s .. 1.003 s)
std dev 92.92 μs (0.0 s .. 101.8 μs)
variance introduced by outliers: 19% (moderately inflated)
$ bench true
benchmarking true
time 410.3 μs (382.3 μs .. 443.3 μs)
0.974 R² (0.961 R² .. 0.987 R²)
mean 420.7 μs (406.8 μs .. 435.7 μs)
std dev 47.69 μs (40.09 μs .. 57.91 μs)
variance introduced by outliers: 81% (severely inflated)
broch
brok
cabasa
cgrep
- プログラムの構造を意識したgrepが出来るコマンド
- awgn/cgrep: Cgrep: a context-aware grep for source codes
cherchord
cmt
command-line-tweeter
curl-runnings
Elm
- elm
- elm+electronで気楽に始めるFRP
- Building elm with stack
- Elm開発環境について - Qiita
- elm/compiler: Compiler for Elm, a functional language for reliable webapps.
Ema
erd
- テキストからER図に変換するツール
- BurntSushi/erd: Translates a plain text description of a relational database schema to a graphical entity-relationship diagram.
gitit
git-annex
- gitでバイナリファイル等を効率的に扱うツール
- https://git-annex.branchable.com/
- peti/git-annex
gifcurry
- 動画からテキスト入りのgifを生成するGUIツール。CLIもある
- lettier/gifcurry: 😎 The open-source, Haskell-built video editor for GIF makers.
$ gifcurry_cli ./in.mp4 ./out.gif start_second duration quality 'Optional top text.' 'Optional bottom text.'
gipeda
github-backup
- Githubのレポジトリのバックアップを取ってくれるコマンド
-
including branches, tags, other forks, issues, comments, wikis, milestones, pull requests, watchers, and stars.
- github-backup: backs up everything github knows about a repository, to the repository
givegif
- コマンドライン上でgifを探して表示できるコマンド
- passy/givegif: GIFs on the command line
Glean
- Glean | Glean - System for collecting, deriving and querying facts about source code
grace
franz
hascard
Hakyll
- 静的サイトジェネレータ
- https://jaspervdj.be/hakyll/
- Static Generation with Haskell
- Hakyll
- Hakyllを使ってGitHub Pagesを作成して、そのソースも管理して、Travis CIで自動デプロイする。
- Hakyllでページング
- Hakyllでブログを作る(実践編)
- Create a static site with Hakyll, Github and Travis CI
- Jekyll Style URLs with Hakyll
- Serving a Hakyll site with Warp/Wai
- Hakyll で日本語文中の余分な空白を削除する
- Blog Rewrite with Hakyll and Purescript
- Compiling SCSS and JavaScript in Hakyll
- Hakyllで前後の記事へのリンクを設置する - Qiita
- How to Hakyll CircleCI 2.0 @ Nazarii Bardiuk’s blog
- Taeer Bar-Yam - Hakyll + TikZ
- Hakyll Pt. 3 – Generating RSS and Atom XML Feeds
- Hakyll Pt. 4 – Copying Static Files For Your Build
- tejasbubane/hakyll-css: Drop-in CSS themes for syntax highlighting in Hakyll
- Dependent Types Blog - Creating Blog with Hakyll, Nix and Deploying on Amazon EC2
- spam - Haskell, Hakyll and Github Actions
hawk
- Haskellの文法が使えるawkのようなコマンド
- gelisam/hawk: Haskell text processor for the command-line
- 手軽にHaskell できる hawk が楽しい
- Related tools
$ cat /etc/passwd | hawk -d: -m 'head'
root
hode
hoodle
hsp
identicon
- Flexible generation of identicons in Haskell
- mrkkrp/identicon: Flexible generation of identicons in Haskell
- The Identicon package
KOMPOSITION
- owickstrom/komposition: The video editor built for screencasters
- Komposition
- Writing a Screencast Video Editor in Haskell | Func Da World
lamdu
life-sync
link
markov-bot
- 過去のツイートを学習してボットを作ってくれるツール
- ryota-ka/markov-bot: Generates random sentences from your tweet history using the Markov chain, and post them into Twitter.
Movie Monad
- lettier/movie-monad: A free and simple to use video player made with Haskell.
- Let’s make a GTK Video Player with Haskell
Neuron
neut
ngless
Osabe
Pandoc
- ドキュメントを別の形式のドキュメントに変換できるコマンド
- とにかくサポートしている形式が多い
- http://pandoc.org/
- Convert documents (doc, odt, html, epub, etc.) in Shell with pandoc
- An AsciiDoc processor and Pandoc front-end in Haskell - Tweag
PaperBoy
This tool helps renaming those files without too much fuss. It will rename/move documents to a specified folder, and it even gives some filename suggestions by looking at the file content and the pdf metadata.
par
- Linuxのコマンドを簡単に並列実行させられるコマンド
- k-bx/par: Small utility that runs multiple computations in parallel
$ par "echo foo; sleep 1; echo foo; sleep 1; echo foo" "echo bar; sleep 1; echo bar; sleep 1; echo bar" && echo "success"
foo
bar
bar
foo
bar
foo
success
patat
Penrose
- 数式からいい感じに図表が生成できてしまう! Penroseを試す (SIGGRAPH 2020) - Qiita
- カーネギーメロン大、数式をイラストに翻訳してくれるツール「ペンローズ」発表! | Techable(テッカブル)
Pomohoro
PostgREST
- PostgreSQLの機能をREST APIに変換してくれるツール
- PostgREST Workshop
- Declaring RESTful APIs with PostgREST
- A Tour of PostgREST
PureScript
- http://www.purescript.org/
- purescript/purescript: A strongly-typed language that compiles to JavaScript
- potomak/haskell-player: A terminal music player based on afplay
- goldenlynx/jsn: An absolutely simple & terse CLI app to manipulate JSON data
- andyarvanitis/pure11
- Stack Safety for Free
- slamdata/purescript-halogen
- 実例によるPureScript
- purescript/purescript-free
- Flare
- Pursuit
- PureScript for the Haskeller
- kRITZCREEK/psc-ide
- Type-safe client-server communication with PureScript
- 【翻訳】PureScriptとHaskellの違い +α - Qiita
- PureScript got field names right, Haskell got them wrong
qhs
Rib
- srid/rib: Haskell static site generator based on Shake, with a delightful development experience.
- My Type-Safe Blog in Haskell
vado
vgrep
vimus
- Music Player Daemon のクライアント
- vimus/vimus: An MPD client with vim-like key bindings, written in Haskell
Scarf
ShellCheck
- シェルスクリプトのバグなどをチェックしてくれるツール
- ShellCheck
- Lessons learned from writing ShellCheck, GitHub’s now most starred Haskell project – Vidar’s Blog
- koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts
$ shellcheck myscript
Line 3:
for f in $(ls *.m3u)
^-- SC2045: Iterating over ls output is fragile. Use globs.
^-- SC2035: Use ./*glob* or -- *glob* so names with dashes won't become options.
Line 5:
grep -qi hq.*mp3 $f \
^-- SC2062: Quote the grep pattern so the shell won't interpret it.
^-- SC2086: Double quote to prevent globbing and word splitting.
Line 6:
&& echo -e 'Playlist $f contains a HQ file in mp3 format'
^-- SC2039: In POSIX sh, echo flags are undefined.
^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.
Simula
SimpleX chat
SitePipe
Slick
Smopeck
- autotaker/smopeck: Mocking and Specification Tool for API prototyping
- REST APIを簡単にMockできるツールSmopeckの紹介 - Qiita
sprinkles
Stutter
Super User Spark
tamarin-prover
- Tamarin Prover
- tamarin-prover/tamarin-prover: Main source code repository of the Tamarin prover for security protocol verification.
Tart
- Tart - なんと!ターミナル上で動作するドローアプリ MOONGIFT
- jtdaugherty/tart: Tart - draw ASCII art in the terminal with your mouse!
Taskell
TaskLite
thock
tomlcheck
- vmchale/tomlcheck - A syntax checker for TOML files
unused
waymonad
Wasp
wire
wstunnel
xmonad
Yi
- Haskellでカスタマイズできるエディタ
- yi-editor/yi: The Haskell-Scriptable Editor
Other tools for general purpose
Most of the stuff here is already unmaintained, but as a tool implementation it would be helpful.
- jxv/animate-frames: 🎞️ Sprite frames to spritesheet & metadata
- Tarrasch/antigen-hs: A fast zsh plugin manager
- Blogdown - Simple Markup for Blogging
- ollef/braces-be-gone: Get those pesky braces out of your face
- master-q/carettah: Carettah := Make your presentation more fun!
- xtendo-org/chips: A fast, lightweight, and concurrent plugin manager for the fish shell, written in Haskell
- pasqu4le/clifm: Command Line Interface File Manager
- silky/clone-all: clone all the github repositories of a particular user.
- GaloisInc/ec2-unikernel: Tool for uploading unikernels into EC2
- RKlompUU/FPSheet: FPSheet: A Spreadsheet program with Haskell as the scripting language
- arow-oss/goat-guardian: Reverse proxy that handles authentication
- nandor/hcraft: Haskell clone of a certain game
- chrisdone/hell
- sgillis/hidenticon: CLI tool to generate GitHub-like identicons
- mbid/hmemo: Spaced repetition of flash cards on the command line
- jhickner/hobbes: A cross-platform file activity monitor
- fokot/howerpoint - forget about Powerpoint!!
- lambdacms/lambdacms: A CMS in Haskell using Yesod: performant, developer friendly & type safe.
- ledger/ledger4: A rewrite of Ledger’s core mathematical concepts in Haskell
- agustinmista/mdviewer: Minimalistic Markdown viewer/converter with built-in Css stylesheets support.
- shnarazk/mios: A SAT solver written in Haskell.
- rdnetto/powerline-hs: A lightning fast reimplementation of the Powerline prompt generator in Haskell.
- Hector A. Escobedo / ptcpd · GitLab - Plain Text Chat Protocol daemon
- ChrisPenner/rasa: Extremely modular text editor built in Haskell
- tokiwoousaka/ttask: This is task management tool for yourself, that inspired by scrum.
- ananthakumaran/webify: webfont generator - converts ttf to woff, eot and svg
- skedgeme/wrecker: An HTTP Benchmarking Library
- z0w0/helm: A functionally reactive game engine, with headgear to protect you from the headache of game development provided.
Tools for Haskell
argon
- Monitor cyclomatic complexity in Haskell programs
- https://github.com/rubik/argon
describe
ekg
- Remote monitoring of running processes over HTTP
- https://github.com/tibbe/ekg
grammar-inference
- Learning rigid grammars in Haskell.
- https://github.com/ayberkt/grammar-inference
haddocset
- Generate docset of Dash by Haddock haskell documentation tool
- https://github.com/philopon/haddocset
Hadui
haskell-code-spot
haskell-docs-cli
haskell-tools
- Developer tools for Haskell
- https://github.com/nboldi/haskell-tools
hdevtools
- Persistent GHC-powered background server for FAST haskell development tools
- https://github.com/hdevtools/hdevtools
hgrep
hpack
- hpack: An alternative format for Haskell packages
- https://github.com/sol/hpack
- https://github.com/yamadapc/hpack-convert
hsdev
- Haskell development tool
- https://github.com/mvoidex/hsdev
hs-snowtify
- aiya000/hs-snowtify: snowtify send your result of
stack build
(stack test
) to notify-daemon :dog2: - Haskellのstack-build(test)の結果をGUI通知するsnowtify作ったよ - Qiita
hyper-haskell
import-bikeshedder
- Haskellのimport文を並べ替えるコマンド
- https://github.com/fumieval/import-bikeshedder
mega-sdist
prune-juice
-
[Pruning Unused Haskell Dependencies Dan Fithian](https://dfithian.github.io/2021/03/08/pruning-unused-haskell-dependencies.html)
require
self-extract
staversion
- staversion: What version is the package X in stackage lts-Y.ZZ?
- stackageの特定のresolverに上がっているパッケージバージョンを調べるツール
summoner
tintin
A softer alternative to Haddock
thank-you-stars
- y-taka-23/thank-you-stars - Give your dependencies stars on GitHub!
- Haskell ライブラリにスターを送るツール thank-you-stars を作ってみました
ThreadScope
time-ghc-modules
trackit
- ファイルやディレクトリの変更を検知してコマンドを実行してくれるツール
- trackit: A command-line tool for live monitoring
$ trackit --watch-dir=. --command="ls --color"
typebot
- 関数の型を答えてくれるSlack bot
- https://github.com/thoughtbot/typebot
reserve
- Universal and robust reloading for Haskell web applications
- https://github.com/sol/reserve
vabal
webshow
Weeder
ライブラリなど
- turtle
- The haskeline package
- The vty package
- jtdaugherty/brick
- Git operations in haskell - hit
- Handling Control-C in Haskell
- Haskell でシグナルで中断された時にクリーンナップ処理をしてから終了する
- Terminal-based graphing via ANSI and Unicode - BlackBrane/ansigraph v A reliable at-least-once job queue built on top of redis. - The hworker package
- Record X11 window using ffmpeg
- fuse でオレオレファイルシステムを作ってみた (Haskell で)
- 24 days of Hackage, 2015: day 17: ansi-wl-pprint: avoiding string hacking
- haskellで周波数スペクトルを描画したはなし
- Create ctags compatible tags files for Haskell programs - bitc/lushtags
- SamuelSchlesinger/Quickterm Haskellでインタプリタみたいなのを実装する時のBufferModeの事
- A command-line benchmark tool
- Haskeline
- A configuration loading scheme for tools in Haskell
- WRITING A SIMPLE CLI-TOOL IN HASKELL
- Teleport - How to write a small, useful command line application in Haskell
- Haskus - The long-term aim is to provide a full Haskell user-space environment on top of the Linux kernel.
- SamuelSchlesinger/gross: Easy terminal interfaces, emulating gloss
- HaskellでShellみたいなことをやるのに便利なライブラリの紹介 - Qiita
- Combining Brick and Haskeline
- Introduction to Brick
- Faster command line tools with Haskell
- Project: Making Google Tasks Better
- Compose :: Melbourne 2017 - Andrew McCluskey - Your first Haskell app - YouTube
- Haskellでコマンドライン引数を受け取る - Qiita
- functor.tokyo – Termonad: A Terminal Emulator Configurable in Haskell
- Haskell で Ctrl-C を制御する(Windows) - 趣味はデバッグ……
- Haskellで作るCLI - ログミーTech
- Anardil — Haskell coreutils - cat
- termbox-banana: reactive-banana + termbox
- Patterns of Functional Programming: Functional Core - Imperative Shell
- blog/Haskell static code analysis software.md at master · razvan-flavius-panda/blog
- Haskell で簡単な CLI ツールを作ってみる - Qiita
- System.FSNotifyでファイルイベントが一切検出されない時 - Qiita
- yesodweb/Shelly.hs
- Haskellで作るTUIアプリ - Qiita
- Haskell入門のコンソールアプリを作るの備忘録 - Qiita
- How a Java Programmer Wrote Console Tetris In Haskell And What The Learning Curve Was Like
- brick + vty で TUI パネポンを作ってみる - Qiita
オプションパーサー
- HaskellのSystem.Console.ParseArgs
- zalora/getopt-generics
- Auto-generate a command line interface from a data type
- optparse-applicative
- optparse-declarative: 宣言的な型レベルコマンドラインパーザー
- optparse-applicativeとoptparse-simple入門
- optparse-applicative quick start
- GetOpt and extensible records
- Higher Kinded Option Parsing
- Writing Custom Optimization Passes :: Reasonably Polymorphic
- optparse-applicativeでコマンドライン引数をパースする - Qiita
- Designing Command Line Interfaces in Haskell | Stephan Schiffels