Dinogo is an CLI framework for build terminal and shell applications in Go.

MIT License


  • Cross Platform
  • Fast and efficient
  • Keyboard API
  • Enable/Disable Windows Virtual Terminal Processing
  • Default actions (help, clear, exit…) for your shell
  • Shell infrastructure
  • Command history infrastructure
  • Input infrastructure (custom actions, key combos…)
  • Input schemes (classic, password…)
  • ANSI Escape Code processor and parser
  • CLI functions (move left, move right, clear screen…)
  • By default supports cursor move on input via command line


package main

import (

func about(shell.CommandActionInfo) {
	println("This shell is example for Dinogo framework.")

func main() {
	sh := shell.Init()
	sh.Commands = []shell.Command{
		{Name: "clear", Help: "Clear entire screen.", Action: actions.Clear},
		{Name: "about", Help: "Show about this shell.", Action: about},
		{Name: "history", Help: "List command history.", Action: actions.History},
		{Name: "help", Help: "Show help.", Action: actions.Help},
		{Name: "exit", Help: "Exit shell.", Action: actions.Exit},


Thanks for you want contributing to Dinogo!

The Dinogo project use issues for only bug reports and proposals.
To contribute, please read the contribution guidelines from here.

All contributions to Dinogo, no matter how small or large, are welcome.
From a simple typo correction to a contribution to the code, all contributions are welcome and appreciated.


Fract and standard library is distributed under the terms of the MIT license.
See license details.