{"id":24070954,"url":"https://github.com/dreadnode/cli","last_synced_at":"2025-04-28T12:24:22.841Z","repository":{"id":271423075,"uuid":"863839576","full_name":"dreadnode/cli","owner":"dreadnode","description":"Dreadnode CLI","archived":false,"fork":false,"pushed_at":"2025-03-05T19:07:50.000Z","size":286,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T12:30:54.795Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dreadnode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-27T02:31:49.000Z","updated_at":"2025-03-01T03:28:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"ebdefba6-453e-49b6-8a92-e085736ccf72","html_url":"https://github.com/dreadnode/cli","commit_stats":null,"previous_names":["dreadnode/cli"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreadnode%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreadnode%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreadnode%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dreadnode%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dreadnode","download_url":"https://codeload.github.com/dreadnode/cli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251312071,"owners_count":21569157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-09T16:23:30.266Z","updated_at":"2025-04-28T12:24:22.835Z","avatar_url":"https://github.com/dreadnode.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n    \u003cimg\n    src=\"https://d1lppblt9t2x15.cloudfront.net/logos/5714928f3cdc09503751580cffbe8d02.png\"\n    alt=\"Logo\"\n    align=\"center\"\n    width=\"144px\"\n    height=\"144px\"\n    /\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\nDreadnode command line interface\n\u003c/h3\u003e\n\n\u003ch4 align=\"center\"\u003e\n    \u003ca href=\"https://pypi.org/project/dreadnode-cli/\" target=\"_blank\"\u003e\n        \u003cimg alt=\"PyPI - Python Version\" src=\"https://img.shields.io/pypi/pyversions/dreadnode-cli\"\u003e\n        \u003cimg alt=\"PyPI - Version\" src=\"https://img.shields.io/pypi/v/dreadnode-cli\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://hub.docker.com/r/dreadnode/cli\"\u003e\n        \u003cimg alt=\"Docker Hub\" src=\"https://img.shields.io/docker/v/dreadnode/cli?logo=docker\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/dreadnode/cli/blob/main/LICENSE\" target=\"_blank\"\u003e\n        \u003cimg alt=\"GitHub License\" src=\"https://img.shields.io/github/license/dreadnode/cli\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/dreadnode/cli/actions/workflows/ci.yml\"\u003e\n        \u003cimg alt=\"GitHub Actions Workflow Status\" src=\"https://github.com/dreadnode/cli/actions/workflows/ci.yml/badge.svg\"\u003e\n    \u003c/a\u003e\n\u003c/h4\u003e\n\n\u003c/br\u003e\n\n## Installing\n\n### From PyPi\n\n```bash\npip install dreadnode-cli\n```\n\nTo upgrade the CLI to the latest version, run:\n\n```bash\npip install --upgrade dreadnode-cli\n```\n\nTo uninstall the CLI, run:\n\n```bash\npip uninstall dreadnode-cli\n```\n\n\u003e [!IMPORTANT]  \n\u003e The data folder with authentication credentials is located at `~/.dreadnode` and will not be automatically removed when uninstalling the CLI. \n\n### From Docker Hub\n\nTo pull the latest CLI image from Docker Hub, run:\n\n```bash\ndocker pull dreadnode/dreadnode-cli\n```\n\nWhenever using the CLI from a docker container, remember to share your user configuration, the network from the host and mount the docker socket:\n\n```bash\ndocker run -it \\\n    --net=host \\\n    -v/var/run/docker.sock:/var/run/docker.sock \\\n    -v$HOME/.dreadnode:/root/.dreadnode \\\n    dreadnode --help\n```\n\nOptionally, you can create a bash alias like so:\n\n```bash\nalias dreadnode='docker run -it --net=host -v/var/run/docker.sock:/var/run/docker.sock -v$HOME/.dreadnode:/root/.dreadnode dreadnode'\n```\n\n## Usage\n\n\u003e [!NOTE]\n\u003e For a full list of commands and options, see the [CLI.md](./CLI.md) file.\n\nHelp menu:\n\n```bash\ndreadnode --help\n```\n\nShow version:\n\n```bash\ndreadnode version\n```\n\nAuthenticate:\n\n```bash\ndreadnode login\n```\n\nAuthenticate to a specific server:\n\n```bash\ndreadnode login --server https://local-platform.dreadnode.io\n```\n\nManage server profiles with:\n\n```bash\n# list all profiles\ndreadnode profile list\n\n# switch to a named profile\ndreadnode profile switch \u003cprofile_name\u003e\n\n# remove a profile\ndreadnode profile forget \u003cprofile_name\u003e\n```\n\nInteract with the Crucible challenges:\n\n```bash\n# list all challenges\ndreadnode challenge list\n\n# download an artifact\ndreadnode challenge artifact \u003cchallenge_id\u003e \u003cartifact_name\u003e -o \u003coutput_path\u003e\n\n# submit a flag\ndreadnode challenge submit-flag \u003cchallenge_id\u003e 'gAAAAA...'\n```\n\nInteract with Strike agents:\n\n```bash\n# list all strikes\ndreadnode agent strikes\n\n# list all available templates with their descriptions\ndreadnode agent templates show\n\n# install a template pack from a github repository\ndreadnode agent templates install dreadnode/basic-templates\n\n# initialize a new agent in the current directory\ndreadnode agent init -t \u003ctemplate_name\u003e \u003cstrike_id\u003e \n\n# initialize a new agent in the specified directory\ndreadnode agent init -t \u003ctemplate_name\u003e \u003cstrike_id\u003e --dir \u003cdirectory\u003e\n\n# initialize a new agent using a custom template from a github repository\ndreadnode agent init -s username/repository \u003cstrike_id\u003e\n\n# initialize a new agent using a custom template from a github branch/tag\ndreadnode agent init -s username/repository@custom-feature \u003cstrike_id\u003e\n\n# initialize a new agent using a custom template from a ZIP archive URL\ndreadnode agent init -s https://example.com/template-archive.zip \u003cstrike_id\u003e\n\n# push a new version of the agent\ndreadnode agent push\n\n# start a new run using the latest agent version.\ndreadnode agent deploy\n\n# start a new run using the latest agent version with custom environment variables\ndreadnode agent deploy --env-var TEST_ENV=test --env-var ANOTHER_ENV=another_value\n\n# start a new run using the latest agent version with custom parameters (using toml syntax)\ndreadnode agent deploy --param \"foo = 'bar'\" --param \"baz = 123.0\"\n\n# start a new run using the latest agent version with custom parameters from a toml file\ndreadnode agent deploy --param @parameters.toml\n\n# start a new run using the latest agent version and override the container command\ndreadnode agent deploy --command \"echo 'Hello, world!'\"\n\n# show the latest run of the currently active agent\ndreadnode agent latest\n\n# list all available links\ndreadnode agent links\n\n# list available models for the current strike\ndreadnode agent models\n\n# list all runs for the currently active agent  \ndreadnode agent runs\n\n# show the status of the currently active agent\ndreadnode agent show\n\n# list historical versions of this agent\ndreadnode agent versions\n\n# switch/link to a different agent\ndreadnode agent switch \u003cagent_id\u003e\n```\n\n## Development\n\n### Poetry Shell\n\nThis project uses the [Poetry package management tool](https://python-poetry.org/), to install from source run the following commands:\n\n```bash\ngit clone https://github.com/dreadnode/cli.git\ncd cli\npoetry install\n```\n\nYou can then enter the project's virtual environment:\n\n```bash\npoetry shell\n```\n\n### Building the Docker Image\n\nAlternatively, you can build a docker image and run the CLI from a container:\n\n```bash\ngit clone https://github.com/dreadnode/cli.git\ncd cli\ndocker build -t dreadnode .\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdreadnode%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdreadnode%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdreadnode%2Fcli/lists"}