{"id":15565624,"url":"https://github.com/pkosiec/terminer","last_synced_at":"2025-04-23T23:46:33.673Z","repository":{"id":48632701,"uuid":"154976349","full_name":"pkosiec/terminer","owner":"pkosiec","description":"Upgrade your terminal experience with a single command.","archived":false,"fork":false,"pushed_at":"2021-07-16T19:08:32.000Z","size":1693,"stargazers_count":28,"open_issues_count":8,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T20:11:10.326Z","etag":null,"topics":["cli","command-line","command-line-tool","fish","hacktoberfest","installation","prompt","shell","shell-prompt","terminal","zsh"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pkosiec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-27T14:57:07.000Z","updated_at":"2023-05-12T16:52:45.000Z","dependencies_parsed_at":"2022-08-27T18:30:50.539Z","dependency_job_id":null,"html_url":"https://github.com/pkosiec/terminer","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkosiec%2Fterminer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkosiec%2Fterminer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkosiec%2Fterminer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkosiec%2Fterminer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkosiec","download_url":"https://codeload.github.com/pkosiec/terminer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242283740,"owners_count":20102632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","command-line","command-line-tool","fish","hacktoberfest","installation","prompt","shell","shell-prompt","terminal","zsh"],"created_at":"2024-10-02T17:00:19.306Z","updated_at":"2025-03-06T20:31:42.419Z","avatar_url":"https://github.com/pkosiec.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Terminer](./assets/logo.png)\n\n# Terminer\n\n[![Build Status](https://github.com/pkosiec/terminer/actions/workflows/branch.yaml/badge.svg)](https://github.com/pkosiec/mongo-seeding/actions) [![Go Report Card](https://goreportcard.com/badge/github.com/pkosiec/terminer)](https://goreportcard.com/report/github.com/pkosiec/terminer) [![codecov](https://codecov.io/gh/pkosiec/terminer/branch/master/graph/badge.svg)](https://codecov.io/gh/pkosiec/terminer) ![GitHub release](https://img.shields.io/github/release/pkosiec/terminer.svg)\n\nUpgrade your terminal experience with a single command.\n\n\u003e **:warning: WARNING**: This project is in a very early stage. Use it at your own risk.\n\nTerminer is an cross-platform installer for terminal presets. Install Fish or ZSH shell packed with useful plugins and sleek prompts. Use one of starter recipes or make yours.\n\n![Screenshot](./assets/screenshot.png)\n\n## Table of contents\n\n- [Motivation](#motivation)\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Quick start](#quick-start)\n  - [Available recipes](#available-recipes)\n  - [What is a Recipe](#what-is-a-recipe)\n- [Available commands](#available-commands)\n  - [`install`](#install)\n  - [`rollback`](#rollback)\n  - [`version`](#version)\n\n## Motivation\n\nCommand line interface (CLI) is a great way to access various operating system functions. It allows you to automate time-consuming tasks with a single command. Also, not all features are available with graphical user interface (GUI).\n\nThe command line interface is available through a program called terminal emulator, which launches shell. Shell is a program which processes user input and returns output.\n\nUsually, default shell setup is bare-bone. Luckily, there is a way to upgrade it: install different shell along with useful plugins. They can introduce features such as autocompletion or syntax highlighting. You can also install prompts, which can display useful pieces of information, like current git branch. All these additions heavily improve user experience and save your time.\n\nThere is one downside of the shell experience customization. It's a time-consuming task. Installing different shell is easy, but to configure it well, you can easily spend hours for searching useful plugins, prompts, themes and fonts.\n\nNot anymore. Use Terminer. Bootstrap your complete shell configuration in a moment.\n\n## Installation\n\nTo install this tool into `/usr/local/bin` directory, run the following command:\n\n```bash\ncurl -sfL https://raw.githubusercontent.com/pkosiec/terminer/master/install.sh | sh -s -- -b /usr/local/bin\n```\n\n\n\u003e **Note:** Make sure that the directory in your `$PATH`. If not, run:\n```bash\nexport PATH=$PATH:/usr/local/bin\n```\n\nInclude the line above in you `~/.bashrc` file or other configuration file for your current shell.\n\n## Usage\n\nTerminer operates on recipes, which consist of shell commands.\nThe most essential commands are `install` and `rollback`.\n\n### Quick start\n\nTo install a recipe from official repository, run:\n\n```bash\nterminer install [recipe name]\n```\n\nTo rollback a recipe from official repository, run:\n\n```bash\nterminer rollback [recipe name]\n```\n\n### Available recipes\n\nTo see all maintained recipes, navigate to the [**`recipes`**](./recipes) directory.\n\n### What is a Recipe\n\nRecipe is a YAML or JSON file with shell commands put in a proper order. Recipe consists of stages, which contain steps. Every step is a different shell command.\n\nThis is an example recipe, which just prints messages for all steps in all stages - not only during install, but also for rollback operation:\n\n```yaml\nos: darwin\nmetadata:\n  name: Recipe\n  description: Recipe Description\n\nstages:\n  - metadata:\n      name: Stage 1\n      description: Stage 1 description\n      url: https://stage1.example.com\n    steps:\n      - metadata:\n          name: Step 1\n          url: https://step1.stage1.example.com\n        execute:\n          run:\n            - echo \"Step 1 of Stage 1\"\n        rollback:\n          run:\n            - echo \"Rollback of Step 1 of Stage 1\"\n      - metadata:\n          name: Step 2\n          url: https://step2.stage1.example.com\n        execute:\n          run:\n            - echo \"Step 2 of Stage 1\"\n        rollback:\n          run:\n            - echo \"Rollback of Step 2 of Stage 1\"\n  - metadata:\n      name: Stage 2\n      description: Stage 2 description\n      url: https://stage2.example.com\n    steps:\n      - metadata:\n          name: Step 1\n          url: https://step1.stage2.example.com\n        execute:\n          run:\n            - echo \"Step 1 of Stage 1\"\n          shell: sh\n        rollback:\n          run:\n            - echo \"Rollback of Step 1 of Stage 2\"\n```\n\n## Available commands\n\nThe following section describes all available commands in Terminer CLI.\n\n### `install`\n\nInstall command installs a recipe from the official recipe repository. You can use additional flags to install a recipe from a local or remote file.\n\n**Usage**\n\n```bash\nterminer install [recipe name]\n```\n\n**Flags**\n\n```\n-f, --filepath string   Recipe file path\n-h, --help              help for install\n-u, --url string        Recipe URL\n```\n\n**Examples**\n\n```\nterminer install zsh-starter\nterminer install -f ./recipe.yaml\nterminer install --file /Users/sample-user/recipe.yml\nterminer install -u https://example.com/recipe.yaml\nterminer install --url http://foo.bar/recipe.yml\n```\n\n### `rollback`\n\nRollback command uninstalls a recipe from the official recipe repository. You can use additional flags to rollback a recipe from a local or remote file.\n\n**Usage**\n\n```bash\nterminer rollback [recipe name]\n```\n\n**Flags**\n\n```\n-f, --filepath string   Recipe file path\n-h, --help              help for install\n-u, --url string        Recipe URL\n```\n\n**Examples**\n\n```bash\nterminer rollback zsh-starter\nterminer rollback -f ./recipe.yaml\nterminer rollback --file /Users/sample-user/recipe.yml\nterminer rollback -u https://example.com/recipe.yaml\nterminer rollback --url http://foo.bar/recipe.yml\n```\n\n### `version`\n\nPrints the application version\n\n**Usage**\n\n```bash\nterminer version\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkosiec%2Fterminer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkosiec%2Fterminer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkosiec%2Fterminer/lists"}