Skip to content

dreadnode/cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

571f99c · Feb 26, 2025
Jan 7, 2025
Nov 20, 2024
Feb 26, 2025
Oct 11, 2024
Jan 21, 2025
Feb 11, 2025
Nov 5, 2024
Dec 2, 2024
Feb 25, 2025
Feb 11, 2025
Feb 26, 2025

Repository files navigation

Logo

Dreadnode command line interface


Installing

From PyPi

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.

From Docker Hub

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'

Usage

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://local-platform.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

# start a new run using the latest agent version with custom environment variables
dreadnode agent deploy --env-var TEST_ENV=test --env-var ANOTHER_ENV=another_value

# start a new run using the latest agent version with custom parameters (using toml syntax)
dreadnode agent deploy --param "foo = 'bar'" --param "baz = 123.0"

# start a new run using the latest agent version with custom parameters from a toml file
dreadnode agent deploy --param @parameters.toml

# start a new run using the latest agent version and override the container command
dreadnode agent deploy --command "echo 'Hello, world!'"

# 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>

Development

Poetry Shell

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

Building the Docker Image

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 .