Docs/Reference

CLI

zurafa is the command-line interface to the Zurafa daemon. It is starting as a small administrative and automation surface for sessions, tabs, and panes.

Try it

From a checkout, build the Rust workspace and run the CLI:

cd rust
cargo build
cargo run -p zurafa-cli -- ls
cargo run -p zurafa-cli -- session inspect default

Bundled app builds also include the executable at Zurafa.app/Contents/Resources/zurafa. On first launch Zurafa offers to install it as /usr/local/bin/zurafa so you can run zurafa from any terminal; macOS may ask for your password.

Commands

zurafa ls                         # list sessions
zurafa session inspect            # inspect the current or default session
zurafa pane inspect               # inspect the current pane inside a Zurafa terminal
zurafa tab new --label Build      # create a new tab in the current session
zurafa split --axis vertical      # split the current pane
zurafa preview README.md          # open a file in the preview beside the current pane

Run zurafa help for the full command list.

Taxonomy

Zurafa's public UI uses these names:

  • A session is a workspace.
  • A tab is a window inside a session.
  • A pane is one terminal block inside a tab.
  • A client is a program connected to the daemon, such as the macOS app or CLI.

The daemon protocol still uses the lower-level terms window and block. The CLI accepts both pane and block where that is useful.

Command targets

Inside terminals created by Zurafa, the daemon sets context variables so commands can target the current session and pane by default:

VariableHolds
ZURAFA_SOCKETThe daemon Unix socket path
ZURAFA_SESSIONThe current session ID
ZURAFA_PANEThe current pane ID
ZURAFA_BLOCKCompatibility alias for the current pane ID

Outside a Zurafa terminal, commands default to the standard daemon socket and the default session. Use flags when you want another target:

OptionChooses
--socket PATHA daemon socket path
-s, --sessionA session
-b, --pane, --blockA pane/block
--axis horizontal or --axis verticalSplit direction

Targets match in this order: full ID, case-insensitive label, one-based position, or an ID suffix of at least four characters. If a target is missing or ambiguous, the CLI exits without changing anything.

zurafa session inspect 1
zurafa session inspect Workspace
zurafa split -s default -b t1 --axis horizontal

Machine-readable output

Most read commands print a table or summary for humans. Pass --json to get stable JSON from daemon snapshots:

zurafa --json ls
zurafa --json session inspect default
zurafa --json pane inspect t1

Exit statuses follow the first CLI implementation:

StatusMeaning
0The command succeeded
1The daemon returned an operation error
2The command line was invalid
3A target was not found or was ambiguous
4The daemon could not be reached