Skip to main content

Dreadnode CLI

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

Logo

Dreadnode command line interface

PyPI - Python Version PyPI - Version Docker Hub GitHub License GitHub Actions Workflow Status


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://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

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dreadnode_cli-0.2.0.tar.gz (39.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dreadnode_cli-0.2.0-py3-none-any.whl (50.4 kB view details)

Uploaded Python 3

File details

Details for the file dreadnode_cli-0.2.0.tar.gz.

File metadata

  • Download URL: dreadnode_cli-0.2.0.tar.gz
  • Upload date:
  • Size: 39.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for dreadnode_cli-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d399a361d63c40db4020efea294c74f8fcd8da4d89507f881dd75cca1162b0ee
MD5 8d5d4443158b5b4c242f3d6fdc6dac08
BLAKE2b-256 ef1d5bd6625630a523e5e73a7f962d05ec82f3b172e0e00974d088d3570f8dd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for dreadnode_cli-0.2.0.tar.gz:

Publisher: publish.yml on dreadnode/cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dreadnode_cli-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: dreadnode_cli-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 50.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for dreadnode_cli-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d527e864cd71551552ecb529ee4765f4662946c1f0e039ffcccd34282dec1c0c
MD5 b42087eb948abb56f11c9d934474f3ba
BLAKE2b-256 3af8394bbd2f7a5d90677373714b6553171f90cbdf3e72307718ff53729f67e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for dreadnode_cli-0.2.0-py3-none-any.whl:

Publisher: publish.yml on dreadnode/cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page