
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
csle-cli
The command-line-interface (CLI) tool for CSLE.
csle-base
csle-common
csle-cluster
csle-collector
csle-attacker
csle-defender
csle-system-identification
gym-csle-stopping-game
gym-csle-apt-game
gym-csle-cyborg
csle-tolerance
gym-csle-intrusion-response-game
csle-agents
flake8
(for linting)flake8-rst-docstrings
(for linting docstrings)tox
(for automated testing)mypy
(for static typing)mypy-extensions
(for static typing)mypy-protobuf
(for static typing)types-PyYaml
(for static typing)types-paramiko
(for static typing)types-protobuf
(for static typing)types-requests
(for static typing)types-urllib3
(for static typing)sphinx
(for API documentation)sphinxcontrib-napoleon
(for API documentation)sphinx-rtd-theme
(for API documentation)pytest-mock
(for mocking tests)pytest-grpc
(for grpc tests)To see the available commands, run:
csle --help
Examples:
csle init
csle ls --all
csle ls containers --all
csle ls containers
csle ls emulations --all
csle ls emulations
csle ls <name>
csle start | stop | clean <name>
csle shell <container-name>
csle rm <container-name> | <network-name> | <image-name> | <emulation-name> all
csle install emulations | simulations | derived_images | base_images | <emulation_name> | <simulation_name> | <derived_image_name> | <base_image_name> | metastore | all
csle uninstall emulations | simulations | derived_images | base_images | <emulation_name> | <simulation_name> | <derived_image_name> | <base_image_name> | metastore | all
csle trainingjob <id>
csle systemidentificationjob <id>
csle datacollectionjob <id>
csle start flask
csle start | stop grafana
csle start | stop prometheus
csle start | stop cadvisor
csle start | stop nodeexporter
csle start | stop hostmanagers
csle start | stop hostmanager
csle start | stop clientmanager
csle start | stop snortmanagers
csle start | stop snortmanager
csle start | stop elkmanager
csle start | stop trafficmanagers
csle start | stop trafficmanager
csle start | stop kafkamanager
csle start | stop ossecmanagers
csle start | stop ossecmanager
csle start | stop ryumanager
csle start | stop filebeats
csle start | stop filebeat
csle start | stop metricbeats
csle start | stop metricbeat
csle start | stop heartbeats
csle start | stop heartbeat
csle start | stop packetbeats
csle start | stop packetbeat
command | description | argument 1 | argument 2 | argument 3 | argument 4 | argument 5 | argument 6 | flags |
---|---|---|---|---|---|---|---|---|
attacker | Opens an attacker shell in the given emulation execution | emulation_name | execution_id | |||||
clean | Removes a container, a network, an image, all networks, all images, all containers, all traces, or all statistics | all ,containers ,emulations ,emulation_traces ,simulation_traces ,emulation_statistics ,emulation_executions ,name | execution_id | |||||
em | Extracts status information of a given emulation | emulation_name | --host (check status of host managers), --stats (check status of Docker stats manager), --kafka (check status of kafka), --snortids (check status of the Snort IDS), --clients (check status of client population) --executions (check status of executions) | |||||
init | Initializes CSLE and sets up management accounts | |||||||
install | Installs emulations and simulations in the metastore and creates Docker images | emulations , simulations , emulation_name , simulation_name , derived_images , base_images , metastore , all | ||||||
ls | Lists the set of containers, networks, images, or emulations, or all | containers , networks , images , emulations , all , environments , prometheus , node_exporter , cadvisor , statsmanager , managementsystem , simulations , emulation_executions , hostmanagers , clientmanager , snortmanagers , elkmanager , trafficmanagers , kafkamanager , ossecmanagers , ryumanager , filebeats , metricbeats , heartbeats , packetbeats , logfiles , logfile , emulation_description | --all (list extended information), --running (list running entities only (default)), --stopped (list stopped entities only) | |||||
rm | Removes a container, a network, an image, all networks, all images, or all containers | network_name , container_name , image_name , networks , images , containers | ||||||
shell | Command for opening a shell inside a running container | container_name | ||||||
start | Starts an entity, e.g. a container or the management system | prometheus , node_exporter , grafana , cadvisor , flask , nginx , docker , postgresql , container_name , emulation_name , all , statsmanager , training_job , system_id_job , image , hostmanagers , hostmanager , clientmanager , snortmanagers , snortmanager , elkmanager , trafficmanagers , trafficmanager , kafkamanager , ossecmanagers , ossecmanager , ryumanager , filebeats , filebeat , metricbeats , metricbeat , heartbeats , heartbeat , packetbeats , packetbeat | container_name (if the first argument corresponds to a container image), | --id (execution id), --no_clients (skip starting client population), --no_traffic (skip starting traffic generators), --no_beats (skip starting/configuring beats), --no_network (skip creating virtual networks) --ip (to start a service on a specific node) | ||||
start_traffic | Starts the traffic and client population on a given emulation | emulation_name | execution_id | --mu (the mu paramter for the service time of the client arrivals), --lamb (the lambda parameter of the client arrival process), --t (time-step length to measure the arrival process), --nc (number of commands per client), --tsf (the time scaling factor for non-stationary Poisson processes),--psf (the period scaling factor for non-stationary Poisson processes) | ||||
statsmanager | Starts the statsmanager locally | port | log_dir | log_file | max_workers | |||
stop | Stops an entity, e.g. an emulation execution or a container | emulation_name , prometheus , node_exporter , cadvisor , grafana , flask , nginx , docker , postgresql , container_name , statsmanager , emulation_executions , all , hostmanagers , hostmanager , clientmanager , snortmanagers , snortmanager , elkmanager , trafficmanagers , trafficmanager , kafkamanager , ossecmanagers , ossecmanager , ryumanager , filebeats , filebeat , metricbeats , metricbeat , heartbeats , heartbeat , packetbeats , packetbeat | execution_id | --ip (to stop a service on a specific node) | ||||
stop_traffic | Stops the traffic and client population on a given emulation | emulation_name | execution_id | |||||
systemidentificationjob | Starts a systemidentification job with the given id | job_id | ||||||
trainingjob | Starts a training job with the given id | job_id | ||||||
datacollectionjob | Starts a data collection job with the given id | job_id | ||||||
uninstall | Uninstall emulations and simulations from the metastore and removes Docker images | emulations , simulations , emulation_name , simulation_name , derived_images , base_images , metastore , all |
click>=8.0.0
csle-common
csle-cluster
csle-collector
csle-attacker
csle-defender
csle-system-identification
gym-csle-stopping-game
csle-agents
flake8
(for linting)tox
(for automated testing)pytest
(for unit tests)pytest-cov
(for unit test coverage)mypy
(for static typing)sphinx
(for API documentation)sphinxcontrib-napoleon
(for API documentation)sphinx-rtd-theme
(for API documentation)# install from pip
pip install csle-cli==<version>
# local install from source
$ pip install -e csle-cli
# or (equivalently):
make install
# force upgrade deps
$ pip install -e csle-cli --upgrade
# git clone and install from source
git clone https://github.com/Limmen/csle
cd csle-cli
pip3 install -e .
# Install development dependencies
$ pip install -r requirements_dev.txt
Install all development tools at once:
make install_dev
or
pip install -r requirements_dev.txt
The latest documentation is available at https://limmen.dev/csle/docs
To run the Python linter, execute the following command:
flake8 .
# or (equivalently):
make lint
To run the mypy type checker, execute the following command:
mypy .
# or (equivalently):
make types
To run the integration tests, execute the following command:
pytest
# or (equivalently):
make unit_tests
To generate a coverage report, execute the following command:
pytest --cov=csle_cli
To run tests and code analysis in different python environemnts, execute the following command:
tox
# or (equivalently):
make tests
First build the package by executing:
python3 -m build
# or (equivalently)
make build
After running the command above, the built package is available at ./dist
.
Push the built package to PyPi by running:
python3 -m twine upload dist/*
# or (equivalently)
make push
To run all commands for the release at once, execute:
make release
Kim Hammar kimham@kth.se
Creative Commons
(C) 2020-2025, Kim Hammar
FAQs
CLI tool for CSLE
We found that csle-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.