Duplicate a channel
Copy a channel in its project, with every setting, policy, rule and wordlist. Integrations (Discord, Slack, WordPress) are not copied. Needs the channels:write permission.
modapi channels duplicate [id] [flags]
modapi channels duplicate --id <id>
--body string Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.
-h, --help help for duplicate
-i, --id string The ID of the channel to copy. (or pass it as the [id] argument)
-k, --key string Key of the copy. Defaults to the original key with a timestamp. Must be unique in the project.
-n, --name string Name of the copy. Defaults to the original name with "(copy)".
--schema Print the exact JSON Schema of the request body and exit
--agent-mode Enable structured errors and default TOON output for AI coding agents. Automatically enabled when a known agent environment is detected (CLAUDECODE, CURSOR_AGENT, etc.). Use --agent-mode=false to disable.
--color string Control colored output: auto (color when output is a TTY), always, or never. Respects NO_COLOR and FORCE_COLOR env vars. (default "auto")
-d, --debug Log request and response diagnostics to stderr
--dry-run Preview API requests without sending them (no network, no OS keychain). Human preview on stderr; with -o json or --jq, one JSON object per request on stdout. Local mutation commands (auth login, auth logout and configure) make no request: they skip prompts and writes and report a no-op (stderr, or one JSON object on stdout in the machine form)
-H, --header stringArray Set a custom HTTP request header (format: "Key: Value"). Can be specified multiple times.
--include-headers Include HTTP response headers in the output
--interactive Prompt for missing inputs and open guided configure/auth forms (forms fall back to line prompts on stdin off-TTY) (default true)
-q, --jq string Filter and transform output using a jq expression (e.g., '.name', '.items[] | .id')
--no-interactive Disable all interactive features (auto-prompting, explorer auto-launch, TUI forms)
--no-keyring Never read or write the OS keychain; store secrets in the config file instead (env: MODAPI_NO_KEYRING)
-o, --output-format string Specify the output format. Options: pretty, json, yaml, table, toon. (default "pretty")
--raw-output Write --jq string results as raw text instead of JSON strings (like jq -r); non-string results stay JSON
--secret-key string HTTP Bearer
--server string Select a server by index (for indexed servers) or name (for named servers)
--server-url string Override the default server URL
--timeout string HTTP request timeout (e.g., 30s, 5m, 100ms)
--usage Print the CLI Usage schema in KDL format
- modapi channels - Operations for channels
modapi channels duplicate --usage— this command's flags, defaults and env vars as machine-readable KDLmodapi channels duplicate --schema— the exact JSON Schema of the request body (all$refs bundled)modapi channels duplicate --dry-run— preview the request without OS-keychain access or a network call (human preview on stderr)--dry-run --output-format json(or a caller-explicit--jq) writes one preview object per request as NDJSON on stdout; jq is not applied to previews--output-format jsonor--jq <expr>for machine-readable live output; in agent mode errors are a JSON envelope on stderr
Exit codes: 0 ok · 1 runtime · 2 usage · 3 authentication/authorization