Duplicate a project
Copy a project's configuration into a new project: its settings, every channel with its policies, rules and wordlists, its moderation actions and its review queues. The copy gets its own secret API key. Webhooks, integrations, API keys and content are not copied. Needs the projects:write permission and a key that reaches all projects.
modapi projects duplicate [id] [flags]
modapi projects 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 project to copy. (or pass it as the [id] argument)
-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 projects - Operations for projects
modapi projects duplicate --usage— this command's flags, defaults and env vars as machine-readable KDLmodapi projects duplicate --schema— the exact JSON Schema of the request body (all$refs bundled)modapi projects 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