Skip to content

koki-develop/clive

Repository files navigation

Automates terminal operations.

GitHub release (latest by date) GitHub all releases GitHub Workflow Status Go Report Card Codecov

cLive

ℹ️ Prerequisite

cLive requires ttyd (version 1.7.4 or higher) to be installed.
For example, if you are using homebrew, you can install it with brew install.

$ brew install ttyd

See the ttyd documentation for more information.

⚡ Installation

Note

There are prerequisites for using cLive. See Prerequisite for details.

Homebrew

$ brew install clive

Homebrew Tap

$ brew install koki-develop/tap/clive

go install

$ go install github.com/koki-develop/clive@latest

Releases

Download the binary from the releases page.

🔰 Getting Started

First, run clive init.

$ clive init
Created ./clive.yml

A file named clive.yml will then be created with the following contents:

# documentation: https://github.com/koki-develop/clive#settings
settings:
  loginCommand: ["bash", "--login"]
  fontSize: 22
  defaultSpeed: 10

# documentation: https://github.com/koki-develop/clive#actions
actions:
  - pause
  - type: echo 'Welcome to cLive!'
  - key: enter

Finally, run clive start to launch the browser and start cLive.

$ clive start

🚀 Commands

Available commands:

  • init - Create a config file.
  • start - Start cLive actions.
  • validate - Validate a config file.
  • completion - Generate the autocompletion script for the specified shell.

clive init

Create a config file.

$ clive init
Flag Default Description
-c, --config ./clive.yml Config file name.

clive start

Start cLive actions. See Configuration for the config file.

$ clive start
Flag Default Description
-c, --config ./clive.yml Config file name.

clive validate

Validate a config file.

$ clive validate
Flag Default Description
-c, --config ./clive.yml Config file name.

clive completion

Generate the autocompletion script for clive for the specified shell.
See each sub-command's help for details on how to use the generated script.

$ clive completion <shell>

# e.g.
$ clive completion bash
$ clive completion bash --help

Available shells:

  • bash
  • fish
  • powershell
  • zsh

⚙️ Configuration

The config file consists of actions and settings.

  • settings - Basic settings (font size, default speed, etc.) .
  • actions - Actions to run.

settings

Basic settings.
Available settings:

loginCommand

Login command and args.
Default: ["bash", "--login"].

# e.g.
settings:
  loginCommand: ["zsh", "--login"]

fontSize

Font size.
Default: 22

# e.g.
settings:
  fontSize: 36

fontFamily

Font family.

# e.g.
settings:
  fontFamily: monospace

defaultSpeed

Default interval between key typing.
Default: 10

# e.g.
settings:
  defaultSpeed: 100

skipPauseBeforeQuit

Whether to skip pausing before quitting.
Default: false

# e.g.
settings:
  skipPauseBeforeQuit: true

screenshotsDir

Directory to save screenshots.
Default: screenshots

# e.g.
settings:
  screenshotsDir: path/to/pictures

browserBin

Path to an executable browser binary.
See the go-rod documentation for supported browsers.

# e.g.
settings:
  browserBin: /Applications/Vivaldi.app/Contents/MacOS/Vivaldi # use Vivaldi

headless

Whether to run the browser in headless mode.
Default: false

# e.g.
settings:
  headless: true

width

Window width.

# e.g.
settings:
  width: 1600

height

Window height.

# e.g.
settings:
  height: 800

actions

Actions to run.
Available actions:

  • type - Type characters.
  • key - Enter special keys.
  • ctrl - Press the Ctrl key with other keys.
  • sleep - Sleep for a specified number of milliseconds.
  • pause - Pause actions.
  • screenshot - Take a screenshot.

type

Type characters.

Field Required Default Description
type Yes N/A Characters to type.
count No 1 Number of times to repeat the action.
speed No 10 Interval between key typing (milliseconds).
# e.g.
actions:
  - type: echo 'Hello World'
    count: 10 # Optional
    speed: 100 # Optional

key

Enter special keys.
Available keys:

  • esc
  • backspace
  • tab
  • enter
  • left
  • up
  • right
  • down
  • space
Field Required Default Description
key Yes N/A Special key to type.
count No 1 Number of times to repeat the action.
speed No 10 Interval between key typing (milliseconds).
# e.g.
actions:
  - key: enter
    count: 10 # Optional
    speed: 100 # Optional

ctrl

Press the Ctrl key with other keys.

Field Required Default Description
ctrl Yes N/A Characters to enter with the ctrl key.
count No 1 Number of times to repeat the action.
speed No 10 Interval between key typing (milliseconds).
# e.g.
actions:
  - ctrl: c # Ctrl+c
    count: 10 # Optional
    speed: 100 # Optional

sleep

Sleep for a specified number of milliseconds.

Field Required Default Description
sleep Yes N/A Time to sleep (milliseconds).
# e.g.
actions:
  - sleep: 3000 # Sleep for 3 seconds.

pause

Pause actions.
Press enter to continue.

# e.g.
actions:
  - pause

screenshot

Take a screenshot.
Screenshots are saved in screenshots/.
The directory to save the screenshots can be changed in settings.screenshotsDir.

Field Required Default Description
screenshot No <ACTION_INDEX>_<yyyymmddHHMMSS>.png File name of the screenshot.
# e.g.
actions:
  - screenshot
  - screenshot: foobar.png # Optional

📖 Examples

For more examples see the examples/ directory.

☕ Buy me a coffee

If you like this project, please consider buying me a coffee.

Buy Me A Coffee

📝 License

MIT License

About

⚡ Automates terminal operations.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Languages