Skip to content

koki-develop/clive

Repository files navigation

Automates terminal operations.

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

English | 日本語

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.

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

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

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/Sidekick.app/Contents/MacOS/Sidekick # use Sidekick

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

📖 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