# knife deps

The knife deps subcommand is used to identify dependencies for a node, role, or cookbook.

## Syntax

This argument has the following syntax:

    $ knife deps (options)

## Options

Note

Review the list of common options available to this (and all) Knife subcommands and plugins.

This subcommand has the following options:

`--chef-repo-path PATH`
  The path to the chef-repo. This setting will override the default path to the chef-repo. Default: same as specified by `chef_repo_path` in config.rb.
`--concurrency`
  The number of allowed concurrent connections. Default: `10`.
`--[no-]recurse`
  Use `--recurse` to list dependencies recursively. This option can only be used when `--tree` is set to `true`. Default: `--no-recurse`.
`--remote`
  Indicates that dependencies will be determined from objects located on the server instead of the local chef-repo. Default: `false`.
`--repo-mode MODE`
  The layout of the local chef-repo. Possible values: `static`, `everything`, or `hosted_everything`. Use `static` for just roles, environments, cookbooks, and data bags. By default, `everything` and `hosted_everything` are dynamically selected depending on the server type. Default: `everything` / `hosted_everything`.
`--tree`
  Indicates that dependencies are shown in a visual tree structure (including duplicates, if they exist). Default: `false`.

## Examples

The following examples show how to use this Knife subcommand:

Find dependencies for a node

    $ knife deps nodes/node_name.json

Find dependencies for a role

    $ knife deps roles/role_name.json

Find dependencies for a cookbook

    $ knife deps cookbooks/cookbook_name.json

Find dependencies for an environment

    $ knife deps environments/environment_name.json

Find dependencies for a combination of nodes, roles, and so on

To find the dependencies for a combination of nodes, cookbooks, roles, and/or environments:

    $ knife deps cookbooks/git.json cookbooks/github.json roles/base.json environments/desert.json nodes/mynode.json

Use a wildcard

A wildcard can be used to return all of the child nodes. For example, all of the environments:

    $ knife deps environments/*.json

Return as tree

Use the `--tree` option to view the results with structure:

    $ knife deps roles/webserver.json

to return something like:

    roles/webserver.json
      roles/base.json
        cookbooks/github
          cookbooks/git
        cookbooks/users
      cookbooks/apache2

Pass knife deps output to knife upload

The output of knife deps can be passed to knife upload:

    $ knife upload `knife deps nodes/*.json

Pass knife deps output to knife xargs

The output of knife deps can be passed to knife xargs:

    $ knife deps nodes/*.json | xargs knife upload