Getting Started
Get up and running with biwa in minutes.
Windows Not Supported
biwa does not run natively on Windows. Please use WSL2 (Windows Subsystem for Linux). All features work seamlessly inside WSL2.
Installation
Via mise (Recommended)
First, install mise if you haven't already. Then:
# Install biwa
mise use -g github:risu729/biwa
# Verify installation
biwa --versionVia Cargo
If you have Rust installed, you can install biwa directly from crates.io:
cargo install biwaFrom Release Assets (Binary)
Download the latest release for your platform from the Releases page.
From Source
For the latest development version:
git clone https://github.com/risu729/biwa.git
cd biwa
cargo install --path .Configuration
Initialize Configuration
Run the initialization command to create a configuration file:
biwa initThis creates a biwa.toml file in your project directory with default settings.
Basic Configuration
Edit the generated configuration file to add your CSE server details:
[ssh]
host = "cse.unsw.edu.au"
user = "z5555555" # Your zID
port = 22
# Path to your SSH private key (optional, uses default if not specified)
# key_path = "~/.ssh/id_ed25519"SSH Key Authentication
SSH key authentication is recommended over password authentication. See the SSH Key Setup guide for instructions.
First Run
Test your configuration:
# Run a simple command remotely
biwa run echo "Hello from CSE!"
# Run course-specific commands
biwa run 1511 autotest lab01
biwa run give cs1521 lab02TIP
If you're in a project directory, biwa will automatically sync your local files to the remote server before executing commands.
Piping Input
biwa run forwards redirected local stdin to the remote command, so piping works as expected:
printf 'Hello from stdin\n' | biwa run --skip-sync catCurrent Limitation
biwa run forwards both redirected stdin and interactive terminal stdin. When your local stdin is a TTY, biwa also requests a remote PTY so simple interactive commands work without waiting for local EOF.
Interactive support is still partial, though: biwa does not currently provide full terminal emulation such as raw mode, window resize propagation, or signal forwarding like Ctrl-C. For complex full-screen or highly interactive programs, use ssh directly for the most reliable behavior.
Log Output
By default, biwa shows internal logs (connection status, etc.) alongside remote command output. You can control this:
# Suppress biwa logs, only show remote output
biwa -q run echo "Hello"
# Suppress all output (including remote stdout/stderr)
biwa -s run echo "Hello"
# Increase verbosity for debugging
biwa -vv run echo "Hello"You can also set BIWA_LOG_QUIET=true or BIWA_LOG_SILENT=true in the environment for the same behavior.
Next Steps
- Read about Configuration options
- Learn how env forwarding works in Environment Variables
- Set up SSH Key Authentication
- Check About biwa
- Explore advanced features like hooks and mise integration