A command-line interface (CLI) helper for the Jean Zay SLURM cluster at IDRIS.
This typer-based CLI simplifies common tasks such as syncing files, managing SSH connections, and interacting with the SLURM scheduler and IDRIS-specific commands.
- File Synchronization: Sync your local project directory with the Jean Zay cluster using
rsync. - Persistent SSH Connections: Maintain a persistent SSH connection for faster access and command execution.
- SCRATCH Timestamp Renewal: Refresh timestamps under your remote
$SCRATCH. - SLURM Job Management: View your job queue and cancel jobs.
- IDRIS Resource Management: Check your resource allocations, project status, and disk quotas.
-
Install the dependencies:
Install with uv (recommended; installs it in an isolated environment).
uv tool install --python 3.12 git+https://github.com/alex-bene/jz-cli/
or with pip
pip install git+https://github.com/alex-bene/jz-cli/
-
Run the setup:
jz setup
This will prompt you for your Jean Zay username, which is required for all remote operations.
The jz CLI has several subcommands, each with its own set of options.
Sync a local directory to the Jean Zay cluster.
# Sync the current directory
jz sync
# Sync a specific directory
jz sync /path/to/your/project
# Exclude certain files or directories
jz sync -e ".env" -e "data/"
# See more options
jz sync --helpManage the persistent SSH connection.
# Start the master connection
jz ssh start
# Check the status of the connection
jz ssh status
# Run a command on the remote server
jz ssh run "ls -l"
# Stop the master connection
jz ssh stopRefresh timestamps under your remote $SCRATCH.
# Run one immediate renewal
jz scratch renewjz scratch renew connects over SSH, verifies that $SCRATCH is set and points to a remote directory, then runs touch -c on each file and directory below it.
Interact with the SLURM scheduler.
# Show your job queue
jz slurm queue
# Cancel a specific job
jz slurm cancel 12345
# Cancel all your jobs
jz slurm cancel --allUse IDRIS-specific commands.
# Check your resource allocations
jz idris allocations
# View your projects
jz idris projects
# Check your resource consumption
jz idris consumption
# Check your disk quota
jz idris disk-quotaManage the CLI configuration.
# Show the current configuration
jz config show
# Show or set your remote username
jz config remote-user
jz config remote-user --set my-new-usernameTo contribute to this project, please ensure you have uv installed.
-
Clone the repository:
git clone https://github.com/alex-bene/jz-cli.git cd jz-cli -
Install dependencies and pre-commit hooks:
uv sync uv run pre-commit install
-
Run checks manually (optional):
uv run ruff check uv run ruff format
This project uses Ruff for linting and formatting. We use pre-commit hooks to ensure code quality.
- Local: Hooks run before every commit (requires
pre-commit install). - GitHub Actions: Runs on every push to auto-fix issues on all branches.
- pre-commit.ci: Runs on every push to check code quality (fixes are handled by the GitHub Action).
This project is licensed under the MIT License.