Automates terminal operations and lets you view them live via a browser.
English | 日本語
cLive requires ttyd 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.
Note There are prerequisites for using cLive. See
Prerequisite
for details.
If you are using homebrew, you can install cLive with brew install
.
$ brew install koki-develop/tap/clive
It can also be installed using go install
.
$ go install github.com/koki-develop/clive@latest
Or download the binary from the releases page.
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
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.
Create a config file.
$ clive init
Flag | Default | Description |
---|---|---|
-c , --config |
./clive.yml |
Config file name. |
Start cLive actions.
See Configuration
for the config file.
$ clive start
Flag | Default | Description |
---|---|---|
-c , --config |
./clive.yml |
Config file name. |
Validate a config file.
$ clive validate
Flag | Default | Description |
---|---|---|
-c , --config |
./clive.yml |
Config file name. |
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
The config file consists of actions
and settings
.
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 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
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
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 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 actions.
Press enter to continue.
# e.g.
actions:
- pause
Take a screenshot.
Screenshots you take are saved in screenshots/
.
# e.g.
actions:
- screenshot
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.browserBin
- Path to an executable browser binary.headless
- Whether to run the browser in headless mode.width
- Window width.height
- Window height.
Login command and args.
Default: ["bash", "--login"]
.
# e.g.
settings:
loginCommand: ["zsh", "--login"]
Font size.
Default: 22
# e.g.
settings:
fontSize: 36
Font family.
# e.g.
settings:
fontFamily: monospace
Default interval between key typing.
Default: 10
# e.g.
settings:
defaultSpeed: 100
Whether to skip pausing before quitting.
Default: false
# e.g.
settings:
skipPauseBeforeQuit: true
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
Whether to run the browser in headless mode.
Default: false
# e.g.
settings:
headless: true
Window width.
# e.g.
settings:
width: 1600
Window height.
# e.g.
settings:
height: 800
For more examples see the examples/
directory.