Skip to content

Commands

All the commands can be run in Shell Mode or Command Mode

Authentication

auth

Authenticate with your faraday server.

$ faraday-cli auth
Faraday url [http://localhost:5985]: http://localhost:5985
User: faraday
Password:
Saving config
✔ Authenticated with faraday: http://localhost:5985
Optional arguments:

Syntax Description
-f/--faraday-url FARADAY_URL url of your faraday server
-i/--ignore-ssl Ignore SSL certificate validation
-u/--user USER Faraday user
-p/--password PASSWORD Faraday password
-n/--name NAME Session name to save this connection as (default: the server host)

One active connection, multiple saved sessions

faraday-cli keeps one active connection at a time, but remembers the others as named sessions so you can switch instead of being logged in to two servers at once. Logging in with auth (and faradai register/login, which save a faradai-scan session) adds a session and makes it active.

auth list

List the saved connection sessions (the active one is marked). Session names default to user@host, so two users on the same server each get their own switchable session instead of overwriting each other.

$ faraday-cli auth list
  ID  ACTIVE    NAME                    KIND    SERVER                            USER             WORKSPACE
----  --------  ----------------------  ------  --------------------------------  ---------------  ----------------
   1  ✔         alice@corp.faradaysec   server  https://corp.faradaysec.com       alice            -
   2            bob@corp.faradaysec     server  https://corp.faradaysec.com       bob              ws_b
   3            faradai-scan            saas    https://scan.apps.faradaysec.com  you@corp.com     ext_corp_com

auth use

Switch the active connection to a saved session — by its ID number, its name, or its user/email. Every command (including pentest/triage/scanners) then uses it.

$ faraday-cli auth use 3                 # by ID
$ faraday-cli auth use faradai-scan      # by name
$ faraday-cli auth use you@corp.com      # by user/email (when unique)
Switched to 'faradai-scan' (https://scan.apps.faradaysec.com) — workspace ext_corp_com

auth rm

Remove a saved session (by ID, name or user; clears the active connection if it was the active one).

$ faraday-cli auth rm 3
$ faraday-cli auth rm faradai-scan

Faraday token expiration

You may want to change the faraday token expiration time, so you don't have to authenticate so often.

The default is 12 hours.

To do it change de value of api_token_expiration(expressed in seconds) in your faraday server.ini

status

Show the status of your current authentication — the connected Faraday server, your user, whether the token is valid, the active workspace, and versions.

$ faraday-cli status
FARADAY SERVER         IGNORE SSL    VERSION    USER     VALID TOKEN    WORKSPACE
---------------------  ------------  ---------  -------  -------------  -----------
http://localhost:5985  False         corp-3.14  faraday  ✔              test

If you also have a FaradAI-scan SaaS session stored, a second table shows it (server, user, token, ext_<domain> workspace):

FaradAI-scan (SaaS):
FARADAI-SCAN SERVER               USER                 VALID TOKEN    WORKSPACE
--------------------------------  -------------------  -------------  ----------------
https://scan.apps.faradaysec.com  you@corp.com         ✔              ext_corp_com

Optional Arguments:

Syntax Description
-p/--pretty Show table in a pretty format

Workspaces

workspace list

List workspaces created in faraday.

$ faraday-cli workspace list -p
+--------+---------+------------+---------+----------+----------+------------+
| NAME   |   HOSTS |   SERVICES | VULNS   | ACTIVE   | PUBLIC   | READONLY   |
|--------+---------+------------+---------+----------+----------+------------|
| test   |      13 |         13 | 39      | True     | False    | False      |
+--------+---------+------------+---------+----------+----------+------------+

Optional Arguments:

Syntax Description
-j/--json-output Show output in json
-p/--pretty Show table in a pretty format
--show-inactive Include inactive workspaces

workspace delete

Delete workspace from faraday.

$ faraday-cli workspace delete test
Deleting workspace: test
Deleted workspace: test

Required Arguments:

Syntax Description
WORKSPACE_NAME Workspace name

workspace get

Get details of a workspace.

$ faraday-cli workspace get -p test
+--------+----------+----------+------------+---------+------------+---------+
| NAME   | ACTIVE   | PUBLIC   | READONLY   |   HOSTS |   SERVICES |   VULNS |
|--------+----------+----------+------------+---------+------------+---------|
| test   | True     | False    | False      |      13 |         13 |      39 |
+--------+----------+----------+------------+---------+------------+---------+

Required Arguments:

Syntax Description
WORKSPACE_NAME Workspace name

Optional Arguments:

Syntax Description
-j/--json-output Show output in json
-p/--pretty Show table in a pretty format

workspace select

Select your active workspace, unless you use the -w argument all the commands will use this workspace.

$ faraday-cli workspace select test
✔ Selected workspace: test

Required Arguments:

Syntax Description
WORKSPACE_NAME Workspace name

workspace create

Create a new workspace in faraday.

$ faraday-cli workspace create test_workspace
✔ Created workspace: test_workspace

Required Arguments:

Syntax Description
WORKSPACE_NAME Workspace name

Optional Arguments:

Syntax Description
-d/--dont-select Dont select after create

workspace dashboard

Show a dashboard with different information about the workspaces.

$ faraday-cli workspace dashboard
+--------------+----------------------------+---------------+--------------+------------------------------------------------------------------------------------------------+
| WORKSPACE    | INFO                       | SUMMARY       | SEVERITIES   | ACTIVITY                                                                                       |
+==============+============================+===============+==============+================================================================================================+
| faraday_test | users: -                   | hosts: 56     | critical: 0  | Nmap (shell) found 1 hosts, 7 services and 0 vulns (0/0/0/0/0) 2 hours ago by faraday          |
|              | readonly: False            | services: 221 | high: 0      | Openvas (report) found 13 hosts, 13 services and 39 vulns (0/0/13/26/0) 2 hours ago by faraday |
|              | public: False              | vulns: 52     | med: 13      | agent_firstcan (agent) found 42 hosts, 201 services and 13 vulns (0/0/0/2/11) 3 days ago       |
|              | updated: 06/17/21 15:45:55 |               | low: 28      |                                                                                                |
|              |                            |               | info: 11     |                                                                                                |
+--------------+----------------------------+---------------+--------------+------------------------------------------------------------------------------------------------+

Hosts

host list

List hosts in a workspace.

$ faraday-cli host list -p
+------+------------+---------+-------------+------------+---------+
|   ID | IP         | OS      | HOSTNAMES   |   SERVICES |   VULNS |
|------+------------+---------+-------------+------------+---------|
|   11 | 127.0.0.1  | unknown |             |          1 |       3 |
|    3 | 127.0.0.10 | unknown |             |          1 |       3 |
|    6 | 127.0.0.11 | unknown |             |          1 |       3 |
|    5 | 127.0.0.12 | unknown |             |          1 |       3 |
|    7 | 127.0.0.13 | unknown |             |          1 |       3 |
|   13 | 127.0.0.2  | unknown |             |          1 |       3 |
|    2 | 127.0.0.3  | unknown |             |          1 |       3 |
|    9 | 127.0.0.4  | unknown |             |          1 |       3 |
|   10 | 127.0.0.5  | unknown |             |          1 |       3 |
|    4 | 127.0.0.6  | unknown |             |          1 |       3 |
|    8 | 127.0.0.7  | unknown |             |          1 |       3 |
|    1 | 127.0.0.8  | unknown |             |          1 |       3 |
|   12 | 127.0.0.9  | unknown |             |          1 |       3 |
+------+------------+---------+-------------+------------+---------+

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name
-p/--pretty Show table in a pretty format
-j/--json-output Show output in json
-ip/--list-ip Show ip only
--port PORT Listen in port

host get

Get host information.

$ faraday-cli host get 13 -p
Host:
+------+-----------+---------+-------------+---------+---------+---------+
|   ID | IP        | OS      | HOSTNAMES   | OWNER   | OWNED   |   VULNS |
|------+-----------+---------+-------------+---------+---------+---------|
|   13 | 127.0.0.2 | unknown |             | faraday | False   |       3 |
+------+-----------+---------+-------------+---------+---------+---------+

Services:
+------+--------+---------------+------------+--------+-----------+----------+---------+
|   ID | NAME   | DESCRIPTION   | PROTOCOL   |   PORT | VERSION   | STATUS   |   VULNS |
|------+--------+---------------+------------+--------+-----------+----------+---------|
|   13 | ssh    |               | tcp        |     22 | unknown   | open     |       2 |
+------+--------+---------------+------------+--------+-----------+----------+---------+

Vulnerabilities:
+------+------------------------------------------+------------+----------+-------------+---------+
|   ID | NAME                                     | SEVERITY   | STATUS   | CONFIRMED   | TOOL    |
|------+------------------------------------------+------------+----------+-------------+---------|
|   37 | SSH Weak Encryption Algorithms Supported | MED        | opened   | False       | Openvas |
|   38 | SSH Weak MAC Algorithms Supported        | LOW        | opened   | False       | Openvas |
|   39 | TCP timestamps                           | LOW        | opened   | False       | Openvas |
+------+------------------------------------------+------------+----------+-------------+---------+

Requirement Arguments:

Syntax Description
host_id ID of the host

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name
-p/--pretty Show table in a pretty format
-j/--json-output Show output in json

host delete

Delete host.

$ faraday-cli host delete 13
Host deleted

Requirement Arguments:

Syntax Description
host_id ID of the host

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name

host create

Create hosts.

Info

You can pass the host data via stdin.

$ echo '[{"ip": "1.1.1.5", "description": "some text"}]' | faraday-cli host create --stdin

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name
-d/--host-data HOST_DATA Host data in json format
--stdin Read host-data from stdin

host data schema:

{'type': 'array', 'items': {'type': 'object', 'properties':
    {'ip': {'type': 'string'}, 'description': {'type': 'string'},
    'hostnames': {'type': 'array'}}, 'required': ['ip', 'description']}}

Warning

If you pass the host data as an argument it needs to be escaped like this (only in command mode, not in shell mode).

$ faraday-cli create hosts -d \''[{"ip": "stan.local", "description": "some server"}]'\'

Services

service list

List services in a workspace.

$ faraday-cli service list -p
+------+--------+--------------+------------+--------+------------+--------+---------+
|   ID | NAME   | SUMMARY      | IP         |   PORT | PROTOCOL   |   HOST |   VULNS |
|------+--------+--------------+------------+--------+------------+--------+---------|
|    1 | ssh    | (22/tcp) ssh | 127.0.0.8  |     22 | tcp        |      1 |       2 |
|    2 | ssh    | (22/tcp) ssh | 127.0.0.3  |     22 | tcp        |      2 |       2 |
|    3 | ssh    | (22/tcp) ssh | 127.0.0.10 |     22 | tcp        |      3 |       2 |
|    4 | ssh    | (22/tcp) ssh | 127.0.0.6  |     22 | tcp        |      4 |       2 |
|    5 | ssh    | (22/tcp) ssh | 127.0.0.12 |     22 | tcp        |      5 |       2 |
|    6 | ssh    | (22/tcp) ssh | 127.0.0.11 |     22 | tcp        |      6 |       2 |
|    7 | ssh    | (22/tcp) ssh | 127.0.0.13 |     22 | tcp        |      7 |       2 |
|    8 | ssh    | (22/tcp) ssh | 127.0.0.7  |     22 | tcp        |      8 |       2 |
|    9 | ssh    | (22/tcp) ssh | 127.0.0.4  |     22 | tcp        |      9 |       2 |
|   10 | ssh    | (22/tcp) ssh | 127.0.0.5  |     22 | tcp        |     10 |       2 |
|   11 | ssh    | (22/tcp) ssh | 127.0.0.1  |     22 | tcp        |     11 |       2 |
|   12 | ssh    | (22/tcp) ssh | 127.0.0.9  |     22 | tcp        |     12 |       2 |
+------+--------+--------------+------------+--------+------------+--------+---------+

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name
-p/--pretty Show table in a pretty format
-j/--json-output Show output in json

Vulnerabilities

vuln list

List 50 vulnerabilities by default from a workspace. Use + for next page, - for previous.

$ faraday-cli vuln list -p
+------+-----------------------------------------------------------------------------+------------+----------+-------------+--------------------------------------------------+-------------+
|   ID | NAME                                                                        | SEVERITY   | STATUS   | CONFIRMED   | ASSET                                            | HOSTNAMES   |
|------+-----------------------------------------------------------------------------+------------+----------+-------------+--------------------------------------------------+-------------|
| 5200 | Terminal Services Encryption Level is Medium or Low                         | med        | opened   | False       | 10.33.112.22 [Service - (3389/tcp) msrdp]        | qa3app02    |
| 5198 | Microsoft Windows Remote Desktop Protocol Server Man-in-the-Middle Weakness | med        | opened   | False       | 10.33.112.22 [Service - (3389/tcp) msrdp]        | qa3app02    |
| 5120 | SMB Signing Disabled                                                        | med        | opened   | False       | 10.33.112.24 [Service - (445/tcp) cifs]          | qa3app04    |
| 5069 | Terminal Services Encryption Level is Medium or Low                         | med        | opened   | False       | 10.33.112.25 [Service - (3389/tcp) msrdp]        | qa3app05    |
| 5034 | Terminal Services Encryption Level is Medium or Low                         | med        | opened   | False       | 10.33.112.26 [Service - (3389/tcp) msrdp]        | qa3app06    |
| 5116 | Terminal Services Encryption Level is Medium or Low                         | med        | opened   | False       | 10.33.112.24 [Service - (3389/tcp) msrdp]        | qa3app04    |
| 5237 | Microsoft Windows Remote Desktop Protocol Server Man-in-the-Middle Weakness | med        | opened   | False       | 10.33.112.21 [Service - (3389/tcp) msrdp]        | qa3app01    |
| 5079 | SMB Signing Disabled                                                        | med        | opened   | False       | 10.33.112.25 [Service - (445/tcp) cifs]          | qa3app05    |
| 4997 | SMB Signing Disabled                                                        | med        | opened   | False       | 10.33.112.29 [Service - (445/tcp) cifs]          | qa3app09    |
| 5151 | Terminal Services Encryption Level is Medium or Low                         | med        | opened   | False       | 10.33.112.23 [Service - (3389/tcp) msrdp]        | qa3app03    |
| 5239 | Terminal Services Encryption Level is Medium or Low                         | med        | opened   | False       | 10.33.112.21 [Service - (3389/tcp) msrdp]        | qa3app01    |
| 5161 | SMB Signing Disabled                                                        | med        | opened   | False       | 10.33.112.23 [Service - (445/tcp) cifs]          | qa3app03    |
| 5235 | Terminal Services Doesn't Use Network Level Authentication (NLA)            | med        | opened   | False       | 10.33.112.21 [Service - (3389/tcp) msrdp]        | qa3app01    |
| 5249 | SMB Signing Disabled                                                        | med        | opened   | False       | 10.33.112.21 [Service - (445/tcp) cifs]          | qa3app01    |
| 4983 | Terminal Services Doesn't Use Network Level Authentication (NLA)            | med        | opened   | False       | 10.33.112.29 [Service - (3389/tcp) msrdp]        | qa3app09    |
| 5067 | Microsoft Windows Remote Desktop Protocol Server Man-in-the-Middle Weakness | med        | opened   | False       | 10.33.112.25 [Service - (3389/tcp) msrdp]        | qa3app05    |
| 5038 | SMB Signing Disabled                                                        | med        | opened   | False       | 10.33.112.26 [Service - (445/tcp) cifs]          | qa3app06    |
| 4987 | Terminal Services Encryption Level is Medium or Low                         | med        | opened   | False       | 10.33.112.29 [Service - (3389/tcp) msrdp]        | qa3app09    |
| 5272 | Ethernet Card Manufacturer Detection                                        | info       | opened   | False       | 10.33.112.21 [Host - ID:72]                      | qa3app01    |
| 5142 | OS Identification                                                           | info       | opened   | False       | 10.33.112.24 [Host - ID:69]                      | qa3app04    |
| 5228 | OS Identification                                                           | info       | opened   | False       | 10.33.112.22 [Host - ID:71]                      | qa3app02    |
+------+-----------------------------------------------------------------------------+------------+----------+-------------+--------------------------------------------------+-------------+

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name
-p/--pretty Show table in a pretty format
-j/--json-output Show output in json
--severity [SEVERITY [SEVERITY ...]] Filter by severity informational/critical/high/medium/low/unclassified
--confirmed Confirmed vulnerabilities
--page Specify the page number to display, starting from 0
--limit Set the number of vulnerabilities per page (max 4000).
--no-interaction Disable interactive mode for page navigation
--advanced-filters Apply complex filters using a JSON structure. For example: --advanced-filters '{"filters":[{"name":"description","op":"like","val":"%sql injection%"}]}'

vuln add-evidence

Add an image evidence to a vulnerability

$ faraday-cli vuln add-evidence -id 46 -w test ~/evidence.png
Evidence upload was successful

Required Arguments:

Syntax Description
-id/--vulnerability-id Vulnerability ID
image Image path

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name

vuln update

Update one or more fields of a vulnerability

$ faraday-cli vuln update 46 -w test --status closed
Vulnerability updated

Required Arguments:

Syntax Description
-id/--vulnerability-id Vulnerability ID

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name
--status STATUS Status of the Vulnerability: open, closed, re-opened, risk-accepted
--severity SEVERITY Severity of the Vulnerability: unclassified, info, low, med, high, critical
--desc DESCRIPTION Description
--name NAME Vulnerability Name
--tag TAG Tag to add to the vuln. In case that you want add more than one vuln you can repeat this argument
--confirmed CONFIRMED Indicates if the Vulnerability is confirmed: True, False

vuln delete

Delete a vulnerability

$ faraday-cli vuln delete 46 -w test
Vulnerability deleted

Required Arguments:

Syntax Description
-id/--vulnerability-id Vulnerability ID

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name

Tools and Reports

tool report

Process different tools reports and upload the information into faraday.

Info

Check our Faraday Plugins repo for information about compatible tools.

$ faraday-cli tool report $HOME/Downloads/openvas-report.xml
📄 Processing Openvas report
⬆ Sending data to workspace: test
✔ Done

Required Arguments:

Syntax Description
report_path Path of the report file

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name
--create-workspace if -w is used and the workspace dont exists, it will create it
--plugin-id PLUGIN_ID Plugin ID (force detection)
-j/--json-output Show output in json (dont send it to faraday)
--vuln-tag VULN_TAG Tag to add to vulnerabilities
--host-tag HOST_TAG Tag to add to hosts
--service-tag SERVICE_TAG Tag to add to services
--min-severity SEVERITY Minimum severity of vulnerabilities to import (unclassified/info/low/med/high/critical)
--max-severity SEVERITY Maximum severity of vulnerabilities to import (unclassified/info/low/med/high/critical)

tool run

Execute a tool and upload the information into faraday.

Info

Check our Faraday Plugins repo for information about compatible tools.

$ faraday-cli tool run \"nmap www.exampledomain.com\"
💻 Processing Nmap command
Starting Nmap 7.80 ( https://nmap.org ) at 2021-02-22 14:13 -03
Nmap scan report for www.exampledomain.com (10.196.205.130)
Host is up (0.17s latency).
rDNS record for 10.196.205.130: 10.196.205.130.bc.googleusercontent.com
Not shown: 996 filtered ports
PORT     STATE  SERVICE
80/tcp   open   http
443/tcp  open   https
2222/tcp open   EtherNetIP-1
3306/tcp closed mysql

Nmap done: 1 IP address (1 host up) scanned in 11.12 seconds
⬆ Sending data to workspace: test
✔ Done

Required Arguments:

Syntax Description
command Command of the tool to process

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name
--plugin-id PLUGIN_ID Plugin ID (force detection)
-j/--json-output Show output in json (dont send it to faraday)
--vuln-tag VULN_TAG Tag to add to vulnerabilities
--host-tag HOST_TAG Tag to add to hosts
--service-tag SERVICE_TAG Tag to add to services
--min-severity SEVERITY Minimum severity of vulnerabilities to import (unclassified/info/low/med/high/critical)
--max-severity SEVERITY Maximum severity of vulnerabilities to import (unclassified/info/low/med/high/critical)

Vulnerabilities Stats

stats

Different stats about the vulnerabilities in Faraday.

Example

Required Arguments:

Syntax Description
--type {severity,vulns,date} Type of stat

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name
--create-workspace if -w is used and the workspace dont exists, it will create it
--ignore-info Ignore informational/unclassified vulnerabilities
--severity [SEVERITY [SEVERITY ...]] Filter by severity informational/critical/high/medium/low/unclassified
--confirmed Confirmed vulnerabilities

Agents

Info

For these commands you need to have our Faraday Agents configured.

runners alias

Faraday Agents (the local dispatcher runners) are also reachable as runners — runners list, runners get, runners run are synonyms for the agent commands below, kept for the renamed terminology. The server-side scanners live under the separate scanners group.

agent list

List all configured agents.

$ faraday-cli agent list
  ID  NAME    ACTIVE    STATUS    EXECUTORS
----  ------  --------  --------  -----------
   2  nico    True      online    nmap

Optional Arguments:

Syntax Description
-p/--pretty Show table in a pretty format
-j/--json-output Show output in json

agent get

Get information of and agent and its executors.

$ faraday-cli agent get 2
   ID  NAME    ACTIVE    STATUS
----  ------  --------  --------
   2  nico    True      online

Executors:
  ID  NAME    PARAMETERS [REQUIRED]
----  ------  -----------------------
   2  nmap    target [True]
              option_pn [False]
              option_sc [False]
              option_sv [False]
              port_list [False]
              top_ports [False]
              host_timeout [False]
              script_timeout [False]

Required Arguments:

Syntax Description
AGENT_ID ID of the Agent

Optional Arguments:

Syntax Description
-p/--pretty Show table in a pretty format
-j/--json-output Show output in json

agent run

Run an executor.

Info

You can pass the executor parameters via stdin.

$ echo '{"target": "www.google.com"}' | faraday-cli agent run -a 1 -e nmap --stdin --workspace-name my_workspace
If no -p or --stdin argument is provided, then the executor parameters will be asked one by one.

You can store the parameters in env variables and will be auto loaded.

Example:

For the TARGET parameter of the NMAP executor save the variable FARADAY_CLI_EXECUTOR_NMAP_TARGET

You can store the parameters in a file and use it as a 'profile' to repeat scans

$ cat scan_test.com_nmap.vars
FARADAY_CLI_EXECUTOR_NMAP_TARGET=test.com
FARADAY_CLI_EXECUTOR_NMAP_OPTION_PN=true
FARADAY_CLI_EXECUTOR_NMAP_OPTION_SC=false
FARADAY_CLI_EXECUTOR_NMAP_OPTION_SV=true
FARADAY_CLI_EXECUTOR_NMAP_PORT_LIST=
FARADAY_CLI_EXECUTOR_NMAP_TOP_PORTS=
FARADAY_CLI_EXECUTOR_NMAP_HOST_TIMEOUT=
FARADAY_CLI_EXECUTOR_NMAP_SCRIPT_TIMEOUT=

$ source scan_test.com_nmap.vars && faraday-cli agent run -a 2 -e nmap -w test
Running executor: unnamed_agent/nmap
Parameters: {"TARGET": "test.com", "OPTION_PN": "true", "OPTION_SC": "false", "OPTION_SV": "true"}
Generated Command: 14

Warning

If you pass the executor parameters as an argument it needs to be escaped like this (only in command mode, not in shell mode).

$ faraday-cli  agent run -a 1 -e nmap -p \''{"target": "www.go ogle.com"}'\'
Running executor: unnamed_agent/nmap
Parameters: {"TARGET": "www.google.com"}
Generated Command: 13

Required Arguments:

Syntax Description
-a/--agent-id AGENT_ID ID of the agent
-e/--executor-name EXECUTOR_NAME Executor name
-p/--executor-params EXECUTOR_PARAMS Executor Params in json
-w --workpsace-name Workspace name

Optional Arguments:

Syntax Description
--stdin Read executor-params from stdin

Scanners (cloud agents)

Info

Scanners are Faraday cloud agents (the v3/cloud_agents API) — the server-side security agents, distinct from the local Faraday Agents / runners above. This is the generic group: list any cloud agent and run it with arbitrary parameters. FaradAI is one such scanner, so it can be launched here (scanners run --agent faradai ...) or via its own richer faradai command.

scanners list

List the cloud agents (scanners) available on the server.

$ faraday-cli scanners list
  ID  NAME            SLUG             CATEGORY   LAST_RUN
----  --------------  ---------------  ---------  ----------
   2  FaradAI         faradai          pentest    ...
   4  FaradAI Triage  faradai-triage   triage     ...
Parameter Description
-j, --json-output Show output in json
-p, --pretty Show table in a pretty format

scanners get

Show a single cloud agent and the parameters it accepts (useful before scanners run so you know which --param keys to pass).

$ faraday-cli scanners get 2
Parameter Description
scanner_id ID of the cloud agent (required)
-j, --json-output Show output in json
-p, --pretty Show table in a pretty format

scanners run

Launch any cloud agent against one or more workspaces with arbitrary parameters. The agent is selected by id or by a name/slug fragment.

$ faraday-cli scanners run --agent faradai -w my_workspace \
    --param TARGET=https://example.com --param ROUNDS=20 --watch
# equivalent, params as a JSON object
$ faraday-cli scanners run -a 2 -w my_workspace \
    --params-json '{"TARGET": "https://example.com", "MODE": "Dual", "ROUNDS": 20}'
Parameter Description
-a, --agent Cloud-agent id or name/slug fragment (required)
-w, --workspace Workspace name (repeatable); defaults to the active one
--param KEY=VALUE Run parameter (repeatable). Bare integers and true/false are coerced.
--params-json All run params as one JSON object (alternative to repeated --param)
--watch Poll the launched command(s) until they finish

--watch

After launching, --watch polls the workspace's command list every ~15s and prints each command as it finishes, then Run finished.. Press Ctrl-C to stop watching — the run keeps going server-side. (The scan itself runs on the server; --watch only follows it.)

Only executor inputs go in --param

A cloud agent has two kinds of fields: its executor run inputs (e.g. First Scan's target) and its stored configuration (resolve_hostname, ignore_info, tags, default workspaces…). Only run inputs may be passed with --param — configuration is set on the agent itself in the Faraday web UI. The CLI validates your --param keys against the agent's input schema before launching and lists the accepted keys on a mismatch (scanners get <id> shows them too). Workspace always goes via -w, never as a param.

FaradAI

Info

FaradAI is a Faraday cloud agent (a scanner), with its own command for the common cases: tiered scans, triage, and the FaradAI-scan SaaS onboarding. To list cloud agents use scanners list; to run FaradAI with raw parameters use scanners run --agent faradai.

Shortcuts

The two common actions have top-level shortcuts: faraday-cli pentest (= faradai scan) and faraday-cli triage (= faradai triage). All the flags below apply to the shortcut too.

Backend is auto-selected

faradai scan / faradai triage run against your connected Faraday server when you're authenticated (faraday-cli auth), and against the FaradAI-scan SaaS when you're not. You only need --standalone to force the SaaS path when a server is also connected. A first-time SaaS user with no account is walked through register + verify inline.

Register with an email on the domain you're scanning

A self-registered SaaS account is scoped to ext_<your-email-domain> and can only scan that domain and its subdomains. Registering you@gmail.com (or any public provider, or another company's domain) to scan faradaysec.com will be rejected — public providers get no scan scope at all. During inline onboarding the CLI checks your email against the --target before sending the code and warns if they don't match. Use an email at the target's domain, or have an operator authorize your account.

faradai scan

Launch a FaradAI pentest against a target. The FaradAI cloud agent is auto-discovered by name/slug; pass --agent-id to select it explicitly.

# shortcut — against the connected server, or the SaaS when not authenticated
$ faraday-cli pentest --target https://example.com

# full form
$ faraday-cli faradai scan --target https://example.com --workspace my_workspace
$ faraday-cli faradai scan --target https://example.com -w my_workspace --advanced --watch
Parameter Description
--target URL/host to scan (required)
-w, --workspace Workspace name (repeatable); defaults to the active one
--instruction Pentest instruction (default: the FaradAI wizard's staged template for the tier — standard or advanced)
--goal Free-text goal/focus for the run (wizard GOAL; empty by default)
--mode Dual (default), Claude, or Codex
--rounds Max agent rounds (default: 20 standard; 80 with --advanced). Explicit --rounds overrides the tier.
--advanced Advanced (deeper) scan — 80 rounds + the wizard full-audit instruction, instead of the standard 20
--agent-id Explicit cloud-agent id (skips FaradAI auto-discovery)
--watch Poll the launched command(s) until they finish
--standalone Force the FaradAI-scan SaaS backend (auto-used when no server is connected)

Instructions match the web wizard

faradai scan (standard/advanced) and faradai triage launch with the same staged instruction templates the FaradAI web wizard sends — standard → standard, --advanced → full-audit, triage → triage. Override with --instruction for a custom run.

faradai triage

Run a FaradAI triage over the existing findings of one or more workspaces (re-test/reproduce, enrich, optionally auto-close false positives). This targets the separate FaradAI Triage cloud agent (auto-discovered); triage has no --target — it works over --workspace findings, not a URL.

# shortcut
$ faraday-cli triage --workspace my_workspace --severities critical,high --reproduce

# full form
$ faraday-cli faradai triage --workspace my_workspace --severities critical,high --reproduce
Parameter Description
-w, --workspace Workspace to triage (repeatable, at least one required)
--severities Comma-separated severities (e.g. critical,high,medium)
--confirmed-only Only triage findings already marked confirmed
--auto-close-fp Auto-close findings determined to be false positives
--target-filter Only triage findings matching this target/host filter
--reproduce Actively re-test (reproduce) each finding
--batch-size Findings per triage batch
--rounds Max agent rounds
--goal Free-text goal for the triage run
--instruction Triage instruction (default: the wizard's staged triage template)
--agent-id Explicit cloud-agent id (skips auto-discovery)
--watch Poll the launched command(s) until they finish
--standalone Force the FaradAI-scan SaaS backend (auto-used when no server is connected)
--dry-run Plan without mutating findings

FaradAI-scan SaaS (register / verify / login)

Info

The FaradAI-scan SaaS (https://faradai-scan.apps.faradaysec.com) lets you self-register from the CLI — no Faraday web UI. New accounts get one free scan per tier; further scans need purchased credits.

Zero-to-scan flow:

$ faraday-cli faradai register --email you@corp.com
# → a strong password is generated and shown; a 6-digit code is emailed
$ faraday-cli faradai verify 123456
$ faraday-cli faradai scan --target https://example.com --standalone

Or skip straight to scanning — a first-time --standalone scan with no account yet walks you through register + verify inline, then runs:

$ faraday-cli faradai scan --target https://example.com --standalone
No FaradAI-scan account yet — let's create one.
Email: you@corp.com
# → password generated + shown, code emailed
Verification code (check your email): 123456
Launching FaradAI scan ...

register stashes the email + password, so verify needs only the code. Pass --password to choose your own; omit it and one is generated for you and printed once (save it — it's what you log in with later). Returning users re-authenticate without a new code:

$ faraday-cli faradai login --email you@corp.com

The credentials are stored under the faradai_scan section of ~/.faraday-cli.yml, separate from your main auth server connection. The pending email/password are cleared from the config once verify succeeds (the token is what persists).

verify and login also store your ext_<domain> workspace (when your account is scoped to a single one), so later scans need only --target.

Workspace auto-discovery

You rarely need --workspace for a scan. When you have access to exactly one workspace (the usual case for a scan user), faradai scan resolves it automatically — on both the authenticated (auth) and --standalone paths. Pass --workspace only when you can access several. faradai triage always requires --workspace (the workspace IS the triage target).

Command Parameters
faradai register --email (required), --password, --dashboard-url
faradai verify --email (required), --code (required), --password, --dashboard-url
faradai login --email (required), --password, --scan-url

Executive Reports

Info

These commands only work with a commercial version of Faraday.

executive_report list-templates

List the templates available to generate Executive Reports.

$ faraday-cli executive_report list-templates -p
+------------------------------------------------------------------+-----------+
| NAME                                                             | GROUPED   |
|------------------------------------------------------------------+-----------|
| generic_default.docx (generic) (Word)                            | False     |
| generic_default.html (generic) (PDF)                             | False     |
| group_default.docx (grouped) (Word)                              | True      |
| group_default.html (grouped) (PDF)                               | True      |
+------------------------------------------------------------------+-----------+

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name
-p/--pretty Show table in a pretty format

executive_report create

Generate an executive report with a given template.

$ faraday-cli executive_report create -t \'"generic_default.html (generic) (PDF)"\'  --title title --summary summary --enterprise company  -d /tmp/test.pdf  --ignore-info
Report created: /tmp/test.pdf

Optional Arguments:

Syntax Description
-w WORKSPACE_NAME Workspace name
-t/--template TEMPLATE Template
--title TITLE Report title
--summary SUMMARY Report summary
--recommendations RECOMMENDATIONS Report recommendations
--conclusions CONCLUSIONS Report conclusions
--scope SCOPE Report scope
--objectives OBJECTIVES Report objectives
--enterprise ENTERPRISE Enterprise name
--confirmed Confirmed vulnerabilities
--severity [SEVERITY [SEVERITY ...]] Filter by severity informational/critical/high/medium/low/unclassified
--ignore-info Ignore informational/unclassified vulnerabilities
-d/--destination DESTINATION Report destination

help

Using the help command you can get info of any command.

$ faraday-cli help -v

Documented commands (use 'help -v' for verbose/'help <topic>' for details):

Core
--------------------------------------------------------------------------------
auth                Authenticate with a faraday server
exit                exit the application. Shorthand: Ctrl-D.
status              Show Cli status
version             Faraday cli version

Objects
--------------------------------------------------------------------------------
agent               agent actions
executive_report    executive_report actions
host                host actions
service             service actions
tool                tool actions
vuln                vulnerabilities actions
workspace           workspace actions
...

$  faraday-cli help auth
usage: auth [-h] [-f FARADAY_URL] [-i] [-u USER] [-p PASSWORD]

Authenticate with a faraday server

optional arguments:
  -h, --help            show this help message and exit
  -f FARADAY_URL, --faraday-url FARADAY_URL
                        Faraday server URL
  -i, --ignore-ssl      Ignore SSL verification
  -u USER, --user USER  Faraday user
  -p PASSWORD, --password PASSWORD
                        Faraday password