pip install dreadnode-cli
To upgrade the CLI to the latest version, run:
pip install --upgrade dreadnode-cli
To uninstall the CLI, run:
pip uninstall dreadnode-cli
Important
The data folder with authentication credentials is located at ~/.dreadnode
and will not be automatically removed when uninstalling the CLI.
To pull the latest CLI image from Docker Hub, run:
docker pull dreadnode/dreadnode-cli
Whenever using the CLI from a docker container, remember to share your user configuration, the network from the host and mount the docker socket:
docker run -it \
--net=host \
-v/var/run/docker.sock:/var/run/docker.sock \
-v$HOME/.dreadnode:/root/.dreadnode \
dreadnode --help
Optionally, you can create a bash alias like so:
alias dreadnode='docker run -it --net=host -v/var/run/docker.sock:/var/run/docker.sock -v$HOME/.dreadnode:/root/.dreadnode dreadnode'
Note
For a full list of commands and options, see the CLI.md file.
Help menu:
dreadnode --help
Show version:
dreadnode version
Authenticate:
dreadnode login
Authenticate to a specific server:
dreadnode login --server https://dev-crucible.dreadnode.io
Manage server profiles with:
# list all profiles
dreadnode profile list
# switch to a named profile
dreadnode profile switch <profile_name>
# remove a profile
dreadnode profile forget <profile_name>
Interact with the Crucible challenges:
# list all challenges
dreadnode challenge list
# download an artifact
dreadnode challenge artifact <challenge_id> <artifact_name> -o <output_path>
# submit a flag
dreadnode challenge submit-flag <challenge_id> 'gAAAAA...'
Interact with Strike agents:
# list all strikes
dreadnode agent strikes
# list all available templates with their descriptions
dreadnode agent templates show
# install a template pack from a github repository
dreadnode agent templates install dreadnode/basic-templates
# initialize a new agent in the current directory
dreadnode agent init -t <template_name> <strike_id>
# initialize a new agent in the specified directory
dreadnode agent init -t <template_name> <strike_id> --dir <directory>
# initialize a new agent using a custom template from a github repository
dreadnode agent init -s username/repository <strike_id>
# initialize a new agent using a custom template from a github branch/tag
dreadnode agent init -s username/repository@custom-feature <strike_id>
# initialize a new agent using a custom template from a ZIP archive URL
dreadnode agent init -s https://example.com/template-archive.zip <strike_id>
# push a new version of the agent
dreadnode agent push
# start a new run using the latest agent version.
dreadnode agent deploy
# show the latest run of the currently active agent
dreadnode agent latest
# list all available links
dreadnode agent links
# list available models for the current strike
dreadnode agent models
# list all runs for the currently active agent
dreadnode agent runs
# show the status of the currently active agent
dreadnode agent show
# list historical versions of this agent
dreadnode agent versions
# switch/link to a different agent
dreadnode agent switch <agent_id>
This project uses the Poetry package management tool, to install from source run the following commands:
git clone https://github.com/dreadnode/cli.git
cd cli
poetry install
You can then enter the project's virtual environment:
poetry shell
Alternatively, you can build a docker image and run the CLI from a container:
git clone https://github.com/dreadnode/cli.git
cd cli
docker build -t dreadnode .