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

Overview

dinogo

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

MIT License

Features

  • 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

Example

package main

import (
	"github.com/mertcandav/dinogo/shell"
	"github.com/mertcandav/dinogo/shell/actions"
)

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},
	}
	sh.Loop()
}

Contributing

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.

License

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

Owner
Mertcan Davulcu
// TODO: Add a bio.
Mertcan Davulcu
A multiple reverse shell sessions/clients manager via terminal written in go

A multiple reverse shell sessions/clients manager via terminal written in go

Krisna Pranav 8 Aug 3, 2021
Create new commands from your shell history or terminal.

overdub Create new commands from your shell history or terminal. TODO list for initial release Filter out unlikely commands (e.g. package managers) fr

Michael Zalimeni 5 Oct 14, 2021
Generate an interactive, autocompleting shell for any Cobra CLI

cobra-shell Description Leverages the Cobra completion API to generate an interactive shell for any Cobra CLI, powered by go-prompt. On-the-fly autoco

Brian Strauch 7 Dec 2, 2021
A UI library for terminal applications.

tui: Terminal UI for Go A UI library for terminal applications. tui (pronounced tooey) provides a higher-level programming model for building rich ter

Marcus Olsson 2k Nov 23, 2021
Advanced ANSI style & color support for your terminal applications

termenv lets you safely use advanced styling options on the terminal. It gathers information about the terminal environment in terms of its ANSI & col

Christian Muehlhaeuser 837 Nov 29, 2021
Source code of a YouTube tutorial about writing terminal applications with Golang

Bubble Tea Demo 00 Source code of a YouTube tutorial about writing terminal applications with Golang by using Bubble Tea. Contains a simple counter ap

Nicolás Parada 1 Nov 29, 2021
Stonks is a terminal based stock visualizer and tracker that displays realtime stocks in graph format in a terminal.

Stonks is a terminal based stock visualizer and tracker. Installation Requirements: golang >= 1.13 Manual Clone the repo Run make && make install Pack

Eric Moynihan 465 Nov 24, 2021
Build an interactive CLI application with Go, Cobra and promptui. Video tutorial available on the Div Rhino YouTube channel.

Build an interactive CLI app with Go, Cobra and promptui Text tutorial: https://divrhino.com/articles/build-interactive-cli-app-with-go-cobra-promptui

Div Rhino Dev 5 Oct 26, 2021
dots is CLI tool to build, version and publish config file bundles.

dots-cli dots is CLI tool to build, version and publish config file bundles. TODO (shared): Writing comprehensive documentation Designing landing page

Alvan Rahimli 12 Aug 24, 2021
🎀 a nice lil shell for lua people made with go and lua

Hilbish ?? a nice lil shell for lua people made with go and lua It is currently in a mostly beta state but is very much usable (I'm using it right now

Hilbis Development 142 Dec 1, 2021
Tool for shell commands execution, visualization and alerting. Configured with a simple YAML file.

Sampler. Visualization for any shell command. Sampler is a tool for shell commands execution, visualization and alerting. Configured with a simple YAM

Alexander Lukyanchikov 9.2k Dec 2, 2021
ReverseSSH - a statically-linked ssh server with reverse shell functionality for CTFs and such

ReverseSSH A statically-linked ssh server with a reverse connection feature for simple yet powerful remote access. Most useful during HackTheBox chall

null 421 Nov 30, 2021
A shell tool to create counting semaphores, acquire them and release them.

A shell tool to create counting semaphores, acquire them and release them. This is useful if you want to e.g. run no more than N out of M commands in parallel.

Antoine Grondin 2 Oct 12, 2021
Testing local and remote shell commands in Go

Testing local and remote shell commands in Go. This is an (intentionally simplified) example of how unix shell commands can be unit-tested in Go. The

Anton 5 Nov 30, 2021
A versatile library for building CLI applications in Go

mow.cli Package cli provides a framework to build command line applications in Go with most of the burden of arguments parsing and validation placed o

Jawher Moussa 766 Dec 6, 2021
An easy to use menu structure for cli applications that prompts users to make choices.

WMenu Package wmenu creates menus for cli programs. It uses wlog for its interface with the command line. It uses os.Stdin, os.Stdout, and os.Stderr w

Will Dixon 145 Nov 23, 2021
multi progress bar for Go cli applications

Multi Progress Bar mpb is a Go lib for rendering progress bars in terminal applications. Features Multiple Bars: Multiple progress bars are supported

Vladimir Bauer 1.5k Nov 23, 2021
Soren L. Hansen 1.5k Dec 4, 2021
Template repository for testing CLI features of applications written in Go

Go CLI testing example This repository provides a template on how to create a testable CLI applications in Go language. As an example, this applicatio

Mateusz Gozdek 7 Nov 18, 2021