Automates terminal operations.
ℹ️ 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.
See the ttyd documentation for more information.
⚡ Installation
Note
There are prerequisites for using cLive. See Prerequisite for details.
Homebrew Tap (Recommended)
$ brew install koki-develop/tap/clive
Homebrew
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.
🚀 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.
| Flag | Default | Description |
|---|---|---|
-c, --config |
./clive.yml |
Config file name. |
clive start
Start cLive actions.
See Configuration for the config file.
| Flag | Default | Description |
|---|---|---|
-c, --config |
./clive.yml |
Config file name. |
clive validate
Validate a config file.
| 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.
Available settings:
loginCommand- Login command and args.fontSize- Font size.fontFamily- Font family.defaultSpeed- Default interval between key typing.skipPauseBeforeQuit- Whether to skip pausing before quitting.screenshotsDir- Directory to save screenshots.browserBin- Path to an executable browser binary.headless- Whether to run the browser in headless mode.width- Window width.height- Window height.
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:
escbackspacetabenterleftuprightdownspace
| 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.
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.

