Skip to main content

Moderne CLI reference

Table of contents​

mod​

mod is a tool for large scale code transformation, analysis and search. It operates across many repositories at once. That can mean a whole team's or business unit's code. It is used for application modernization, vulnerability repair, tech stack consolidation and other cross-cutting coding tasks.

mod operates on working sets. A working set is a directory of git repositories. mod git sync acts like rsync from a source of repositories into a working set. mod builds Lossless Semantic Trees (https://docs.moderne.io/user-documentation/recipes/authoring-recipes/concepts/lossless-semantic-trees) and uses them for deterministic code transformation, search and analysis at scale.

mod search finds code by text and by resolved type: the calls of a method, the uses of a type, the usages of a dependency. mod run runs an OpenRewrite recipe. Both work on the repositories in a directory once mod build has built their LSTs.

A changeset is a set of changes across repositories in Moderne. Recipe runs and saved searches in Moderne are changesets.

mod run and mod search can do their work in Moderne. Give them moderne://<organization> in place of a working set. mod study can read a changeset in Moderne as moderne://changeset/<changesetId>.

Usage​

mod [subcommands]

Options​

NameDescription
--versionDisplay version info.

Subcommands​

  • agent: Lists, messages and stops coding agent sessions.
  • amp: (INCUBATING) Launches an Amp session configured to use mod for deterministic multi-repository work.
  • audit: (INCUBATING) Perform an audit of recent activity.
  • build: Generates LST artifacts for one or more repositories.
  • claude: (INCUBATING) Launches a Claude Code session configured to use mod for deterministic multi-repository work.
  • clean: Clean build and run artifacts produced by the CLI.
  • codex: (INCUBATING) Launches a Codex session configured to use mod for deterministic multi-repository work.
  • config: Global configuration options that are required by some CLI commands.
  • copilot: (INCUBATING) Launches a GitHub Copilot session configured to use mod for deterministic multi-repository work.
  • cursor: (INCUBATING) Launches a Cursor session configured to use mod for deterministic multi-repository work.
  • doctor: Checks that this machine and the CLI's configuration can build and publish LSTs.
  • devcenter: Generate DevCenter dashboards.
  • exec: Execute an arbitrary shell command on selected repositories and partitions.
  • git: Multi-repository git operations.
  • graphql: Send a GraphQL query or mutation to Moderne and print the response.
  • kiro: (INCUBATING) Launches a Kiro session configured to use mod for deterministic multi-repository work.
  • log: Manages a log aggregate.
  • list: Lists locally checked-out repositories.
  • login: Logs the CLI into Moderne
  • monitor: (INCUBATING) Launches an HTTP server used to monitor the CLI.
  • opencode: (INCUBATING) Launches an opencode session configured to use mod for deterministic multi-repository work.
  • pi: (INCUBATING) Launches a Pi session configured to use mod for deterministic multi-repository work.
  • prebuild: Extracts build metadata without parsing source files.
  • publish: Publishes the LST artifacts for one or more projects.
  • run: Runs an OpenRewrite recipe on a working set or an organization in Moderne.
  • run-history: Get information about the most recent recipe runs. This will be transitioning to mod audit runs list eventually. A deprecation notice will be added here when we suggest adopting the alternative.
  • search: Do a fast, sophisticated code search across a working set.
  • study: Exports a recipe data table from a working set or a changeset in Moderne.
  • telemetry: Manage CLI telemetry pushed to the configured Moderne tenant.
  • trace: Manages trace analysis tools.
  • vscode: (INCUBATING) Launches a Visual Studio Code Chat session configured to use mod for deterministic multi-repository work.
  • windsurf: (INCUBATING) Launches a Windsurf session configured to use mod for deterministic multi-repository work.
  • wrapper: Create or configure a Moderne wrapper.

mod agent​

Lists, messages and stops coding agent sessions.

Usage​

mod agent [subcommands]

Subcommands​

  • sessions: Lists coding agent sessions on a changeset in Moderne, or on this machine.
  • send: Sends a message to a coding agent session.
  • stop: Stops a coding agent session.

mod agent sessions​

Lists coding agent sessions on a changeset in Moderne, or on this machine.

Usage​

mod agent sessions [parameters]

Examples​

mod agent sessions 20261027120000-AbCdE

mod agent sessions --json

Parameters​

NameDescription
changesetThe changeset whose sessions are listed. Without one, this machine's sessions are listed.

Options​

NameDescription
--jsonPrint the sessions as JSON.

mod agent send​

Sends a message to a coding agent session.

The agent reads it as its next turn, whatever it is doing.

Usage​

mod agent send [parameters]

Examples​

mod agent send 20261027120000-AbCdE/20261027121500-FgHiJ "Rebase on the changeset before you push again"

Parameters​

NameDescription
sessionThe session as mod agent sessions lists it. A session on this machine also goes by its own id.
messageWhat the agent is told.

mod agent stop​

Stops a coding agent session.

Usage​

mod agent stop [parameters]

Examples​

mod agent stop 20261027120000-AbCdE/20261027121500-FgHiJ

Parameters​

NameDescription
sessionThe session as mod agent sessions lists it. A session on this machine also goes by its own id.

mod amp​

(INCUBATING) Launches an Amp session configured to use mod for deterministic multi-repository work.

Usage​

mod amp [subcommands]

Subcommands​

  • chat: (INCUBATING) Launches an Amp session configured to use mod for deterministic multi-repository work.

mod amp chat​

(INCUBATING) Launches an Amp session configured to use mod for deterministic multi-repository work.

The agent works on what the directory holds. All its tool use is approved up front. With a Moderne login it can also search and run recipes in Moderne. It syncs a changeset when it needs to build or test. Moderne lists the agent on any changeset it checks out.

Usage​

mod amp chat [parameters]

Examples​

mod amp chat /path/to/working-set --org <ORG_NAME> --prompt "<PROMPT>"

Parameters​

NameDescriptionExample
pathThe working set the agent works in. The directory is created if missing./path/to/working-set

Options​

NameDescriptionExample
--no-preflightSkip the readiness checks that run before the agent starts.
--organization, --orgThe organization in Moderne the agent works on. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services.ALL/Financial Services
--promptThe prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file.
--unattendedRun the prompt to completion and exit. Requires --prompt.

mod audit​

(INCUBATING) Perform an audit of recent activity.

Sources information from the activity log kept locally to provide reports in various forms.

Usage​

mod audit [subcommands]

Subcommands​

  • builds: (INCUBATING) Perform an audit of recent build activity.
  • runs: (INCUBATING) Perform an audit of recent recipe running activity.

mod audit builds​

(INCUBATING) Perform an audit of recent build activity.

Sources information from the activity log kept locally to provide reports on LST building activity.

Usage​

mod audit builds [subcommands]

Subcommands​

  • list: (INCUBATING) Prints build activity to standard output.

mod audit builds list​

(INCUBATING) Prints build activity to standard output.

Provides a form of build activity that can be directly consumed by reading standard output.

Usage​

mod audit builds list [parameters]

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--streaming(INCUBATING) Stream results from the audit to the console as they are produced. This is intended to be machine readable for the creation of incremental experiences like usage search in the IDE.

mod audit runs​

(INCUBATING) Perform an audit of recent recipe running activity.

Sources information from the activity log kept locally to provide reports on recipe running activity.

Usage​

mod audit runs [subcommands]

Subcommands​

  • list: (INCUBATING) Prints recipe run activity to standard output.

mod audit runs list​

(INCUBATING) Prints recipe run activity to standard output.

Provides a form of recipe run activity that can be directly consumed by reading standard output.

Usage​

mod audit runs list [parameters]

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--streaming(INCUBATING) Stream results from the audit to the console as they are produced. This is intended to be machine readable for the creation of incremental experiences like usage search in the IDE.

mod build​

Generates LST artifacts for one or more repositories.

Once generated, the artifacts can be uploaded to your artifact management tool so that Moderne can ingest them or they can be used to run recipes locally.

While it is possible to manually build and publish your artifacts, we strongly recommend automating this. Please see the moderneinc/mass-ingest-example repository on GitHub for an idea of how to do that.

If the path itself is not a Git repository, then this command will recursively look through the directories to find Git repositories that match the repository-* options.

If this command executes successfully, the LST artifact for each project will be stored in a .moderne/build directory inside of each repository that is built.

This command always builds LSTs locally. To download the LSTs that Moderne has for an organization, use mod git sync moderne <path> --organization <name> instead (add --with-sources to also clone the source code).

Usage​

mod build [parameters]

Examples​

mod build /path/to/project

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--dry-runDo not actually build the LST(s), but list the steps that would be required to do so.
--fullForce a full prebuild and parse, ignoring any cached prebuild metadata.
--incremental(INCUBATING) Update the most recent build in place, rebuilding only what changed since it, instead of producing a fresh full build. Falls back to a full build when no build tool supports it.
--offlineWhen an underlying build tool has an offline mode, enable it.
--parallel(INCUBATING) Run the command in parallel. Setting this option to 2 or more causes the command to run with a fixed-size thread pool with that many threads. Setting this to 1 causes the command to run sequentially. Setting this to 0 runs the command with a thread pool sized to the number of CPU cores on your machine. Setting this to a negative number runs the command with a fixed-size thread pool equal to the number of CPU cores minus the absolute value of that number. For example, -1 runs the command with (cores-1) threads.
--streaming(INCUBATING) Stream results from the build to the console as they are produced. This is intended to be machine readable for the creation of incremental experiences like in the IDE.
--trace-tagTags to add as extra columns to the trace.csv emitted by this command. Each tag becomes a column with header tag.<key> and the supplied value. Repeat the option to add multiple tags.

mod claude​

(INCUBATING) Launches a Claude Code session configured to use mod for deterministic multi-repository work.

Usage​

mod claude [subcommands]

Subcommands​

  • chat: (INCUBATING) Launches a Claude Code session configured to use mod for deterministic multi-repository work.

mod claude chat​

(INCUBATING) Launches a Claude Code session configured to use mod for deterministic multi-repository work.

The agent works on what the directory holds. All its tool use is approved up front. With a Moderne login it can also search and run recipes in Moderne. It syncs a changeset when it needs to build or test. Moderne lists the agent on any changeset it checks out.

Usage​

mod claude chat [parameters]

Examples​

mod claude chat /path/to/working-set --org <ORG_NAME> --prompt "<PROMPT>"

Parameters​

NameDescriptionExample
pathThe working set the agent works in. The directory is created if missing./path/to/working-set

Options​

NameDescriptionExample
--effortHow hard the model reasons, such as medium, high or xhigh.
-m, --modelThe model Claude Code runs with.
--no-preflightSkip the readiness checks that run before the agent starts.
--organization, --orgThe organization in Moderne the agent works on. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services.ALL/Financial Services
--promptThe prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file.
--unattendedRun the prompt to completion and exit. Requires --prompt.

mod clean​

Clean build and run artifacts produced by the CLI.

Can be filtered to only clean certain artifacts.

Usage​

mod clean [subcommands]

Examples​

mod clean builds /path/to/project --keep 1

Subcommands​

  • builds: Clean build artifacts produced by the CLI.
  • runs: Clean run artifacts produced by the CLI.
  • repos: Clean repositories left in a partial-success state by past sync runs.

mod clean builds​

Clean build artifacts produced by the CLI.

Can be filtered to only clean certain artifacts.

Usage​

mod clean builds [parameters]

Examples​

mod clean builds /path/to/project --keep 1

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--keepKeep this many run artifacts and clean all others.

mod clean runs​

Clean run artifacts produced by the CLI.

Can be filtered to only clean certain artifacts.

Usage​

mod clean runs [parameters]

Examples​

mod clean runs /path/to/project --keep 1

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--keepKeep this many run artifacts and clean all others.

mod clean repos​

Clean repositories left in a partial-success state by past sync runs.

Removes repositories whose latest sync failed (sync-failed), that completed syncing but never built an LST (no-lst), or that exist on disk but are no longer present in the organization structure (not-in-org). These otherwise show up as partial successes in subsequent operations.

Usage​

mod clean repos [parameters]

Examples​

mod clean repos /path/to/project

mod clean repos /path/to/project --dry-run

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
-l, --no-lstRemove repositories that completed sync but never built an LST.
-n, --dry-runList what would be deleted without deleting anything.
-o, --not-in-orgRemove directories on disk that are not in the current organization structure.
-s, --sync-failedRemove repositories whose latest sync failed or was canceled.

mod codex​

(INCUBATING) Launches a Codex session configured to use mod for deterministic multi-repository work.

Usage​

mod codex [subcommands]

Subcommands​

  • chat: (INCUBATING) Launches a Codex session configured to use mod for deterministic multi-repository work.

mod codex chat​

(INCUBATING) Launches a Codex session configured to use mod for deterministic multi-repository work.

The agent works on what the directory holds. All its tool use is approved up front. With a Moderne login it can also search and run recipes in Moderne. It syncs a changeset when it needs to build or test. Moderne lists the agent on any changeset it checks out.

Usage​

mod codex chat [parameters]

Examples​

mod codex chat /path/to/working-set --org <ORG_NAME> --prompt "<PROMPT>"

mod codex chat /path/to/working-set --model gpt-5.5-codex --effort high --resume

Parameters​

NameDescriptionExample
pathThe working set the agent works in. The directory is created if missing./path/to/working-set

Options​

NameDescriptionExample
--effortHow hard the model reasons, such as medium, high or xhigh.
-m, --modelThe model Codex runs with.
--no-preflightSkip the readiness checks that run before the agent starts.
--organization, --orgThe organization in Moderne the agent works on. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services.ALL/Financial Services
--promptThe prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file.
--resumeResume the newest Codex session in the directory, or the one named by id or name.
--unattendedRun the prompt to completion and exit. Requires --prompt.

mod config​

Global configuration options that are required by some CLI commands.

Configuration set here is used as needed in all subsequent commands.

Usage​

mod config [subcommands]

Examples​

mod config moderne edit --api <tenant-api-gateway> --token <token>

Subcommands​

  • agents: Configures the coding agent sessions mod <agent> starts.
  • agent-tools: Manage Moderne agent tools for coding agents.
  • build: Configures build tools used to produce LSTs.
  • clone: Configures cloning behavior.
  • dotnet: Configures DotNet options used for building LSTs and running recipes.
  • environment: The build environment that the CLI is running in.
  • exec: Configures shell command execution behavior.
  • features: Configures experimental features.
  • go: Configures Go options used for building LSTs and running recipes.
  • http: Configures HTTP options that will be used throughout the CLI.
  • java: Configures Java options used for building LSTs and running recipes.
  • license: Configure a license key.
  • lsts: Configures LSTs production and publishing.
  • metrics: Configures metrics publishing.
  • moderne: Configures the connection to a Moderne tenant.
  • node: Configures Node options used for building LSTs and running recipes.
  • python: Configures Python options used for building LSTs and running recipes.
  • recipes: Find recipes and configure the recipe catalog available to the CLI.
  • run: Configures recipe run behavior.
  • scm: (DEPRECATED) Configures source code management.
  • secrets: Configures how secrets in the configuration are kept.
  • telemetry: Configures CLI telemetry.

mod config agents​

Configures the coding agent sessions mod <agent> starts.

Usage​

mod config agents [subcommands]

Subcommands​

  • mcp: Configure whether agent sessions are given Moderne's MCP server.
  • amp: Configures how Amp is started.
  • claude: Configures how Claude Code is started.
  • codex: Configures how Codex is started.
  • copilot: Configures how GitHub Copilot is started.
  • cursor: Configures how Cursor is started.
  • kiro: Configures how Kiro is started.
  • opencode: Configures how opencode is started.
  • pi: Configures how Pi is started.
  • vscode: Configures how Visual Studio Code Chat is started.
  • windsurf: Configures how Windsurf is started.

mod config agents mcp​

Configure whether agent sessions are given Moderne's MCP server.

mod <agent> chat gives Claude Code, Codex and the Copilot CLI Moderne's remote MCP server. Turn it off where MCP is not approved. MOD_AGENTS_MCP=false also turns it off.

Usage​

mod config agents mcp

Examples​

mod config agents mcp --enabled=false

Options​

NameDescription
--enabledWhether sessions are given Moderne's MCP server.

mod config agents amp​

Configures how Amp is started.

Usage​

mod config agents amp [subcommands]

Subcommands​

  • launcher: Configures a script that starts the agent in place of its executable.

mod config agents amp launcher​

Configures a script that starts the agent in place of its executable.

Usage​

mod config agents amp launcher [subcommands]

Subcommands​

  • delete: Removes the launcher of the agent.
  • edit: Configures the script that starts the agent in place of its executable.
  • show: Displays the launcher of the agent.

mod config agents amp launcher delete​

Removes the launcher of the agent.

Usage​

mod config agents amp launcher delete

mod config agents amp launcher edit​

Configures the script that starts the agent in place of its executable.

The script is started with the agent's arguments, including --version, and must pass them on to the agent.

On Linux and macOS, end it with exec <agent> "$@". On Windows, end a batch file with <agent> %%* or a PowerShell script with & <agent> @args; exit $LASTEXITCODE, or use a program.

Usage​

mod config agents amp launcher edit [parameters]

Examples​

mod config agents claude launcher edit ~/bin/claude-launcher.sh

mod config agents claude launcher edit C:\tools\claude-launcher.cmd

Parameters​

NameDescription
launcherThe script that starts the agent.

mod config agents amp launcher show​

Displays the launcher of the agent.

Usage​

mod config agents amp launcher show

mod config agents claude​

Configures how Claude Code is started.

Usage​

mod config agents claude [subcommands]

Subcommands​

  • launcher: Configures a script that starts the agent in place of its executable.

mod config agents claude launcher​

Configures a script that starts the agent in place of its executable.

Usage​

mod config agents claude launcher [subcommands]

Subcommands​

  • delete: Removes the launcher of the agent.
  • edit: Configures the script that starts the agent in place of its executable.
  • show: Displays the launcher of the agent.

mod config agents claude launcher delete​

Removes the launcher of the agent.

Usage​

mod config agents claude launcher delete

mod config agents claude launcher edit​

Configures the script that starts the agent in place of its executable.

The script is started with the agent's arguments, including --version, and must pass them on to the agent.

On Linux and macOS, end it with exec <agent> "$@". On Windows, end a batch file with <agent> %%* or a PowerShell script with & <agent> @args; exit $LASTEXITCODE, or use a program.

Usage​

mod config agents claude launcher edit [parameters]

Examples​

mod config agents claude launcher edit ~/bin/claude-launcher.sh

mod config agents claude launcher edit C:\tools\claude-launcher.cmd

Parameters​

NameDescription
launcherThe script that starts the agent.

mod config agents claude launcher show​

Displays the launcher of the agent.

Usage​

mod config agents claude launcher show

mod config agents codex​

Configures how Codex is started.

Usage​

mod config agents codex [subcommands]

Subcommands​

  • launcher: Configures a script that starts the agent in place of its executable.

mod config agents codex launcher​

Configures a script that starts the agent in place of its executable.

Usage​

mod config agents codex launcher [subcommands]

Subcommands​

  • delete: Removes the launcher of the agent.
  • edit: Configures the script that starts the agent in place of its executable.
  • show: Displays the launcher of the agent.

mod config agents codex launcher delete​

Removes the launcher of the agent.

Usage​

mod config agents codex launcher delete

mod config agents codex launcher edit​

Configures the script that starts the agent in place of its executable.

The script is started with the agent's arguments, including --version, and must pass them on to the agent.

On Linux and macOS, end it with exec <agent> "$@". On Windows, end a batch file with <agent> %%* or a PowerShell script with & <agent> @args; exit $LASTEXITCODE, or use a program.

Usage​

mod config agents codex launcher edit [parameters]

Examples​

mod config agents claude launcher edit ~/bin/claude-launcher.sh

mod config agents claude launcher edit C:\tools\claude-launcher.cmd

Parameters​

NameDescription
launcherThe script that starts the agent.

mod config agents codex launcher show​

Displays the launcher of the agent.

Usage​

mod config agents codex launcher show

mod config agents copilot​

Configures how GitHub Copilot is started.

Usage​

mod config agents copilot [subcommands]

Subcommands​

  • launcher: Configures a script that starts the agent in place of its executable.

mod config agents copilot launcher​

Configures a script that starts the agent in place of its executable.

Usage​

mod config agents copilot launcher [subcommands]

Subcommands​

  • delete: Removes the launcher of the agent.
  • edit: Configures the script that starts the agent in place of its executable.
  • show: Displays the launcher of the agent.

mod config agents copilot launcher delete​

Removes the launcher of the agent.

Usage​

mod config agents copilot launcher delete

mod config agents copilot launcher edit​

Configures the script that starts the agent in place of its executable.

The script is started with the agent's arguments, including --version, and must pass them on to the agent.

On Linux and macOS, end it with exec <agent> "$@". On Windows, end a batch file with <agent> %%* or a PowerShell script with & <agent> @args; exit $LASTEXITCODE, or use a program.

Usage​

mod config agents copilot launcher edit [parameters]

Examples​

mod config agents claude launcher edit ~/bin/claude-launcher.sh

mod config agents claude launcher edit C:\tools\claude-launcher.cmd

Parameters​

NameDescription
launcherThe script that starts the agent.

mod config agents copilot launcher show​

Displays the launcher of the agent.

Usage​

mod config agents copilot launcher show

mod config agents cursor​

Configures how Cursor is started.

Usage​

mod config agents cursor [subcommands]

Subcommands​

  • launcher: Configures a script that starts the agent in place of its executable.

mod config agents cursor launcher​

Configures a script that starts the agent in place of its executable.

Usage​

mod config agents cursor launcher [subcommands]

Subcommands​

  • delete: Removes the launcher of the agent.
  • edit: Configures the script that starts the agent in place of its executable.
  • show: Displays the launcher of the agent.

mod config agents cursor launcher delete​

Removes the launcher of the agent.

Usage​

mod config agents cursor launcher delete

mod config agents cursor launcher edit​

Configures the script that starts the agent in place of its executable.

The script is started with the agent's arguments, including --version, and must pass them on to the agent.

On Linux and macOS, end it with exec <agent> "$@". On Windows, end a batch file with <agent> %%* or a PowerShell script with & <agent> @args; exit $LASTEXITCODE, or use a program.

Usage​

mod config agents cursor launcher edit [parameters]

Examples​

mod config agents claude launcher edit ~/bin/claude-launcher.sh

mod config agents claude launcher edit C:\tools\claude-launcher.cmd

Parameters​

NameDescription
launcherThe script that starts the agent.

mod config agents cursor launcher show​

Displays the launcher of the agent.

Usage​

mod config agents cursor launcher show

mod config agents kiro​

Configures how Kiro is started.

Usage​

mod config agents kiro [subcommands]

Subcommands​

  • launcher: Configures a script that starts the agent in place of its executable.

mod config agents kiro launcher​

Configures a script that starts the agent in place of its executable.

Usage​

mod config agents kiro launcher [subcommands]

Subcommands​

  • delete: Removes the launcher of the agent.
  • edit: Configures the script that starts the agent in place of its executable.
  • show: Displays the launcher of the agent.

mod config agents kiro launcher delete​

Removes the launcher of the agent.

Usage​

mod config agents kiro launcher delete

mod config agents kiro launcher edit​

Configures the script that starts the agent in place of its executable.

The script is started with the agent's arguments, including --version, and must pass them on to the agent.

On Linux and macOS, end it with exec <agent> "$@". On Windows, end a batch file with <agent> %%* or a PowerShell script with & <agent> @args; exit $LASTEXITCODE, or use a program.

Usage​

mod config agents kiro launcher edit [parameters]

Examples​

mod config agents claude launcher edit ~/bin/claude-launcher.sh

mod config agents claude launcher edit C:\tools\claude-launcher.cmd

Parameters​

NameDescription
launcherThe script that starts the agent.

mod config agents kiro launcher show​

Displays the launcher of the agent.

Usage​

mod config agents kiro launcher show

mod config agents opencode​

Configures how opencode is started.

Usage​

mod config agents opencode [subcommands]

Subcommands​

  • launcher: Configures a script that starts the agent in place of its executable.

mod config agents opencode launcher​

Configures a script that starts the agent in place of its executable.

Usage​

mod config agents opencode launcher [subcommands]

Subcommands​

  • delete: Removes the launcher of the agent.
  • edit: Configures the script that starts the agent in place of its executable.
  • show: Displays the launcher of the agent.

mod config agents opencode launcher delete​

Removes the launcher of the agent.

Usage​

mod config agents opencode launcher delete

mod config agents opencode launcher edit​

Configures the script that starts the agent in place of its executable.

The script is started with the agent's arguments, including --version, and must pass them on to the agent.

On Linux and macOS, end it with exec <agent> "$@". On Windows, end a batch file with <agent> %%* or a PowerShell script with & <agent> @args; exit $LASTEXITCODE, or use a program.

Usage​

mod config agents opencode launcher edit [parameters]

Examples​

mod config agents claude launcher edit ~/bin/claude-launcher.sh

mod config agents claude launcher edit C:\tools\claude-launcher.cmd

Parameters​

NameDescription
launcherThe script that starts the agent.

mod config agents opencode launcher show​

Displays the launcher of the agent.

Usage​

mod config agents opencode launcher show

mod config agents pi​

Configures how Pi is started.

Usage​

mod config agents pi [subcommands]

Subcommands​

  • launcher: Configures a script that starts the agent in place of its executable.

mod config agents pi launcher​

Configures a script that starts the agent in place of its executable.

Usage​

mod config agents pi launcher [subcommands]

Subcommands​

  • delete: Removes the launcher of the agent.
  • edit: Configures the script that starts the agent in place of its executable.
  • show: Displays the launcher of the agent.

mod config agents pi launcher delete​

Removes the launcher of the agent.

Usage​

mod config agents pi launcher delete

mod config agents pi launcher edit​

Configures the script that starts the agent in place of its executable.

The script is started with the agent's arguments, including --version, and must pass them on to the agent.

On Linux and macOS, end it with exec <agent> "$@". On Windows, end a batch file with <agent> %%* or a PowerShell script with & <agent> @args; exit $LASTEXITCODE, or use a program.

Usage​

mod config agents pi launcher edit [parameters]

Examples​

mod config agents claude launcher edit ~/bin/claude-launcher.sh

mod config agents claude launcher edit C:\tools\claude-launcher.cmd

Parameters​

NameDescription
launcherThe script that starts the agent.

mod config agents pi launcher show​

Displays the launcher of the agent.

Usage​

mod config agents pi launcher show

mod config agents vscode​

Configures how Visual Studio Code Chat is started.

Usage​

mod config agents vscode [subcommands]

Subcommands​

  • launcher: Configures a script that starts the agent in place of its executable.

mod config agents vscode launcher​

Configures a script that starts the agent in place of its executable.

Usage​

mod config agents vscode launcher [subcommands]

Subcommands​

  • delete: Removes the launcher of the agent.
  • edit: Configures the script that starts the agent in place of its executable.
  • show: Displays the launcher of the agent.

mod config agents vscode launcher delete​

Removes the launcher of the agent.

Usage​

mod config agents vscode launcher delete

mod config agents vscode launcher edit​

Configures the script that starts the agent in place of its executable.

The script is started with the agent's arguments, including --version, and must pass them on to the agent.

On Linux and macOS, end it with exec <agent> "$@". On Windows, end a batch file with <agent> %%* or a PowerShell script with & <agent> @args; exit $LASTEXITCODE, or use a program.

Usage​

mod config agents vscode launcher edit [parameters]

Examples​

mod config agents claude launcher edit ~/bin/claude-launcher.sh

mod config agents claude launcher edit C:\tools\claude-launcher.cmd

Parameters​

NameDescription
launcherThe script that starts the agent.

mod config agents vscode launcher show​

Displays the launcher of the agent.

Usage​

mod config agents vscode launcher show

mod config agents windsurf​

Configures how Windsurf is started.

Usage​

mod config agents windsurf [subcommands]

Subcommands​

  • launcher: Configures a script that starts the agent in place of its executable.

mod config agents windsurf launcher​

Configures a script that starts the agent in place of its executable.

Usage​

mod config agents windsurf launcher [subcommands]

Subcommands​

  • delete: Removes the launcher of the agent.
  • edit: Configures the script that starts the agent in place of its executable.
  • show: Displays the launcher of the agent.

mod config agents windsurf launcher delete​

Removes the launcher of the agent.

Usage​

mod config agents windsurf launcher delete

mod config agents windsurf launcher edit​

Configures the script that starts the agent in place of its executable.

The script is started with the agent's arguments, including --version, and must pass them on to the agent.

On Linux and macOS, end it with exec <agent> "$@". On Windows, end a batch file with <agent> %%* or a PowerShell script with & <agent> @args; exit $LASTEXITCODE, or use a program.

Usage​

mod config agents windsurf launcher edit [parameters]

Examples​

mod config agents claude launcher edit ~/bin/claude-launcher.sh

mod config agents claude launcher edit C:\tools\claude-launcher.cmd

Parameters​

NameDescription
launcherThe script that starts the agent.

mod config agents windsurf launcher show​

Displays the launcher of the agent.

Usage​

mod config agents windsurf launcher show

mod config agent-tools​

Manage Moderne agent tools for coding agents.

Install and update Moderne agent tools (skills and MCP servers) for Claude Code, Windsurf, Cursor, GitHub Copilot, GitHub Copilot CLI, Sourcegraph Amp, OpenAI Codex, opencode, Kiro, and Pi.

Usage​

mod config agent-tools [subcommands]

Examples​

mod config agent-tools install

Subcommands​

  • install: Creates or updates Moderne agent tools for coding agents.
  • uninstall: Removes Moderne agent tools from coding agents.
  • skills: Manage Moderne skills for coding agents.
  • claude: Manage Moderne agent tools for Claude Code.
  • windsurf: Manage Moderne agent tools for Windsurf.
  • cursor: Manage Moderne agent tools for Cursor.
  • copilot: Manage Moderne agent tools for GitHub Copilot.
  • amp: Manage Moderne agent tools for Sourcegraph Amp.
  • codex: Manage Moderne agent tools for OpenAI Codex.
  • opencode: Manage Moderne agent tools for opencode.
  • kiro: Manage Moderne agent tools for Kiro.
  • pi: Manage Moderne agent tools for Pi.
  • prethink: Configures the Prethink context refreshed live by the Moderne MCP server.

mod config agent-tools install​

Creates or updates Moderne agent tools for coding agents.

Installs skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) and registers the Moderne MCP server for all detected coding agents (Claude Code, Windsurf, Cursor, GitHub Copilot, GitHub Copilot CLI, Sourcegraph Amp, OpenAI Codex, opencode, Kiro). Installs the skills for Pi. Safe to run multiple times — existing installations are updated in place.

Usage​

mod config agent-tools install

Examples​

mod config agent-tools install

mod config agent-tools uninstall​

Removes Moderne agent tools from coding agents.

Removes skills and unregisters the Moderne MCP server from all detected coding agents (Claude Code, Windsurf, Cursor, GitHub Copilot, GitHub Copilot CLI, Sourcegraph Amp, OpenAI Codex, opencode, Kiro). Removes the skills from Pi.

Usage​

mod config agent-tools uninstall

Examples​

mod config agent-tools uninstall

mod config agent-tools skills​

Manage Moderne skills for coding agents.

Install or remove only the Moderne skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) for all detected coding agents, without modifying MCP server registrations. Use 'mod config agent-tools install' to install both skills and the MCP server together.

Usage​

mod config agent-tools skills [subcommands]

Examples​

mod config agent-tools skills install

Subcommands​

  • install: Install Moderne skills to all detected coding agents.
  • uninstall: Remove Moderne skills from all detected coding agents.

mod config agent-tools skills install​

Install Moderne skills to all detected coding agents.

Installs only the skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) to all detected coding agents without registering the MCP server. Use 'mod config agent-tools install' to install both skills and the MCP server together.

Usage​

mod config agent-tools skills install

Examples​

mod config agent-tools skills install

mod config agent-tools skills uninstall​

Remove Moderne skills from all detected coding agents.

Removes only the skills from all detected coding agents without unregistering the MCP server.

Usage​

mod config agent-tools skills uninstall

Examples​

mod config agent-tools skills uninstall

mod config agent-tools claude​

Manage Moderne agent tools for Claude Code.

Installs skills as a Claude Code plugin under ~/.claude/marketplaces/moderne/ and registers the MCP server via the 'claude' CLI.

Usage​

mod config agent-tools claude [subcommands]

Examples​

mod config agent-tools claude install

Subcommands​

  • install: Install Moderne agent tools for Claude Code.
  • uninstall: Remove Moderne agent tools from Claude Code.

mod config agent-tools claude install​

Install Moderne agent tools for Claude Code.

Installs skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) as a Claude Code plugin and registers the Moderne MCP server via the 'claude' CLI. Safe to run multiple times.

Usage​

mod config agent-tools claude install

Examples​

mod config agent-tools claude install

mod config agent-tools claude uninstall​

Remove Moderne agent tools from Claude Code.

Removes skills and unregisters the Moderne MCP server from Claude Code.

Usage​

mod config agent-tools claude uninstall

Examples​

mod config agent-tools claude uninstall

mod config agent-tools windsurf​

Manage Moderne agent tools for Windsurf.

Installs skills under ~/.codeium/windsurf/skills/ and registers the MCP server in ~/.codeium/windsurf/mcp_config.json.

Usage​

mod config agent-tools windsurf [subcommands]

Examples​

mod config agent-tools windsurf install

Subcommands​

  • install: Install Moderne agent tools for Windsurf.
  • uninstall: Remove Moderne agent tools from Windsurf.

mod config agent-tools windsurf install​

Install Moderne agent tools for Windsurf.

Installs skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) under ~/.codeium/windsurf/skills/ and registers the Moderne MCP server in ~/.codeium/windsurf/mcp_config.json. Safe to run multiple times.

Usage​

mod config agent-tools windsurf install

Examples​

mod config agent-tools windsurf install

mod config agent-tools windsurf uninstall​

Remove Moderne agent tools from Windsurf.

Removes skills and unregisters the Moderne MCP server from Windsurf.

Usage​

mod config agent-tools windsurf uninstall

Examples​

mod config agent-tools windsurf uninstall

mod config agent-tools cursor​

Manage Moderne agent tools for Cursor.

Installs skills as .mdc rule files in .cursor/rules/ and registers the MCP server in ~/.cursor/mcp.json.

Usage​

mod config agent-tools cursor [subcommands]

Examples​

mod config agent-tools cursor install

Subcommands​

  • install: Install Moderne agent tools for Cursor.
  • uninstall: Remove Moderne agent tools from Cursor.

mod config agent-tools cursor install​

Install Moderne agent tools for Cursor.

Installs skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) as .mdc rule files in .cursor/rules/ and registers the Moderne MCP server in ~/.cursor/mcp.json. Safe to run multiple times.

Usage​

mod config agent-tools cursor install

Examples​

mod config agent-tools cursor install

mod config agent-tools cursor uninstall​

Remove Moderne agent tools from Cursor.

Removes skills and unregisters the Moderne MCP server from Cursor.

Usage​

mod config agent-tools cursor uninstall

Examples​

mod config agent-tools cursor uninstall

mod config agent-tools copilot​

Manage Moderne agent tools for GitHub Copilot.

Installs skills via .github/instructions/ and registers the MCP server in both .vscode/mcp.json and ~/.copilot/mcp-config.json.

Usage​

mod config agent-tools copilot [subcommands]

Examples​

mod config agent-tools copilot install

Subcommands​

  • install: Install Moderne agent tools for GitHub Copilot.
  • uninstall: Remove Moderne agent tools from GitHub Copilot.

mod config agent-tools copilot install​

Install Moderne agent tools for GitHub Copilot.

Installs skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) as instruction files in .github/instructions/ and registers the Moderne MCP server in both .vscode/mcp.json and ~/.copilot/mcp-config.json. Safe to run multiple times.

Usage​

mod config agent-tools copilot install

Examples​

mod config agent-tools copilot install

mod config agent-tools copilot uninstall​

Remove Moderne agent tools from GitHub Copilot.

Removes skills and unregisters the Moderne MCP server from GitHub Copilot.

Usage​

mod config agent-tools copilot uninstall

Examples​

mod config agent-tools copilot uninstall

mod config agent-tools amp​

Manage Moderne agent tools for Sourcegraph Amp.

Installs skills under ~/.config/agents/skills/ and registers the MCP server via the 'amp' CLI.

Usage​

mod config agent-tools amp [subcommands]

Examples​

mod config agent-tools amp install

Subcommands​

  • install: Install Moderne agent tools for Sourcegraph Amp.
  • uninstall: Remove Moderne agent tools from Sourcegraph Amp.

mod config agent-tools amp install​

Install Moderne agent tools for Sourcegraph Amp.

Installs skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) under ~/.config/agents/skills/ and registers the Moderne MCP server via the 'amp' CLI. Safe to run multiple times.

Usage​

mod config agent-tools amp install

Examples​

mod config agent-tools amp install

mod config agent-tools amp uninstall​

Remove Moderne agent tools from Sourcegraph Amp.

Removes skills and unregisters the Moderne MCP server from Sourcegraph Amp.

Usage​

mod config agent-tools amp uninstall

Examples​

mod config agent-tools amp uninstall

mod config agent-tools codex​

Manage Moderne agent tools for OpenAI Codex.

Installs skills under ~/.agents/skills/ and registers the MCP server via the 'codex' CLI.

Usage​

mod config agent-tools codex [subcommands]

Examples​

mod config agent-tools codex install

Subcommands​

  • install: Install Moderne agent tools for OpenAI Codex.
  • uninstall: Remove Moderne agent tools from OpenAI Codex.

mod config agent-tools codex install​

Install Moderne agent tools for OpenAI Codex.

Installs skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) under ~/.agents/skills/ and registers the Moderne MCP server via the 'codex' CLI. Safe to run multiple times.

Usage​

mod config agent-tools codex install

Examples​

mod config agent-tools codex install

mod config agent-tools codex uninstall​

Remove Moderne agent tools from OpenAI Codex.

Removes skills and unregisters the Moderne MCP server from OpenAI Codex.

Usage​

mod config agent-tools codex uninstall

Examples​

mod config agent-tools codex uninstall

mod config agent-tools opencode​

Manage Moderne agent tools for opencode.

Installs skills under ~/.config/opencode/skills/ (auto-discovered by opencode) and registers the Moderne MCP server in ~/.config/opencode/opencode.json(c).

Usage​

mod config agent-tools opencode [subcommands]

Examples​

mod config agent-tools opencode install

Subcommands​

  • install: Install Moderne agent tools for opencode.
  • uninstall: Remove Moderne agent tools from opencode.

mod config agent-tools opencode install​

Install Moderne agent tools for opencode.

Installs skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) under ~/.config/opencode/skills/ and registers the Moderne MCP server in ~/.config/opencode/opencode.json. Safe to run multiple times.

Usage​

mod config agent-tools opencode install

Examples​

mod config agent-tools opencode install

mod config agent-tools opencode uninstall​

Remove Moderne agent tools from opencode.

Removes skills and unregisters the Moderne MCP server from opencode.

Usage​

mod config agent-tools opencode uninstall

Examples​

mod config agent-tools opencode uninstall

mod config agent-tools kiro​

Manage Moderne agent tools for Kiro.

Installs skills under ~/.kiro/skills/ and registers the MCP server in ~/.kiro/settings/mcp.json.

Usage​

mod config agent-tools kiro [subcommands]

Examples​

mod config agent-tools kiro install

Subcommands​

  • install: Install Moderne agent tools for Kiro.
  • uninstall: Remove Moderne agent tools from Kiro.

mod config agent-tools kiro install​

Install Moderne agent tools for Kiro.

Installs skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) under ~/.kiro/skills/ and registers the Moderne MCP server in ~/.kiro/settings/mcp.json. Safe to run multiple times.

Usage​

mod config agent-tools kiro install

Examples​

mod config agent-tools kiro install

mod config agent-tools kiro uninstall​

Remove Moderne agent tools from Kiro.

Removes skills and unregisters the Moderne MCP server from Kiro.

Usage​

mod config agent-tools kiro uninstall

Examples​

mod config agent-tools kiro uninstall

mod config agent-tools pi​

Manage Moderne agent tools for Pi.

Installs skills under ~/.agents/skills/.

Usage​

mod config agent-tools pi [subcommands]

Examples​

mod config agent-tools pi install

Subcommands​

  • install: Install Moderne agent tools for Pi.
  • uninstall: Remove Moderne agent tools from Pi.

mod config agent-tools pi install​

Install Moderne agent tools for Pi.

Installs skills (edit-code, analyze-code, search-code, find-symbols, pattern-replace, inspect-status, change-symbols, query-datatable, create-recipe) under ~/.agents/skills/. Safe to run multiple times.

Usage​

mod config agent-tools pi install

Examples​

mod config agent-tools pi install

mod config agent-tools pi uninstall​

Remove Moderne agent tools from Pi.

Removes the skills from Pi.

Usage​

mod config agent-tools pi uninstall

Examples​

mod config agent-tools pi uninstall

mod config agent-tools prethink​

Configures the Prethink context refreshed live by the Moderne MCP server.

While the LST (re)compiles in the background, mod mcp re-runs the configured Prethink recipe to keep .moderne/context/ fresh for coding agents. The recipe is identified by name; its artifact and version are managed via mod config recipes.

Usage​

mod config agent-tools prethink [subcommands]

Examples​

mod config agent-tools prethink edit --recipe io.moderne.prethink.UpdatePrethinkContextStarter --enabled

Subcommands​

  • edit: Configures the Prethink recipe refreshed live by the Moderne MCP server.
  • show: Displays the configured Prethink context recipe.
  • disable: Disables the live Prethink context refresh.

mod config agent-tools prethink edit​

Configures the Prethink recipe refreshed live by the Moderne MCP server.

The recipe must already be resolvable in the recipe marketplace; install it with mod config recipes first.

Usage​

mod config agent-tools prethink edit

Examples​

mod config agent-tools prethink edit --recipe io.moderne.prethink.UpdatePrethinkContextStarter --enabled

Options​

NameDescriptionExample
--enabledEnables the live Prethink context refresh. Disabled by default.
--optionA recipe option as key=value. May be repeated to supply multiple options.
--recipeThe fully-qualified name of the Prethink recipe to run on refresh.io.moderne.prethink.UpdatePrethinkContextStarter

mod config agent-tools prethink show​

Displays the configured Prethink context recipe.

Shows the recipe the Moderne MCP server runs to refresh .moderne/context/ and whether the refresh is enabled.

Usage​

mod config agent-tools prethink show

mod config agent-tools prethink disable​

Disables the live Prethink context refresh.

Removes the configured Prethink context recipe so the Moderne MCP server no longer refreshes .moderne/context/.

Usage​

mod config agent-tools prethink disable

mod config build​

Configures build tools used to produce LSTs.

Usage​

mod config build [subcommands]

Subcommands​

  • bazel: Configures Bazel as it is used for LST production.
  • dotnet: Configures dotnet as it is used for LST production.
  • environment: Configure environment variables to apply to build tool when building LSTs.
  • go: Configures Go as it is used to produce LSTs and run recipes.
  • gradle: Configures Gradle as it is used to resolve recipe dependencies and when running recipes.
  • javascript: Configures JavaScript/TypeScript as it is used to produce LSTs.
  • mainframe: Configures the mainframe parsers (Cobol, JCL, Control-M) as they are used for LST production.
  • maven: Configures Maven as it is used for LST production, resolving recipe dependencies, and when running recipes.
  • node: Configures Node as it is used for LST production.
  • parsers: Configure custom file-extension-to-parser mappings.
  • python: Configures Python as it is used for LST production.
  • resource: Configures the parsing of files no other build step claimed.
  • ruby: Configures Ruby as it is used for LST production.
  • style: Configures style settings used for LST production.

mod config build bazel​

Configures Bazel as it is used for LST production.

Usage​

mod config build bazel [subcommands]

Subcommands​

  • arguments: Configure Bazel build arguments.
  • executable: Configure Bazel executable.
  • timeout: Configure the build timeout.

mod config build bazel arguments​

Configure Bazel build arguments.

Build arguments are added to the end of the Bazel command line when building LSTs.

Usage​

mod config build bazel arguments [subcommands]

Subcommands​

  • delete: Removes additional build arguments for Bazel.
  • edit: Configure Bazel build arguments.
  • show: Displays the configured Bazel additional build arguments.

mod config build bazel arguments delete​

Removes additional build arguments for Bazel.

Usage​

mod config build bazel arguments delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build bazel arguments edit​

Configure Bazel build arguments.

Build arguments are added to the end of the Bazel command line when building LSTs.

Usage​

mod config build bazel arguments edit

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build bazel arguments show​

Displays the configured Bazel additional build arguments.

Usage​

mod config build bazel arguments show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build bazel executable​

Configure Bazel executable.

Allows you to specify the location of a Bazel settings.xml file that should be used when Bazel is being used to resolve recipe dependencies or run recipes. You can also use an environment variable that points to location of the file with ${ENV_VAR} syntax.

Usage​

mod config build bazel executable [subcommands]

Subcommands​

  • delete: Removes the configured Bazel executable.
  • edit: Configure the Bazel executable.
  • show: Displays the configured Bazel executable.

mod config build bazel executable delete​

Removes the configured Bazel executable.

The CLI will revert to its default mode of detecting the Bazel executable.

Usage​

mod config build bazel executable delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build bazel executable edit​

Configure the Bazel executable.

Determines whether bazelisk or bazel will be used.

Usage​

mod config build bazel executable edit [parameters]

Parameters​

NameDescription
executableThe bazel executable to use. This can be just bazelisk or bazel if either is on PATH or a fully qualified executable name if not.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build bazel executable show​

Displays the configured Bazel executable.

Usage​

mod config build bazel executable show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build bazel timeout​

Configure the build timeout.

Limits the amount of time the CLI will wait for a single execution of the build tool.

Usage​

mod config build bazel timeout [subcommands]

Subcommands​

  • delete: Removes the configured build timeout.
  • edit: Configure the timeout for build operations.
  • show: Displays the configured build timeout.

mod config build bazel timeout delete​

Removes the configured build timeout.

Usage​

mod config build bazel timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build bazel timeout edit​

Configure the timeout for build operations.

Limits the amount of time the CLI will wait for a single execution of the build tool. Setting this to too high of a value may cause mass ingestion to hang or appear to hang.

Usage​

mod config build bazel timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build bazel timeout show​

Displays the configured build timeout.

Usage​

mod config build bazel timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build dotnet​

Configures dotnet as it is used for LST production.

Usage​

mod config build dotnet [subcommands]

Subcommands​

  • nuget-config: Configure the nuget.config whose package sources dependency packages are fetched from.
  • timeout: Configure the build timeout.

mod config build dotnet nuget-config​

Configure the nuget.config whose package sources dependency packages are fetched from.

Converting an LST to version 3 builds a type table for each NuGet dependency from its published package, fetched from the package sources of this nuget.config, or of the user profile's when none is configured. You can also use an environment variable that points to the location of the file with ${ENV_VAR} syntax.

Usage​

mod config build dotnet nuget-config [subcommands]

Examples​

mod config build dotnet nuget-config edit <path-to-nuget.config>

Subcommands​

  • delete: Removes the configured nuget.config.
  • edit: Configure the nuget.config whose package sources dependency packages are fetched from.
  • show: Displays the configured nuget.config.

mod config build dotnet nuget-config delete​

Removes the configured nuget.config.

Usage​

mod config build dotnet nuget-config delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build dotnet nuget-config edit​

Configure the nuget.config whose package sources dependency packages are fetched from.

Usage​

mod config build dotnet nuget-config edit [parameters]

Examples​

mod config build dotnet nuget-config edit <path-to-nuget.config>

Parameters​

NameDescription
nugetConfigThe location of a nuget.config file to use.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build dotnet nuget-config show​

Displays the configured nuget.config.

Usage​

mod config build dotnet nuget-config show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build dotnet timeout​

Configure the build timeout.

Limits the amount of time the CLI will wait for a single execution of the build tool.

Usage​

mod config build dotnet timeout [subcommands]

Subcommands​

  • delete: Removes the configured build timeout.
  • edit: Configure the timeout for build operations.
  • show: Displays the configured build timeout.

mod config build dotnet timeout delete​

Removes the configured build timeout.

Usage​

mod config build dotnet timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build dotnet timeout edit​

Configure the timeout for build operations.

Limits the amount of time the CLI will wait for a single execution of the build tool. Setting this to too high of a value may cause mass ingestion to hang or appear to hang.

Usage​

mod config build dotnet timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build dotnet timeout show​

Displays the configured build timeout.

Usage​

mod config build dotnet timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build environment​

Configure environment variables to apply to build tool when building LSTs.

Manages environment variables applied to build tool's execution environment.

Usage​

mod config build environment [subcommands]

Subcommands​

  • delete: Removes configured build environment variables.
  • edit: Configure environment variables to use when building LSTs.
  • show: Displays the configured build environment variables.

mod config build environment delete​

Removes configured build environment variables.

Usage​

mod config build environment delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build environment edit​

Configure environment variables to use when building LSTs.

Edits environment variables applied to build tool's execution environment.

Usage​

mod config build environment edit [parameters]

Parameters​

NameDescriptionExample
environmentKeyPairsEnvironment variables in KEY=VALUE format.MAVEN_OPTS=-Xmx2g NPM_TOKEN=secret123

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build environment show​

Displays the configured build environment variables.

Usage​

mod config build environment show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build go​

Configures Go as it is used to produce LSTs and run recipes.

Usage​

mod config build go [subcommands]

Examples​

mod config build go gomemlimit edit "8GiB"

Subcommands​

  • gomemlimit: Configure the Go runtime memory limit.
  • timeout: Configure the build timeout.

mod config build go gomemlimit​

Configure the Go runtime memory limit.

Sets the GOMEMLIMIT environment variable for the Go engine when building LSTs and running recipes. Accepts a Go memory limit such as '4GiB', '512MiB', or 'off'. Defaults to 4GiB.

Usage​

mod config build go gomemlimit [subcommands]

Subcommands​

  • delete: Removes the configured Go memory limit.
  • edit: Configure the Go runtime memory limit.
  • show: Displays the configured Go memory limit.

mod config build go gomemlimit delete​

Removes the configured Go memory limit.

Usage​

mod config build go gomemlimit delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build go gomemlimit edit​

Configure the Go runtime memory limit.

Sets the GOMEMLIMIT environment variable for the Go engine when building LSTs and running recipes.

Usage​

mod config build go gomemlimit edit [parameters]

Parameters​

NameDescription
valueThe Go memory limit, e.g. '4GiB', '512MiB', or 'off' to disable it.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build go gomemlimit show​

Displays the configured Go memory limit.

Usage​

mod config build go gomemlimit show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build go timeout​

Configure the build timeout.

Limits the amount of time the CLI will wait for a single execution of the build tool.

Usage​

mod config build go timeout [subcommands]

Subcommands​

  • delete: Removes the configured build timeout.
  • edit: Configure the timeout for build operations.
  • show: Displays the configured build timeout.

mod config build go timeout delete​

Removes the configured build timeout.

Usage​

mod config build go timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build go timeout edit​

Configure the timeout for build operations.

Limits the amount of time the CLI will wait for a single execution of the build tool. Setting this to too high of a value may cause mass ingestion to hang or appear to hang.

Usage​

mod config build go timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build go timeout show​

Displays the configured build timeout.

Usage​

mod config build go timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build gradle​

Configures Gradle as it is used to resolve recipe dependencies and when running recipes.

Usage​

mod config build gradle [subcommands]

Examples​

mod config build gradle arguments edit --refresh-dependencies

Subcommands​

  • arguments: Configure Gradle build arguments.
  • installation: Configures locations of Gradle installations that can be used by build tools.
  • timeout: Configure the build timeout.
  • version: Configures the Gradle version to use.

mod config build gradle arguments​

Configure Gradle build arguments.

Build arguments are added to the end of the Gradle command line when building LSTs.

Usage​

mod config build gradle arguments [subcommands]

Subcommands​

  • delete: Removes additional build arguments for Gradle.
  • edit: Configure Gradle build arguments.
  • show: Displays the configured Gradle additional build arguments.

mod config build gradle arguments delete​

Removes additional build arguments for Gradle.

Usage​

mod config build gradle arguments delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build gradle arguments edit​

Configure Gradle build arguments.

Build arguments are added to the end of the Gradle command line when building LSTs.

Usage​

mod config build gradle arguments edit

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build gradle arguments show​

Displays the configured Gradle additional build arguments.

Usage​

mod config build gradle arguments show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build gradle installation​

Configures locations of Gradle installations that can be used by build tools.

Must be configured before you can run the build command if Gradle is installed in non-standard locations.

Usage​

mod config build gradle installation [subcommands]

Subcommands​

  • edit: Configures locations of Gradle installations that can be used by build tools.
  • delete: Removes the configured Gradle installations. The CLI will revert to using only detectable Gradle installations.
  • list: Displays the detected and configured Gradle installations in the order in which they will be selected, constrained by versions detected from a particular repository.

mod config build gradle installation edit​

Configures locations of Gradle installations that can be used by build tools.

Must be configured before you can run the build command if Gradle is installed in non-standard locations.

Usage​

mod config build gradle installation edit [parameters]

Parameters​

NameDescription
gradleHomesThe paths on disk where Gradle installations (GRADLE_HOME directories) can be found.

mod config build gradle installation delete​

Removes the configured Gradle installations. The CLI will revert to using only detectable Gradle installations.

Usage​

mod config build gradle installation delete

mod config build gradle installation list​

Displays the detected and configured Gradle installations in the order in which they will be selected, constrained by versions detected from a particular repository.

Usage​

mod config build gradle installation list

Options​

NameDescription
--namedFilter the list of Gradle installations to .

mod config build gradle timeout​

Configure the build timeout.

Limits the amount of time the CLI will wait for a single execution of the build tool.

Usage​

mod config build gradle timeout [subcommands]

Subcommands​

  • delete: Removes the configured build timeout.
  • edit: Configure the timeout for build operations.
  • show: Displays the configured build timeout.

mod config build gradle timeout delete​

Removes the configured build timeout.

Usage​

mod config build gradle timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build gradle timeout edit​

Configure the timeout for build operations.

Limits the amount of time the CLI will wait for a single execution of the build tool. Setting this to too high of a value may cause mass ingestion to hang or appear to hang.

Usage​

mod config build gradle timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build gradle timeout show​

Displays the configured build timeout.

Usage​

mod config build gradle timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build gradle version​

Configures the Gradle version to use.

Configure a version like "4.5", "8", or "8.1.1" depending on the degree of control needed.

Usage​

mod config build gradle version [subcommands]

Subcommands​

  • edit: Configures the Gradle version to use.
  • delete: Reverts to auto-detection of a Gradle version to use when building a repository.
  • show: Displays the configured Gradle version.

mod config build gradle version edit​

Configures the Gradle version to use.

Configure a version like "4.5", "8", or "8.1.1" depending on the degree of control needed.

Usage​

mod config build gradle version edit [parameters]

Parameters​

NameDescription
selectedGradleThe named Gradle version to use. If set to "auto", the CLI will revert to detecting the correct Gradle to use from signals available in the repository.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build gradle version delete​

Reverts to auto-detection of a Gradle version to use when building a repository.

Usage​

mod config build gradle version delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build gradle version show​

Displays the configured Gradle version.

Usage​

mod config build gradle version show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build javascript​

Configures JavaScript/TypeScript as it is used to produce LSTs.

Usage​

mod config build javascript [subcommands]

Examples​

mod config build javascript nodeoptions edit "--max-old-space-size=8192"

Subcommands​

  • nodeoptions: Configure Node.js options.

mod config build javascript nodeoptions​

Configure Node.js options.

Node options are set via the NODE_OPTIONS environment variable when building LSTs and running recipes.

Usage​

mod config build javascript nodeoptions [subcommands]

Subcommands​

  • delete: Removes configured Node.js options.
  • edit: Configure Node.js options.
  • show: Displays the configured Node.js options.

mod config build javascript nodeoptions delete​

Removes configured Node.js options.

Usage​

mod config build javascript nodeoptions delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build javascript nodeoptions edit​

Configure Node.js options.

Node options are set via the NODE_OPTIONS environment variable when building LSTs and running recipes.

Usage​

mod config build javascript nodeoptions edit

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build javascript nodeoptions show​

Displays the configured Node.js options.

Usage​

mod config build javascript nodeoptions show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build mainframe​

Configures the mainframe parsers (Cobol, JCL, Control-M) as they are used for LST production.

Usage​

mod config build mainframe [subcommands]

Subcommands​

  • timeout: Configure the build timeout.

mod config build mainframe timeout​

Configure the build timeout.

Limits the amount of time the CLI will wait for a single execution of the build tool.

Usage​

mod config build mainframe timeout [subcommands]

Subcommands​

  • delete: Removes the configured build timeout.
  • edit: Configure the timeout for build operations.
  • show: Displays the configured build timeout.

mod config build mainframe timeout delete​

Removes the configured build timeout.

Usage​

mod config build mainframe timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build mainframe timeout edit​

Configure the timeout for build operations.

Limits the amount of time the CLI will wait for a single execution of the build tool. Setting this to too high of a value may cause mass ingestion to hang or appear to hang.

Usage​

mod config build mainframe timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build mainframe timeout show​

Displays the configured build timeout.

Usage​

mod config build mainframe timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven​

Configures Maven as it is used for LST production, resolving recipe dependencies, and when running recipes.

Usage​

mod config build maven [subcommands]

Examples​

mod config build maven settings edit <path-to-settings.xml>

Subcommands​

  • arguments: Configure Maven build arguments.
  • installation: Configures locations of Maven installations that can be used by build tools.
  • settings: Configure Maven settings.
  • timeout: Configure the build timeout.
  • version: Configures the Maven version to use.

mod config build maven arguments​

Configure Maven build arguments.

Build arguments are added to the end of the Maven command line when building LSTs.

Usage​

mod config build maven arguments [subcommands]

Subcommands​

  • delete: Removes additional build arguments for Maven.
  • edit: Configure Maven build arguments.
  • show: Displays the configured Maven additional build arguments.

mod config build maven arguments delete​

Removes additional build arguments for Maven.

Usage​

mod config build maven arguments delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven arguments edit​

Configure Maven build arguments.

Build arguments are added to the end of the Maven command line when building LSTs.

Usage​

mod config build maven arguments edit

Examples​

mod config build maven arguments edit -Dexec.skip=true

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven arguments show​

Displays the configured Maven additional build arguments.

Usage​

mod config build maven arguments show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven installation​

Configures locations of Maven installations that can be used by build tools.

Must be configured before you can run the build command if Maven is installed in non-standard locations.

Usage​

mod config build maven installation [subcommands]

Subcommands​

  • edit: Configures locations of Maven installations that can be used by build tools.
  • delete: Removes the configured Maven installations. The CLI will revert to using only detectable Maven installations.
  • list: Displays the detected and configured Maven installations in the order in which they will be selected, constrained by versions detected from a particular repository.

mod config build maven installation edit​

Configures locations of Maven installations that can be used by build tools.

Must be configured before you can run the build command if Maven is installed in non-standard locations.

Usage​

mod config build maven installation edit [parameters]

Parameters​

NameDescription
mavenHomesThe paths on disk where Maven installations (MAVEN_HOME directories) can be found.

mod config build maven installation delete​

Removes the configured Maven installations. The CLI will revert to using only detectable Maven installations.

Usage​

mod config build maven installation delete

mod config build maven installation list​

Displays the detected and configured Maven installations in the order in which they will be selected, constrained by versions detected from a particular repository.

Usage​

mod config build maven installation list

Options​

NameDescription
--namedFilter the list of Maven installations to those matching this version.

mod config build maven settings​

Configure Maven settings.

Allows you to specify the location of a Maven settings.xml file that should be used when Maven is being used to resolve recipe dependencies or run recipes. You can also use an environment variable that points to location of the file with ${ENV_VAR} syntax.

Usage​

mod config build maven settings [subcommands]

Examples​

mod config build maven settings edit <path-to-settings.xml>

Subcommands​

  • delete: Removes the configured Maven settings.
  • edit: Configure Maven settings.
  • show: Displays the configured Maven settings.

mod config build maven settings delete​

Removes the configured Maven settings.

Usage​

mod config build maven settings delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven settings edit​

Configure Maven settings.

Allows you to specify the location of a Maven settings.xml file that should be used when Maven is being used to resolve recipe dependencies or run recipes.

Usage​

mod config build maven settings edit [parameters]

Examples​

mod config build maven settings edit <path-to-settings.xml>

Parameters​

NameDescription
settingsXmlThe location of a Maven settings.xml file to use.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven settings show​

Displays the configured Maven settings.

Usage​

mod config build maven settings show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven timeout​

Configure the build timeout.

Limits the amount of time the CLI will wait for a single execution of the build tool.

Usage​

mod config build maven timeout [subcommands]

Subcommands​

  • delete: Removes the configured build timeout.
  • edit: Configure the timeout for build operations.
  • show: Displays the configured build timeout.

mod config build maven timeout delete​

Removes the configured build timeout.

Usage​

mod config build maven timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven timeout edit​

Configure the timeout for build operations.

Limits the amount of time the CLI will wait for a single execution of the build tool. Setting this to too high of a value may cause mass ingestion to hang or appear to hang.

Usage​

mod config build maven timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven timeout show​

Displays the configured build timeout.

Usage​

mod config build maven timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven version​

Configures the Maven version to use.

Configure an exact version like "3.9.6" to use ahead of the project's Maven wrapper.

Usage​

mod config build maven version [subcommands]

Subcommands​

  • edit: Configures the Maven version to use.
  • delete: Reverts to auto-detection of a Maven version to use when building a repository.
  • show: Displays the configured Maven version.

mod config build maven version edit​

Configures the Maven version to use.

Configure an exact version like "3.9.6" to use ahead of the project's Maven wrapper.

Usage​

mod config build maven version edit [parameters]

Parameters​

NameDescription
selectedMavenThe named Maven version to use. If set to "auto", the CLI will revert to detecting the correct Maven to use from signals available in the repository.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven version delete​

Reverts to auto-detection of a Maven version to use when building a repository.

Usage​

mod config build maven version delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build maven version show​

Displays the configured Maven version.

Usage​

mod config build maven version show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build node​

Configures Node as it is used for LST production.

Usage​

mod config build node [subcommands]

Subcommands​

  • timeout: Configure the build timeout.

mod config build node timeout​

Configure the build timeout.

Limits the amount of time the CLI will wait for a single execution of the build tool.

Usage​

mod config build node timeout [subcommands]

Subcommands​

  • delete: Removes the configured build timeout.
  • edit: Configure the timeout for build operations.
  • show: Displays the configured build timeout.

mod config build node timeout delete​

Removes the configured build timeout.

Usage​

mod config build node timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build node timeout edit​

Configure the timeout for build operations.

Limits the amount of time the CLI will wait for a single execution of the build tool. Setting this to too high of a value may cause mass ingestion to hang or appear to hang.

Usage​

mod config build node timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build node timeout show​

Displays the configured build timeout.

Usage​

mod config build node timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build parsers​

Configure custom file-extension-to-parser mappings.

Manages which file extensions are parsed by which parser type when building LSTs. Supports resource/structural file types such as XML, JSON, and YAML. File extensions for compiled language types (Java, Kotlin, etc.) are enforced by their respective toolchains and cannot be customized here.

Usage​

mod config build parsers [subcommands]

Subcommands​

  • add: Add a parser mapping for a file type.
  • delete: Removes configured parser mappings.
  • show: Displays configured parser mappings.

mod config build parsers add​

Add a parser mapping for a file type.

Associates glob patterns with a parser type so matching files are parsed accordingly.

Usage​

mod config build parsers add [parameters]

Examples​

mod config build parsers add xml "**/*.mst" "**/*.xbind"

mod config build parsers add json "**/*.cfg"

Parameters​

NameDescription
typeThe parser type. Supported: docker, gradle, groovy, hcl, json, plaintext, properties, proto, toml, xml, yaml.
patternsGlob patterns for files to parse with this type (e.g. **/*.mst **/*.xbind).

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build parsers delete​

Removes configured parser mappings.

Usage​

mod config build parsers delete [parameters]

Parameters​

NameDescription
typeOptional parser type to delete. If omitted, all mappings are removed.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build parsers show​

Displays configured parser mappings.

Usage​

mod config build parsers show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build python​

Configures Python as it is used for LST production.

Usage​

mod config build python [subcommands]

Subcommands​

  • timeout: Configure the build timeout.

mod config build python timeout​

Configure the build timeout.

Limits the amount of time the CLI will wait for a single execution of the build tool.

Usage​

mod config build python timeout [subcommands]

Subcommands​

  • delete: Removes the configured build timeout.
  • edit: Configure the timeout for build operations.
  • show: Displays the configured build timeout.

mod config build python timeout delete​

Removes the configured build timeout.

Usage​

mod config build python timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build python timeout edit​

Configure the timeout for build operations.

Limits the amount of time the CLI will wait for a single execution of the build tool. Setting this to too high of a value may cause mass ingestion to hang or appear to hang.

Usage​

mod config build python timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build python timeout show​

Displays the configured build timeout.

Usage​

mod config build python timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build resource​

Configures the parsing of files no other build step claimed.

Usage​

mod config build resource [subcommands]

Subcommands​

  • timeout: Configure the build timeout.

mod config build resource timeout​

Configure the build timeout.

Limits the amount of time the CLI will wait for a single execution of the build tool.

Usage​

mod config build resource timeout [subcommands]

Subcommands​

  • delete: Removes the configured build timeout.
  • edit: Configure the timeout for build operations.
  • show: Displays the configured build timeout.

mod config build resource timeout delete​

Removes the configured build timeout.

Usage​

mod config build resource timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build resource timeout edit​

Configure the timeout for build operations.

Limits the amount of time the CLI will wait for a single execution of the build tool. Setting this to too high of a value may cause mass ingestion to hang or appear to hang.

Usage​

mod config build resource timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build resource timeout show​

Displays the configured build timeout.

Usage​

mod config build resource timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build ruby​

Configures Ruby as it is used for LST production.

Usage​

mod config build ruby [subcommands]

Subcommands​

  • timeout: Configure the build timeout.

mod config build ruby timeout​

Configure the build timeout.

Limits the amount of time the CLI will wait for a single execution of the build tool.

Usage​

mod config build ruby timeout [subcommands]

Subcommands​

  • delete: Removes the configured build timeout.
  • edit: Configure the timeout for build operations.
  • show: Displays the configured build timeout.

mod config build ruby timeout delete​

Removes the configured build timeout.

Usage​

mod config build ruby timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build ruby timeout edit​

Configure the timeout for build operations.

Limits the amount of time the CLI will wait for a single execution of the build tool. Setting this to too high of a value may cause mass ingestion to hang or appear to hang.

Usage​

mod config build ruby timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build ruby timeout show​

Displays the configured build timeout.

Usage​

mod config build ruby timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build style​

Configures style settings used for LST production.

Allows you to specify style configuration files (e.g., Checkstyle) that should be included in LSTs so that recipe results respect the configured code style.

Usage​

mod config build style [subcommands]

Examples​

mod config build style checkstyle edit <path-to-checkstyle.xml>

Subcommands​

  • checkstyle: Configure Checkstyle style.
  • openrewrite: Configure OpenRewrite style.

mod config build style checkstyle​

Configure Checkstyle style.

Allows you to specify the location of a Checkstyle configuration XML file that should be included in LSTs. When set, the Checkstyle rules will be parsed into OpenRewrite styles and attached to LSTs so that recipe results respect the configured code style.

Usage​

mod config build style checkstyle [subcommands]

Examples​

mod config build style checkstyle edit <path-to-checkstyle.xml>

Subcommands​

  • delete: Removes the configured Checkstyle configuration.
  • edit: Configure Checkstyle style.
  • show: Displays the configured Checkstyle configuration.

mod config build style checkstyle delete​

Removes the configured Checkstyle configuration.

Usage​

mod config build style checkstyle delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build style checkstyle edit​

Configure Checkstyle style.

Allows you to specify the location of a Checkstyle configuration XML file that should be included in LSTs so that recipe results respect the configured code style.

Usage​

mod config build style checkstyle edit [parameters]

Examples​

mod config build style checkstyle edit <path-to-checkstyle.xml>

Parameters​

NameDescription
checkstyleXmlThe location of a Checkstyle configuration XML file to use.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build style checkstyle show​

Displays the configured Checkstyle configuration.

Usage​

mod config build style checkstyle show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build style openrewrite​

Configure OpenRewrite style.

Allows you to specify the location of an OpenRewrite style YAML file that should be included in LSTs. The YAML file may contain zero or more named styles These styles take precedence over any other styles.https://docs.openrewrite.org/concepts-and-explanations/styles

Usage​

mod config build style openrewrite [subcommands]

Examples​

mod config build style openrewrite edit <path-to-rewrite.yml>

Subcommands​

  • delete: Removes the configured OpenRewrite style.
  • edit: Configure OpenRewrite style.
  • show: Displays the configured OpenRewrite style.

mod config build style openrewrite delete​

Removes the configured OpenRewrite style.

Usage​

mod config build style openrewrite delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build style openrewrite edit​

Configure OpenRewrite style.

Allows you to specify the location of an OpenRewrite style YAML file that should be included in LSTs so that recipe results respect the configured code style.

Usage​

mod config build style openrewrite edit [parameters]

Examples​

mod config build style openrewrite edit <path-to-rewrite.yml>

Parameters​

NameDescription
rewriteYamlThe location of an OpenRewrite style YAML file to use.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config build style openrewrite show​

Displays the configured OpenRewrite style.

Usage​

mod config build style openrewrite show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config clone​

Configures cloning behavior.

All subsequent clones will use these settings.

Usage​

mod config clone [subcommands]

Subcommands​

  • protocol: (DEPRECATED) Configures the wire protocol(s) that are used for cloning. This option is ignored now, and clone URLs are driven from repos.csv.
  • timeout: Configures the timeout for clone operations.

mod config clone protocol (deprecated)​

(DEPRECATED) Configures the wire protocol(s) that are used for cloning. This option is ignored now, and clone URLs are driven from repos.csv.

All subsequent clones from Moderne organizations will use these settings. Clones from JSON or CSV use the explicitly provided clone URL without attempting to change the protocol.

Usage​

mod config clone protocol [subcommands]

Subcommands​

  • delete: Restores the default clone protocols.
  • edit: Configures the wire protocols that are used for cloning.
  • show: Displays the wire protocols that are used for cloning.

mod config clone protocol delete (deprecated)​

Restores the default clone protocols.

The default is to attempt SSH and then HTTPS clones.

Usage​

mod config clone protocol delete

mod config clone protocol edit (deprecated)​

Configures the wire protocols that are used for cloning.

All subsequent clones will use these settings. The default is SSH and then HTTPS.

Usage​

mod config clone protocol edit [parameters]

Parameters​

NameDescription
protocolsThe protocol(s) to use for cloning. Must be one or both of 'ssh' or 'https' (case insensitive). The order in which they are provided establishes the order of precedence for subsequent clones.

mod config clone protocol show (deprecated)​

Displays the wire protocols that are used for cloning.

This set governs all subsequent clone attempts.

Usage​

mod config clone protocol show

mod config clone timeout​

Configures the timeout for clone operations.

All subsequent clones will use these settings.

Usage​

mod config clone timeout [subcommands]

Subcommands​

  • delete: Restores the default clone timeout.
  • edit: Configures the timeout for clone operations.
  • show: Displays the timeouts configured for cloning.

mod config clone timeout delete​

Restores the default clone timeout.

The default is to time out after 10 minutes.

Usage​

mod config clone timeout delete

mod config clone timeout edit​

Configures the timeout for clone operations.

All subsequent clones will use these settings. The default is 10 minutes.

Usage​

mod config clone timeout edit [parameters]

Parameters​

NameDescription
timeoutThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

mod config clone timeout show​

Displays the timeouts configured for cloning.

This timeout governs all subsequent clone attempts.

Usage​

mod config clone timeout show

mod config dotnet​

Configures DotNet options used for building LSTs and running recipes.

Must be configured before you can run the commands that involve non-standard DotNet configurations.

Usage​

mod config dotnet [subcommands]

Subcommands​

  • installation: Configures locations of DotNet that can be used by build tools.
  • version: Configures the .NET version to use.

mod config dotnet installation​

Configures locations of DotNet that can be used by build tools.

Must be configured before you can run the build command if DotNet is installed in non-standard locations.

Usage​

mod config dotnet installation [subcommands]

Subcommands​

  • edit: Configures locations of DotNet that can be used by build tools.
  • delete: Removes the configured DotNet installations. The CLI will revert to using only detectable DotNet installations.
  • list: Displays the detected and configured DotNet installations in the order in which they will be selected, constrained by versions detected from a particular repository.

mod config dotnet installation edit​

Configures locations of DotNet that can be used by build tools.

Must be configured before you can run the build command if DotNet is installed in non-standard locations.

Usage​

mod config dotnet installation edit [parameters]

Examples​

mod config dotnet installation edit "C:\Program Files\dotnet"

mod config dotnet installation edit /usr/share/dotnet/dotnet

Parameters​

NameDescription
dotnetInstallationsPaths to DotNet installations, given as either the installation directory (e.g. "C:\Program Files\dotnet") or the dotnet executable itself (e.g. /usr/share/dotnet/dotnet). Quote any path that contains spaces.

mod config dotnet installation delete​

Removes the configured DotNet installations. The CLI will revert to using only detectable DotNet installations.

Usage​

mod config dotnet installation delete

mod config dotnet installation list​

Displays the detected and configured DotNet installations in the order in which they will be selected, constrained by versions detected from a particular repository.

Usage​

mod config dotnet installation list

Options​

NameDescription
--namedFilter the list of DotNet installations to .

mod config dotnet version​

Configures the .NET version to use.

Configure a name like "10", "10.0", or "10.0.100" depending on the degree of control needed.

Usage​

mod config dotnet version [subcommands]

Subcommands​

  • edit: Configures the .NET version to use.
  • delete: Reverts to auto-detection of a .NET version to use when building a repository.
  • show: Displays the configured .NET version.

mod config dotnet version edit​

Configures the .NET version to use.

Configure a name like "10", "10.0", or "10.0.100" depending on the degree of control needed.

Usage​

mod config dotnet version edit [parameters]

Parameters​

NameDescription
selectedDotnetThe named .NET version to use. If set to "auto", the CLI will revert to detecting the correct .NET version to use from signals available in the repository.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config dotnet version delete​

Reverts to auto-detection of a .NET version to use when building a repository.

Usage​

mod config dotnet version delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config dotnet version show​

Displays the configured .NET version.

Usage​

mod config dotnet version show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config environment​

The build environment that the CLI is running in.

Will output information about the environment the CLI is running in (e.g., a local developer machine vs. Gitlab CI).

Usage​

mod config environment [subcommands]

Subcommands​

  • show: The build environment that the CLI is running in.

mod config environment show​

The build environment that the CLI is running in.

Will output information about the environment the CLI is running in (e.g., a local developer machine vs. Gitlab CI).

Usage​

mod config environment show

mod config exec​

Configures shell command execution behavior.

All subsequent executions will use these settings.

Usage​

mod config exec [subcommands]

Subcommands​

  • timeout: Configure the exec timeout.

mod config exec timeout​

Configure the exec timeout.

Limits the amount of time the CLI will wait for a repository's command to complete.

Usage​

mod config exec timeout [subcommands]

Subcommands​

  • delete: Restores the default exec timeout.
  • edit: Configure the timeout for shell command execution.
  • show: Displays the configured exec timeout.

mod config exec timeout delete​

Restores the default exec timeout.

The default is to time out after one hour.

Usage​

mod config exec timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config exec timeout edit​

Configure the timeout for shell command execution.

Limits the amount of time the CLI will wait for a repository's command to complete. The default is one hour.

Usage​

mod config exec timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config exec timeout show​

Displays the configured exec timeout.

Usage​

mod config exec timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config features​

Configures experimental features.

Experimental features are not guaranteed to be stable and may change in future releases.

Usage​

mod config features [subcommands]

Subcommands​

  • agent-tools: Configure agent tools features.
  • build: Configure what LST builds record.
  • index-recipes
  • inline-diff: Configure inline diff rendering in the terminal.
  • lst: Configure the LST serialization format version.
  • no-maven-central: (DEPRECATED) Use mod config build maven settings edit instead.
  • pre-study: Configure data table aggregation during recipe runs.

mod config features agent-tools​

Configure agent tools features.

Usage​

mod config features agent-tools [subcommands]

Subcommands​

  • tray: Configure the agent tools system tray icon.

mod config features agent-tools tray​

Configure the agent tools system tray icon.

When enabled, the MCP server launches a system tray icon with a browser-based dashboard for monitoring LST builds, tool calls, and executing tools. Disabled by default.

Usage​

mod config features agent-tools tray

Options​

NameDescription
--enabled

mod config features build​

Configure what LST builds record.

Usage​

mod config features build [subcommands]

Subcommands​

  • git-blame: Configure cloning repositories with the history line blame needs.

mod config features build git-blame​

Configure cloning repositories with the history line blame needs.

When enabled, mod git sync makes full clones instead of treeless ones, so that mod build records for every line of a source file the commit that last changed it, as git blame would. A build records what the clone on disk has the history for: every line's commit in a full clone, each file's commits in a clone with its trees, and otherwise the commits alone. Repositories already cloned keep the clone they have. Disabled by default.

Usage​

mod config features build git-blame

Options​

NameDescription
--enabled

mod config features index-recipes​

(DEPRECATED) Index recipes to avoid classloading expense on every repository. This experimental feature does not change the command line for running a recipe, but since recipes are instantiated differently, is considered experimental initially.

Usage​

mod config features index-recipes

Options​

NameDescription
--enabled

mod config features inline-diff​

Configure inline diff rendering in the terminal.

When enabled, diffs are rendered inline in the terminal during recipe runs when the terminal supports UTF-8 extended characters. Inline diffs are enabled by default.

Usage​

mod config features inline-diff

Options​

NameDescription
--enabled

mod config features lst​

Configure the LST serialization format version.

Controls the on-disk LST format. Version 3 is a partition-backed binary format with lazy deserialization and Zstd compression: JDK and library types are pre-built into partitions and shared across parsers and template engines, reducing parse time and serialization size. When set to 3, v2 LSTs downloaded by mod git sync are automatically converted before recipe runs, and mod build produces LSTs in the configured format.

Usage​

mod config features lst

Options​

NameDescription
--versionLST format version (2 or 3)

mod config features no-maven-central (deprecated)​

(DEPRECATED) Use mod config build maven settings edit instead.

Deprecated and a no-op. Maven Central resolves as it does in Maven, after the repositories in a Maven settings.xml. A mirror of central,sonatype-central in that file redirects it, and is configured with mod config build maven settings edit.

Usage​

mod config features no-maven-central

Options​

NameDescription
--enabled

mod config features pre-study​

Configure data table aggregation during recipe runs.

When enabled, mod run folds each repository's data tables into an aggregate for its organization and every organization above it as the run goes, so mod study can serve a completed run's tables without reading the organization from disk. Disabled by default.

Usage​

mod config features pre-study

Options​

NameDescription
--enabled

mod config go​

Configures Go options used for building LSTs and running recipes.

Must be configured before you can run the commands that involve non-standard Go configurations.

Usage​

mod config go [subcommands]

Subcommands​

  • installation: Configures locations of Go that can be used by build tools.

mod config go installation​

Configures locations of Go that can be used by build tools.

Must be configured before you can run the build command if Go is installed in non-standard locations.

Usage​

mod config go installation [subcommands]

Subcommands​

  • edit: Configures locations of Go that can be used by build tools.
  • delete: Removes the configured Go installations. The CLI will revert to using only detectable Go installations.
  • list: Displays the detected and configured Go installations in the order in which they will be selected.

mod config go installation edit​

Configures locations of Go that can be used by build tools.

Must be configured before you can run the build command if Go is installed in non-standard locations.

Usage​

mod config go installation edit [parameters]

Examples​

mod config go installation edit "C:\Program Files\Go"

mod config go installation edit /usr/local/go/bin/go

Parameters​

NameDescription
goInstallationsPaths to Go installations, given as either the installation directory (e.g. "C:\Program Files\Go") or the go executable itself (e.g. /usr/local/go/bin/go). Quote any path that contains spaces.

mod config go installation delete​

Removes the configured Go installations. The CLI will revert to using only detectable Go installations.

Usage​

mod config go installation delete

mod config go installation list​

Displays the detected and configured Go installations in the order in which they will be selected.

Usage​

mod config go installation list

Options​

NameDescription
--namedFilter the list of Go installations.

mod config http​

Configures HTTP options that will be used throughout the CLI.

All subsequent commands will use these settings.

Usage​

mod config http [subcommands]

Subcommands​

  • proxy: Configures HTTP proxy settings that will be used for every HTTP request.
  • trust-store: Configures truststore options that will be used throughout the CLI.
  • key-store: Configures keystore options that will be used throughout the CLI for mTLS.

mod config http proxy​

Configures HTTP proxy settings that will be used for every HTTP request.

All subsequent commands will use these settings.

Usage​

mod config http proxy [subcommands]

Subcommands​

  • delete: Removes HTTP proxy settings from global configuration.
  • edit: Configures HTTP proxy settings that will be used for every HTTP request.
  • show: Displays the proxy settings from global configuration.

mod config http proxy delete​

Removes HTTP proxy settings from global configuration.

Proxy settings will no longer be used for HTTP requests.

Usage​

mod config http proxy delete

mod config http proxy edit​

Configures HTTP proxy settings that will be used for every HTTP request.

All subsequent commands will use these settings.

Usage​

mod config http proxy edit

Options​

NameDescription
--host, --proxy-host
--non-proxy-hostsA list of hosts that should be reached directly, bypassing the proxy. This is a list of patterns separated by '|'. The patterns may start or end with a '*' for wildcards. Any host matching one of these patterns will be reached through a direct connection instead of through a proxy. 'localhost' is always reached directly.
Example: "*.company.com|10.30.2.4"
--passwordThe password to authenticate with.
--port, --proxy-port
--userThe user to authenticate with.

mod config http proxy show​

Displays the proxy settings from global configuration.

Shows the currently configured proxy settings, if any.

Usage​

mod config http proxy show

mod config http trust-store​

Configures truststore options that will be used throughout the CLI.

All subsequent commands will use these settings. Without any, the CLI on macOS trusts Java's certificate authorities and those your keychains trust.

Usage​

mod config http trust-store [subcommands]

Subcommands​

  • delete: Removes truststore settings from global configuration.
  • edit: Configures truststore options that will be used throughout the CLI.
  • show: Displays the truststore setting from global configuration.

mod config http trust-store delete​

Removes truststore settings from global configuration.

Truststore settings will no longer be used for HTTP requests.

Usage​

mod config http trust-store delete

mod config http trust-store edit​

Configures truststore options that will be used throughout the CLI.

All subsequent commands will use these settings.

Usage​

mod config http trust-store edit [subcommands]

Subcommands​

  • system: Configures trust store to use the Operating System specific default trust store. On Mac it trusts Java's certificate authorities and those the Keychain Access app trusts. On Windows the system trust store is accessed via the Microsoft Management Console. On Linux, the default Java trust store location will typically be symlinked to the distribution's system trust store which is based on the system's cacerts IF using a JVM installed via the package manager, otherwise the trust store packaged with the JVM will be used.
  • file: Configures truststore to point to a file.
  • java-home: (DEPRECATED) Configures truststore to use the cacerts file in ${JAVA_HOME}/lib/security/cacerts.

mod config http trust-store edit system​

Configures trust store to use the Operating System specific default trust store. On Mac it trusts Java's certificate authorities and those the Keychain Access app trusts. On Windows the system trust store is accessed via the Microsoft Management Console. On Linux, the default Java trust store location will typically be symlinked to the distribution's system trust store which is based on the system's cacerts IF using a JVM installed via the package manager, otherwise the trust store packaged with the JVM will be used.

Usage​

mod config http trust-store edit system

Options​

NameDescription
--passwordThe password used to access the truststore.
--stacktracePrint the full stack trace on validation error

mod config http trust-store edit file​

Configures truststore to point to a file.

All subsequent commands will use this truststore.

Usage​

mod config http trust-store edit file [parameters]

Parameters​

NameDescription
fileThe absolute path to the truststore file.

Options​

NameDescription
--passwordThe password used to access the truststore.
--providerThe provider of the truststore.
--stacktracePrint the full stack trace on validation error
--typeThe type of the truststore file.

mod config http trust-store edit java-home (deprecated)​

(DEPRECATED) Configures truststore to use the cacerts file in ${JAVA_HOME}/lib/security/cacerts.

Instead, use the file subcommand to set the trust store to an arbitrary location.The $JAVA_HOME variable is resolved once at configuration time, the path won't be updated at runtime if JAVA_HOME has changed.

Usage​

mod config http trust-store edit java-home

Options​

NameDescription
--stacktracePrint the full stack trace on validation error

mod config http trust-store show​

Displays the truststore setting from global configuration.

Shows the currently configured truststore setting, if any.

Usage​

mod config http trust-store show

Options​

NameDescription
--stacktracePrint the full stack trace on validation error

mod config http key-store​

Configures keystore options that will be used throughout the CLI for mTLS.

Configures a keystore containing client private key(s) and client certificate(s) for mutual TLS. All subsequent commands will use these settings.

Usage​

mod config http key-store [subcommands]

Subcommands​

  • delete: Removes keystore settings from global configuration.
  • edit: Configures keystore options that will be used throughout the CLI for mTLS.
  • show: Displays the keystore setting from global configuration.

mod config http key-store delete​

Removes keystore settings from global configuration.

Keystore settings will no longer be used for HTTP requests.

Usage​

mod config http key-store delete

mod config http key-store edit​

Configures keystore options that will be used throughout the CLI for mTLS.

Configures a keystore containing client private key(s) and client certificate(s) for mutual TLS. All subsequent commands will use these settings.

Usage​

mod config http key-store edit [subcommands]

Subcommands​

  • file: Configures keystore to point to a file.

mod config http key-store edit file​

Configures keystore to point to a file.

All subsequent commands will use this keystore.

Usage​

mod config http key-store edit file [parameters]

Parameters​

NameDescription
fileThe absolute path to the keystore file.

Options​

NameDescription
--passwordThe password used to access the keystore.
--providerThe provider of the keystore.
--stacktracePrint the full stack trace on validation error
--typeThe type of the keystore file.

mod config http key-store show​

Displays the keystore setting from global configuration.

Shows the currently configured keystore setting, if any.

Usage​

mod config http key-store show

Options​

NameDescription
--stacktracePrint the full stack trace on validation error

mod config java​

Configures Java options used for building LSTs and running recipes.

Must be configured before you can run the commands that involve non-standard Java configurations.

Usage​

mod config java [subcommands]

Subcommands​

  • installation: Configures locations of JDKs that can be used by build tools.
  • jdk: (DEPRECATED) Use installation instead. Configures locations of JDKs that can be used by build tools.
  • options: Configures JVM options for use building LSTs and running recipes.
  • version: Configures the JDK to use.

mod config java installation​

Configures locations of JDKs that can be used by build tools.

Must be configured before you can run the build command if JDKs are in non-standard locations.

Usage​

mod config java installation [subcommands]

Subcommands​

  • edit: Configures locations of JDKs that can be used by build tools.
  • delete: Removes the configured JDK installations. The CLI will revert to using only detectable JDKs.
  • list: Displays the detected and configured JDK installations in the order in which they will be selected, constrained by versions detected from a particular repository.

mod config java installation edit​

Configures locations of JDKs that can be used by build tools.

Must be configured before you can run the build command if JDKs are in non-standard locations.

Usage​

mod config java installation edit [parameters]

Examples​

mod config java installation edit /path/to/jdk1 /path/to/jdk2

Parameters​

NameDescription
javaHomesThe paths on disk where JDK installations can be found.

mod config java installation delete​

Removes the configured JDK installations. The CLI will revert to using only detectable JDKs.

Usage​

mod config java installation delete

mod config java installation list​

Displays the detected and configured JDK installations in the order in which they will be selected, constrained by versions detected from a particular repository.

Usage​

mod config java installation list

Options​

NameDescription
--namedFilter the list of JDKs to .

mod config java jdk (deprecated)​

(DEPRECATED) Use installation instead. Configures locations of JDKs that can be used by build tools.

Must be configured before you can run the build command if JDKs are in non-standard locations.

Usage​

mod config java jdk [subcommands]

Subcommands​

  • edit: Configures locations of JDKs that can be used by build tools.
  • delete: Removes the configured JDK installations. The CLI will revert to using only detectable JDKs.
  • list: Displays the detected and configured JDK installations in the order in which they will be selected, constrained by versions detected from a particular repository.

mod config java jdk edit (deprecated)​

Configures locations of JDKs that can be used by build tools.

Must be configured before you can run the build command if JDKs are in non-standard locations.

Usage​

mod config java jdk edit [parameters]

Examples​

mod config java installation edit /path/to/jdk1 /path/to/jdk2

Parameters​

NameDescription
javaHomesThe paths on disk where JDK installations can be found.

mod config java jdk delete (deprecated)​

Removes the configured JDK installations. The CLI will revert to using only detectable JDKs.

Usage​

mod config java jdk delete

mod config java jdk list (deprecated)​

Displays the detected and configured JDK installations in the order in which they will be selected, constrained by versions detected from a particular repository.

Usage​

mod config java jdk list

Options​

NameDescription
--namedFilter the list of JDKs to .

mod config java options​

Configures JVM options for use building LSTs and running recipes.

Must be configured before you can run the build command if non-standard VM options are required.

Usage​

mod config java options [subcommands]

Subcommands​

  • edit: Configures JVM options for use building LSTs and running recipes.
  • delete: Removes configured JVM options. The CLI will no longer use custom JVM options.
  • show: Displays the configured JVM options.

mod config java options edit​

Configures JVM options for use building LSTs and running recipes.

Must be configured before you can run the build command if non-standard VM options are required.

Usage​

mod config java options edit

Examples​

mod config java options edit "\-Xmx4G"

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config java options delete​

Removes configured JVM options. The CLI will no longer use custom JVM options.

Usage​

mod config java options delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config java options show​

Displays the configured JVM options.

Usage​

mod config java options show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config java version​

Configures the JDK to use.

Configure a name like "17", "17-tem", or "17.0.6-tem" depending on the degree of control needed.

Usage​

mod config java version [subcommands]

Subcommands​

  • edit: Configures the JDK to use.
  • delete: Reverts to auto-detection of a JDK to use when building a repository.
  • show: Displays the configured JDK version.

mod config java version edit​

Configures the JDK to use.

Configure a name like "17", "17-tem", or "17.0.6-tem" depending on the degree of control needed.

Usage​

mod config java version edit [parameters]

Examples​

mod config java version edit "17-tem"

Parameters​

NameDescription
selectedJdkThe named JDK to use. If set to "auto", the CLI will revert to detecting the correct JDK to use from signals available in the repository.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config java version delete​

Reverts to auto-detection of a JDK to use when building a repository.

Usage​

mod config java version delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config java version show​

Displays the configured JDK version.

Usage​

mod config java version show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config license​

Configure a license key.

A license key allows for running recipes on private repositories without a connection to a Moderne tenant.

Usage​

mod config license [subcommands]

Subcommands​

  • delete: Removes the configured license key.
  • edit: Configure the active user.
  • generate: Generate a license key.
  • show: Displays information about the configured license key.
  • moderne: Synchronizes a Moderne license key with the CLI.

mod config license delete​

Removes the configured license key.

Usage​

mod config license delete

mod config license edit​

Configure the active user.

A license key allows for running recipes on private repositories without a connection to a Moderne tenant.

Usage​

mod config license edit [parameters]

Parameters​

NameDescription
licenseThe license key, provided by Moderne support.

mod config license generate​

Generate a license key.

Generates a signed license key for the given licensee and expiration date and prints it. The Ed25519 private key is read from the --private-key option, which is interactive: pass the flag with no value to read the Base64-encoded raw 32 bytes from stdin (masked when on a TTY). This keeps the key off argv and out of process listings. By default the license is printed but NOT persisted to the active configuration — convenient when issuing a license for a prospect without overwriting your own. Pass --save to also persist (equivalent to running mod config license edit with the generated key).

Usage​

mod config license generate [parameters]

Parameters​

NameDescription
licenseeThe licensee name.
expirationDateThe expiration date in yyyyMMdd format, e.g. 20270101.

Options​

NameDescription
--private-keyBase64-encoded raw 32-byte Ed25519 private key. Pass the flag with no value to read from stdin (masked on a TTY).
--savePersist the generated license as the active configuration.

mod config license show​

Displays information about the configured license key.

Usage​

mod config license show

Options​

NameDescription
--json(INCUBATING) Output license information in JSON. The format of this JSON is unsettled at this point, and the data structuremay change.

mod config license moderne​

Synchronizes a Moderne license key with the CLI.

A license key allows for running recipes on private repositories without a connection to a Moderne tenant.

Usage​

mod config license moderne [subcommands]

Examples​

mod config license moderne sync

Subcommands​

  • sync: Synchronizes a Moderne license key with the CLI.

mod config license moderne sync​

Synchronizes a Moderne license key with the CLI.

A license key allows for running recipes on private repositories without a connection to a Moderne tenant.

Usage​

mod config license moderne sync

Examples​

mod config license moderne sync

mod config lsts​

Configures LSTs production and publishing.

Must be configured before you can run the publish command.

Usage​

mod config lsts [subcommands]

Subcommands​

  • artifacts: Configures the storage layer for LSTs to be published to and downloaded from.
  • cache-dir: (INCUBATING) Configures the directory for caching LSTs on disk.

mod config lsts artifacts​

Configures the storage layer for LSTs to be published to and downloaded from.

Must be configured before you can run the publish command.

Usage​

mod config lsts artifacts [subcommands]

Subcommands​

  • artifactory: Configures the Artifactory repository that LSTs will be published to and downloaded from.
  • show: Displays the LST artifacts repository configuration.
  • azure-blob: Configures the Azure Blob Storage container that LSTs will be published to and downloaded from.
  • gcs: Configures the Google Cloud Storage bucket that LSTs will be published to and downloaded from.
  • maven: Configures a Maven-formatted artifact repository that LSTs will be published to and downloaded from.
  • s3: Configures the S3 repository that LSTs will be published to and downloaded from.

mod config lsts artifacts artifactory​

Configures the Artifactory repository that LSTs will be published to and downloaded from.

All subsequent publish and download commands will use this Artifactory repository.

Usage​

mod config lsts artifacts artifactory [subcommands]

Subcommands​

  • add: Configures the repository that LSTs will be published to and downloaded from. Must be configured before you can run the publish command.
  • edit: (DEPRECATED) Use mod config lsts artifacts artifactory add instead.
  • delete: Removes the Artifactory repository configuration. The publish command will no longer function until another artifact source is configured.
  • show: Displays the Artifactory repository configuration.

mod config lsts artifacts artifactory add​

Configures the repository that LSTs will be published to and downloaded from. Must be configured before you can run the publish command.

All subsequent publish and download commands will use this artifact repository.

Usage​

mod config lsts artifacts artifactory add [parameters]

Examples​

mod config lsts artifacts artifactory add https://artifactory.company.com --user lstuser --password secret1

Parameters​

NameDescriptionExample
urlThe URL of the artifact repository that LSTs will be published to.https://artifactory.company-name.com/artifactory/moderne-ingest

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--jfrog-api-tokenThe JFrog API token to use.
--passwordThe password to authenticate with.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config lsts artifacts artifactory edit (deprecated)​

(DEPRECATED) Use mod config lsts artifacts artifactory add instead.

This command is deprecated. Use mod config lsts artifacts artifactory add instead.

Usage​

mod config lsts artifacts artifactory edit [parameters]

Examples​

mod config lsts artifacts artifactory add https://artifactory.company.com --user lstuser --password secret1

Parameters​

NameDescriptionExample
urlThe URL of the artifact repository that LSTs will be published to.https://artifactory.company-name.com/artifactory/moderne-ingest

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--jfrog-api-tokenThe JFrog API token to use.
--passwordThe password to authenticate with.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config lsts artifacts artifactory delete​

Removes the Artifactory repository configuration. The publish command will no longer function until another artifact source is configured.

If a URL is provided, only that repository is removed. Otherwise, all Artifactory repositories are removed.

Usage​

mod config lsts artifacts artifactory delete [parameters]

Parameters​

NameDescription
urlThe URL of the Artifactory repository to remove. If not provided, all Artifactory repositories are removed.

mod config lsts artifacts artifactory show​

Displays the Artifactory repository configuration.

Usage​

mod config lsts artifacts artifactory show

mod config lsts artifacts show​

Displays the LST artifacts repository configuration.

Usage​

mod config lsts artifacts show

mod config lsts artifacts azure-blob​

Configures the Azure Blob Storage container that LSTs will be published to and downloaded from.

All subsequent publish and download commands will use this Azure Blob Storage container. If neither --connection-string nor --sas-token is provided, DefaultAzureCredential is used (managed identity, workload identity, environment variables, or Azure CLI login).

Usage​

mod config lsts artifacts azure-blob [subcommands]

Subcommands​

  • edit: Configures the Azure Blob Storage container that LSTs will be published to and downloaded from. Must be configured before you can run the publish command.
  • delete: Removes the Azure Blob LST repository configuration. The publish command will no longer function until another artifact source is configured.
  • show: Displays the Azure Blob LST repository configuration.

mod config lsts artifacts azure-blob edit​

Configures the Azure Blob Storage container that LSTs will be published to and downloaded from. Must be configured before you can run the publish command.

All subsequent publish and download commands will use this Azure Blob Storage container.

Usage​

mod config lsts artifacts azure-blob edit [parameters]

Examples​

mod config lsts artifacts azure-blob edit https://myaccount.blob.core.windows.net/mycontainer --sas-token 'sv=...'

Parameters​

NameDescriptionExample
uriThe Azure Blob container URL that LSTs will be published to, e.g. https://{account}.blob.core.windows.net/{container}. Any blob endpoint is accepted, including the sovereign clouds, an Azure Stack Hub deployment, and the path-style http://{host}:{port}/{account}/{container} an emulator serves.https://myaccount.blob.core.windows.net/mycontainer

Options​

NameDescription
--connection-stringAzure Storage connection string (from the storage account's Access keys page).
--sas-tokenShared Access Signature token granting read+write+list access to the container. Provide the query-string portion only (without leading '?').

mod config lsts artifacts azure-blob delete​

Removes the Azure Blob LST repository configuration. The publish command will no longer function until another artifact source is configured.

Usage​

mod config lsts artifacts azure-blob delete

mod config lsts artifacts azure-blob show​

Displays the Azure Blob LST repository configuration.

Usage​

mod config lsts artifacts azure-blob show

mod config lsts artifacts gcs​

Configures the Google Cloud Storage bucket that LSTs will be published to and downloaded from.

All subsequent publish and download commands will use this Cloud Storage bucket. If --credentials-file is not provided, Application Default Credentials are used (workload identity, the GCE/GKE metadata server, GOOGLE_APPLICATION_CREDENTIALS, or gcloud auth application-default login).

Usage​

mod config lsts artifacts gcs [subcommands]

Subcommands​

  • edit: Configures the Cloud Storage bucket that LSTs will be published to and downloaded from. Must be configured before you can run the publish command.
  • delete: Removes the Google Cloud Storage LST repository configuration. The publish command will no longer function until another artifact source is configured.
  • show: Displays the Google Cloud Storage LST repository configuration.

mod config lsts artifacts gcs edit​

Configures the Cloud Storage bucket that LSTs will be published to and downloaded from. Must be configured before you can run the publish command.

All subsequent publish and download commands will use this Cloud Storage bucket.

Usage​

mod config lsts artifacts gcs edit [parameters]

Examples​

mod config lsts artifacts gcs edit gs://bucket

Parameters​

NameDescriptionExample
uriThe Cloud Storage bucket that LSTs will be published to. Must be of the form gs://{bucket}.gs://bucket

Options​

NameDescription
--credentials-filePath to a service account JSON key file. Defaults to Application Default Credentials.
--endpoint-urlOverride the default storage.googleapis.com endpoint, e.g. a Private Service Connect endpoint. An http (not https) endpoint is treated as an emulator and is called without credentials.
--projectThe project to bill requests to. Only needed for requester-pays buckets.

mod config lsts artifacts gcs delete​

Removes the Google Cloud Storage LST repository configuration. The publish command will no longer function until another artifact source is configured.

Usage​

mod config lsts artifacts gcs delete

mod config lsts artifacts gcs show​

Displays the Google Cloud Storage LST repository configuration.

Usage​

mod config lsts artifacts gcs show

mod config lsts artifacts maven​

Configures a Maven-formatted artifact repository that LSTs will be published to and downloaded from.

All subsequent publish and download commands will use this Maven repository.

Usage​

mod config lsts artifacts maven [subcommands]

Subcommands​

  • add: Configures the repository that LSTs will be published to and downloaded from. Must be configured before you can run the publish command.
  • edit: (DEPRECATED) Use mod config lsts artifacts maven add instead.
  • delete: Removes the Maven artifact repository repository configuration. The publish command will no longer function until another artifact source is configured.
  • show: Displays the Maven artifact repository repository configuration.

mod config lsts artifacts maven add​

Configures the repository that LSTs will be published to and downloaded from. Must be configured before you can run the publish command.

All subsequent publish and download commands will use this artifact repository.

Usage​

mod config lsts artifacts maven add [parameters]

Examples​

mod config lsts artifacts maven add <artifact-repository-url> --user <user> --password <password>

Parameters​

NameDescriptionExample
urlThe URL of the artifact repository that LSTs will be published to.https://repo.company-name.com/repository/moderne-ingest

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--passwordThe password to authenticate with.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config lsts artifacts maven edit (deprecated)​

(DEPRECATED) Use mod config lsts artifacts maven add instead.

This command is deprecated. Use mod config lsts artifacts maven add instead.

Usage​

mod config lsts artifacts maven edit [parameters]

Examples​

mod config lsts artifacts maven add <artifact-repository-url> --user <user> --password <password>

Parameters​

NameDescriptionExample
urlThe URL of the artifact repository that LSTs will be published to.https://repo.company-name.com/repository/moderne-ingest

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--passwordThe password to authenticate with.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config lsts artifacts maven delete​

Removes the Maven artifact repository repository configuration. The publish command will no longer function until another artifact source is configured.

If a URL is provided, only that repository is removed. Otherwise, all Maven repositories are removed.

Usage​

mod config lsts artifacts maven delete [parameters]

Parameters​

NameDescription
urlThe URL of the Maven repository to remove. If not provided, all Maven repositories are removed.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config lsts artifacts maven show​

Displays the Maven artifact repository repository configuration.

Usage​

mod config lsts artifacts maven show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config lsts artifacts s3​

Configures the S3 repository that LSTs will be published to and downloaded from.

All subsequent publish and download commands will use this S3 repository.

Usage​

mod config lsts artifacts s3 [subcommands]

Subcommands​

  • edit: Configures the repository that LSTs will be published to and downloaded from. Must be configured before you can run the publish command.
  • delete: Removes the S3 repository configuration. The publish command will no longer function until another artifact source is configured.
  • show: Displays the S3 repository configuration.

mod config lsts artifacts s3 edit​

Configures the repository that LSTs will be published to and downloaded from. Must be configured before you can run the publish command.

All subsequent publish and download commands will use this artifactory repository.

Usage​

mod config lsts artifacts s3 edit [parameters]

Examples​

mod config lsts artifacts s3 edit s3://bucket

Parameters​

NameDescriptionExample
uriThe URL of the artifact repository that LSTs will be published to.s3://bucket

Options​

NameDescription
--endpoint-urlOverride command's default URL with the given URL.
--profileUse a specific profile from your credential file.
--regionThe region to use. Overrides config/env settings.
--skip-sslIf this parameter is included, SSL verification will be skipped.

mod config lsts artifacts s3 delete​

Removes the S3 repository configuration. The publish command will no longer function until another artifact source is configured.

Usage​

mod config lsts artifacts s3 delete

mod config lsts artifacts s3 show​

Displays the S3 repository configuration.

Usage​

mod config lsts artifacts s3 show

mod config lsts cache-dir​

(INCUBATING) Configures the directory for caching LSTs on disk.

When configured, LSTs will be downloaded to this cache directory and symlinked to organization directories.

Usage​

mod config lsts cache-dir [subcommands]

Subcommands​

  • edit: (INCUBATING) Configures the LST cache directory.
  • show: (INCUBATING) Displays the LST cache directory configuration.
  • delete: (INCUBATING) Removes the LST cache directory configuration.

mod config lsts cache-dir edit​

(INCUBATING) Configures the LST cache directory.

All subsequent operations will use this cache directory for storing LSTs.

Usage​

mod config lsts cache-dir edit [parameters]

Parameters​

NameDescription
cacheDirThe path to the directory where LSTs should be cached. Can be an absolute path or start with ~ for home directory.

mod config lsts cache-dir show​

(INCUBATING) Displays the LST cache directory configuration.

Shows the currently configured cache directory for LSTs.

Usage​

mod config lsts cache-dir show

mod config lsts cache-dir delete​

(INCUBATING) Removes the LST cache directory configuration.

LSTs will be stored directly in repository build folders instead of being cached centrally.

Usage​

mod config lsts cache-dir delete

mod config metrics​

Configures metrics publishing.

Configure where and how the CLI publishes metrics.

Usage​

mod config metrics [subcommands]

Subcommands​

  • atlas: Configures Netflix Atlas metrics publishing.

mod config metrics atlas​

Configures Netflix Atlas metrics publishing.

When configured, the CLI pushes metrics to an Atlas endpoint at a configurable interval. Common tags are added to every metric.

Usage​

mod config metrics atlas [subcommands]

Subcommands​

  • edit: Configures the Atlas metrics publishing endpoint.
  • show: Displays the configured Atlas metrics publishing settings.
  • delete: Removes Atlas metrics publishing configuration.

mod config metrics atlas edit​

Configures the Atlas metrics publishing endpoint.

Sets the Atlas publish URL, push interval, and optional common tags.

Usage​

mod config metrics atlas edit [parameters]

Parameters​

NameDescription
urlThe Atlas publish endpoint URL (e.g., https://localhost:7101/api/publish/v2).

Options​

NameDescription
--intervalHow often to push metrics, as an ISO-8601 duration (default: PT1M).
--tagCommon tag as key=value. Repeatable (e.g., --tag stack=main --tag serverGroup=sg-1).

mod config metrics atlas show​

Displays the configured Atlas metrics publishing settings.

Usage​

mod config metrics atlas show

mod config metrics atlas delete​

Removes Atlas metrics publishing configuration.

The CLI will no longer push metrics to Atlas.

Usage​

mod config metrics atlas delete

mod config moderne​

Configures the connection to a Moderne tenant.

All subsequent commands will use this Moderne tenant.

Usage​

mod config moderne [subcommands]

Examples​

mod config moderne edit <host>

Subcommands​

  • delete: Removes the configured Moderne tenant.
  • edit: Configures the connection to a Moderne tenant.
  • local: (DEPRECATED) Configures a connection to a Moderne DX instance running locally on the same machine.
  • login: Logs the CLI into Moderne
  • show: Displays the Moderne tenant configuration.
  • organizations: (INCUBATING) The organizational hierarchy of repository ownership.

mod config moderne delete​

Removes the configured Moderne tenant.

Usage​

mod config moderne delete

mod config moderne edit​

Configures the connection to a Moderne tenant.

All subsequent commands will use this Moderne tenant.

Usage​

mod config moderne edit [parameters]

Examples​

mod config moderne edit <host> --token <token>

Parameters​

NameDescriptionExample
hostThe URL of the Moderne UI.https://app.moderne.io

Options​

NameDescriptionExample
--apiThe URL of the tenant API gateway.https://api.app.moderne.io
--password(DEPRECATED) The password to authenticate with. Use the web-based flow or with-token with the login sub-command instead.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--token(DEPRECATED) The Moderne personal access token to use. Use 'login --with-token' instead.
--user(DEPRECATED) The user to authenticate with. Use the web-based flow or with-token with the login sub-command instead.

mod config moderne local​

(DEPRECATED) Configures a connection to a Moderne DX instance running locally on the same machine.

All subsequent commands will use this instance.

Usage​

mod config moderne local

mod config moderne login​

Logs the CLI into Moderne

The default authorization mode is a web-based browser flow. After login and consent, a PAT (personal access token) will be created and stored in the configuration file.

On a machine without a browser, use --device-code to complete the login from a browser on another device.

Alternatively, use --with-token to pass in an existing token on standard input.

After a successful login, the local CLI recipe marketplace is synchronized from Moderne.

Usage​

mod config moderne login

Options​

NameDescription
--device-codeLog in with the OAuth 2.0 device authorization flow. The CLI prints a URL and a code to enter in a browser on any device, so the machine running the CLI does not need a browser.
--expirationThe time to expiration for the token to be created, as an ISO-8601 duration string. Example: P180D for 180 days.
--with-tokenThe Moderne personal access token to use.
-y, --yesAutomatic yes to prompts when synchronizing the recipe marketplace.

mod config moderne show​

Displays the Moderne tenant configuration.

Shows where requests to Moderne e.g., for recipe and organization information, will be directed.

Usage​

mod config moderne show

mod config moderne organizations​

(INCUBATING) The organizational hierarchy of repository ownership.

Each of these organizations is cloneable.

Usage​

mod config moderne organizations [subcommands]

Subcommands​

  • show: Displays the Moderne view of organizational hierarchy.

mod config moderne organizations show​

Displays the Moderne view of organizational hierarchy.

Usage​

mod config moderne organizations show

Options​

NameDescription
--json

mod config node​

Configures Node options used for building LSTs and running recipes.

Must be configured before you can run the commands that involve non-standard Node configurations.

Usage​

mod config node [subcommands]

Subcommands​

  • installation: Configures locations of Node that can be used by build tools.
  • version: Configures the Node.js version to use.

mod config node installation​

Configures locations of Node that can be used by build tools.

Must be configured before you can run the build command if Node is installed in non-standard locations.

Usage​

mod config node installation [subcommands]

Subcommands​

  • edit: Configures locations of Node that can be used by build tools.
  • delete: Removes the configured Node installations. The CLI will revert to using only detectable Node installations.
  • list: Displays the detected and configured Node installations in the order in which they will be selected, constrained by versions detected from a particular repository.

mod config node installation edit​

Configures locations of Node that can be used by build tools.

Must be configured before you can run the build command if Node is installed in non-standard locations.

Usage​

mod config node installation edit [parameters]

Examples​

mod config node installation edit "C:\Program Files\nodejs"

mod config node installation edit /usr/local/bin/node

Parameters​

NameDescription
nodeInstallationsPaths to Node installations, given as either the installation directory (e.g. "C:\Program Files\nodejs") or the node executable itself (e.g. /usr/local/bin/node). Quote any path that contains spaces.

mod config node installation delete​

Removes the configured Node installations. The CLI will revert to using only detectable Node installations.

Usage​

mod config node installation delete

mod config node installation list​

Displays the detected and configured Node installations in the order in which they will be selected, constrained by versions detected from a particular repository.

Usage​

mod config node installation list

Options​

NameDescription
--namedFilter the list of Node installations to .

mod config node version​

Configures the Node.js version to use.

Configure a name like "18", "18.0.0", or "22" depending on the degree of control needed.

Usage​

mod config node version [subcommands]

Subcommands​

  • edit: Configures the Node.js version to use.
  • delete: Reverts to auto-detection of a Node.js version to use when building a repository.
  • show: Displays the configured Node.js version.

mod config node version edit​

Configures the Node.js version to use.

Configure a name like "18", "18.0.0", or "22" depending on the degree of control needed.

Usage​

mod config node version edit [parameters]

Parameters​

NameDescription
selectedNodeThe named Node.js version to use. If set to "auto", the CLI will revert to detecting the correct Node.js version to use from signals available in the repository.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config node version delete​

Reverts to auto-detection of a Node.js version to use when building a repository.

Usage​

mod config node version delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config node version show​

Displays the configured Node.js version.

Usage​

mod config node version show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config python​

Configures Python options used for building LSTs and running recipes.

Must be configured before you can run the commands that involve non-standard Python configurations.

Usage​

mod config python [subcommands]

Subcommands​

  • installation: Configures locations of Python that can be used by build tools.
  • version: Configures the Python version to use.

mod config python installation​

Configures locations of Python that can be used by build tools.

Must be configured before you can run the build command if Python is installed in non-standard locations.

Usage​

mod config python installation [subcommands]

Subcommands​

  • edit: Configures locations of Python that can be used by build tools.
  • delete: Removes the configured Python installations. The CLI will revert to using only detectable Python installations.
  • list: Displays the detected and configured Python installations in the order in which they will be selected, constrained by versions detected from a particular repository.

mod config python installation edit​

Configures locations of Python that can be used by build tools.

Must be configured before you can run the build command if Python is installed in non-standard locations.

Usage​

mod config python installation edit [parameters]

Examples​

mod config python installation edit "C:\Program Files\Python314"

mod config python installation edit /usr/local/bin/python3

Parameters​

NameDescription
pythonInstallationsPaths to Python installations, given as either the installation directory (e.g. "C:\Program Files\Python314") or the Python executable itself (e.g. /usr/local/bin/python3). Quote any path that contains spaces.

mod config python installation delete​

Removes the configured Python installations. The CLI will revert to using only detectable Python installations.

Usage​

mod config python installation delete

mod config python installation list​

Displays the detected and configured Python installations in the order in which they will be selected, constrained by versions detected from a particular repository.

Usage​

mod config python installation list

Options​

NameDescription
--namedFilter the list of Python installations to a specific version.

mod config python version​

Configures the Python version to use.

Configure a name like "3", "3.12", or "3.12.1" depending on the degree of control needed.

Usage​

mod config python version [subcommands]

Subcommands​

  • edit: Configures the Python version to use.
  • delete: Reverts to auto-detection of a Python version to use when building a repository.
  • show: Displays the configured Python version.

mod config python version edit​

Configures the Python version to use.

Configure a name like "3", "3.12", or "3.12.1" depending on the degree of control needed.

Usage​

mod config python version edit [parameters]

Parameters​

NameDescription
selectedPythonThe named Python version to use. If set to "auto", the CLI will revert to detecting the correct Python version to use from signals available in the repository.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config python version delete​

Reverts to auto-detection of a Python version to use when building a repository.

Usage​

mod config python version delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config python version show​

Displays the configured Python version.

Usage​

mod config python version show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config recipes​

Find recipes and configure the recipe catalog available to the CLI.

mod config recipes search finds a recipe in the catalog, with its id and options. With --json it prints what it finds rather than asking whether to make one the active recipe:

mod config recipes search '<words>' --json=id,description,options

The commands below install recipes into the catalog, from Moderne or from artifact repositories.

Usage​

mod config recipes [subcommands]

Examples​

mod config recipes moderne sync

Subcommands​

  • active: Manage the active recipe configuration.
  • artifacts: Configures artifact repositories to resolve recipes from.
  • bundle: Pack the build of a recipe project into a zip that runs as it is wherever it is put.
  • code-genome-project: Resolves recipes from the Code Genome Project.
  • csv: Manage the recipe marketplace via a Recipe Marketplace CSV.
  • export: Export the recipe catalog for study by different tools.
  • import: Import recipes into the marketplace from different formats.
  • go: Adds or updates a Go module that contains recipes that should be added to the recipe marketplace in the CLI.
  • jar: Adds or updates an artifact that contains recipes that should be added to the recipe marketplace in the CLI.
  • npm: Adds or updates an npm package that contain recipes that should be added to the recipe marketplace in the CLI.
  • nuget: Adds or updates a NuGet package that contains recipes that should be added to the recipe marketplace in the CLI.
  • pip: Adds or updates a pip package that contains recipes that should be added to the recipe marketplace in the CLI.
  • moderne: Configures which Moderne recipes should be installed and used in the local CLI marketplace.
  • delete: Clear the whole recipe marketplace.
  • list: List the artifacts that are contributing recipes to the marketplace.
  • search: Finds recipes based on free form text search.
  • source: Work on the source of recipes in a working set.
  • tree: Show what a composite recipe is made of.
  • upgrade: Upgrades all installed recipe artifacts to the latest available version.
  • yaml: Adds or updates a YAML file that contains recipes that should be added to the recipe marketplace in the CLI.

mod config recipes active​

Manage the active recipe configuration.

The active recipe is a recipe under development that can be run with mod run --active-recipe.

Usage​

mod config recipes active [subcommands]

Examples​

mod config recipes active set src/main/java/com/example/MyRecipe.java

Subcommands​

  • set: Sets a recipe source file as the active recipe.
  • show: Shows the current active recipe configuration.
  • delete: Clears the active recipe configuration.

mod config recipes active set​

Sets a recipe source file as the active recipe.

Accepts a Java source file (.java), a Kotlin source file (.kt), or a YAML recipe file (.yml/.yaml). Detects the build tool (Gradle or Maven), extracts the classpath, and configures the recipe to be run with mod run --active-recipe.

Usage​

mod config recipes active set [parameters]

Examples​

mod config recipes active set src/main/java/com/example/MyRecipe.java

Parameters​

NameDescription
recipeSourceFilePath to a recipe source file (.java, .kt, .yml, or .yaml)

Options​

NameDescription
--recipeRecipe name to select (useful for source files or multi-document YAML files declaring several recipes)

mod config recipes active show​

Shows the current active recipe configuration.

Displays the recipe ID and classpath from the active.recipe file.

Usage​

mod config recipes active show

mod config recipes active delete​

Clears the active recipe configuration.

Removes the active.recipe file.

Usage​

mod config recipes active delete

mod config recipes artifacts​

Configures artifact repositories to resolve recipes from.

Defaults to resolving recipes from Maven Central and Nexus Snapshots.

Usage​

mod config recipes artifacts [subcommands]

Subcommands​

  • artifactory: Configures the artifact repository to resolve recipes from.
  • show: Displays the recipe artifacts repository configuration.
  • maven: Configures a Maven-formatted artifact repository that recipes will be resolved from.
  • npm: Configures an npm registry that recipes will be resolved from.
  • pip: Configures a pip index that recipes will be resolved from.
  • nuget: Configures a NuGet feed that recipes will be resolved from.
  • go: Configures a Go module proxy that recipes will be resolved from.

mod config recipes artifacts artifactory​

Configures the artifact repository to resolve recipes from.

All subsequent recipe installation commands will use this Artifactory repository.

Usage​

mod config recipes artifacts artifactory [subcommands]

Subcommands​

  • add: Configures the artifact repository to resolve recipes from.
  • edit: (DEPRECATED) Use mod config recipes artifacts artifactory add instead.
  • delete: Removes the Artifactory repository configuration.
  • show: Displays the Artifactory repository configuration.

mod config recipes artifacts artifactory add​

Configures the artifact repository to resolve recipes from.

All subsequent recipe installation commands will use this artifact repository.

Usage​

mod config recipes artifacts artifactory add [parameters]

Examples​

mod config recipes artifacts artifactory add <artifact-repository-url> --user <user> --password <password>

Parameters​

NameDescriptionExample
urlThe URL of the artifact repository that recipes will be resolved from.https://artifactory.company-name.com/artifactory/moderne-recipes

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--jfrog-api-tokenThe JFrog API token to use.
--passwordThe password to authenticate with.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config recipes artifacts artifactory edit (deprecated)​

(DEPRECATED) Use mod config recipes artifacts artifactory add instead.

This command is deprecated. Use mod config recipes artifacts artifactory add instead.

Usage​

mod config recipes artifacts artifactory edit [parameters]

Examples​

mod config recipes artifacts artifactory add <artifact-repository-url> --user <user> --password <password>

Parameters​

NameDescriptionExample
urlThe URL of the artifact repository that recipes will be resolved from.https://artifactory.company-name.com/artifactory/moderne-recipes

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--jfrog-api-tokenThe JFrog API token to use.
--passwordThe password to authenticate with.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config recipes artifacts artifactory delete​

Removes the Artifactory repository configuration.

If a URL is provided, only that repository is removed. Otherwise, all Artifactory repositories are removed.

Usage​

mod config recipes artifacts artifactory delete [parameters]

Parameters​

NameDescription
urlThe URL of the Artifactory repository to remove. If not provided, all Artifactory repositories are removed.

mod config recipes artifacts artifactory show​

Displays the Artifactory repository configuration.

Usage​

mod config recipes artifacts artifactory show

mod config recipes artifacts show​

Displays the recipe artifacts repository configuration.

Usage​

mod config recipes artifacts show

mod config recipes artifacts maven​

Configures a Maven-formatted artifact repository that recipes will be resolved from.

All subsequent recipe installation commands will use this Maven repository.

Usage​

mod config recipes artifacts maven [subcommands]

Subcommands​

  • add: Configures a repository that recipes will be resolved from.
  • edit: (DEPRECATED) Use mod config recipes artifacts maven add instead.
  • delete: Removes the Maven artifact repository repository configuration.
  • show: Displays the Maven artifact repository repository configuration.

mod config recipes artifacts maven add​

Configures a repository that recipes will be resolved from.

If a repository with the same URL already exists, it will be updated. Otherwise, the repository will be added to the list of Maven repositories.

Usage​

mod config recipes artifacts maven add [parameters]

Examples​

mod config recipes artifacts maven add <artifact-repository-url> --user <user> --password <password>

Parameters​

NameDescription
urlThe URL of the artifact repository that recipes will be resolved from.

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--passwordThe password to authenticate with.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config recipes artifacts maven edit (deprecated)​

(DEPRECATED) Use mod config recipes artifacts maven add instead.

This command is deprecated. Use mod config recipes artifacts maven add instead.

Usage​

mod config recipes artifacts maven edit [parameters]

Examples​

mod config recipes artifacts maven add <artifact-repository-url> --user <user> --password <password>

Parameters​

NameDescription
urlThe URL of the artifact repository that recipes will be resolved from.

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--passwordThe password to authenticate with.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config recipes artifacts maven delete​

Removes the Maven artifact repository repository configuration.

If a URL is provided, only that repository is removed. Otherwise, all Maven repositories are removed.

Usage​

mod config recipes artifacts maven delete [parameters]

Parameters​

NameDescription
urlThe URL of the repository to remove. If not provided, all repositories of this type are removed.

mod config recipes artifacts maven show​

Displays the Maven artifact repository repository configuration.

Usage​

mod config recipes artifacts maven show

mod config recipes artifacts npm​

Configures an npm registry that recipes will be resolved from.

All subsequent recipes npm install commands will use the configured registries.

Usage​

mod config recipes artifacts npm [subcommands]

Subcommands​

  • add: Configures an npm registry that recipes will be resolved from.
  • delete: Removes an npm registry from the recipe artifact repository configuration.
  • show: Displays the configured npm recipe artifact registries.

mod config recipes artifacts npm add​

Configures an npm registry that recipes will be resolved from.

If a registry with the same URL already exists, it will be updated. Otherwise, the registry will be appended to the list of npm registries.

Usage​

mod config recipes artifacts npm add [parameters]

Examples​

mod config recipes artifacts npm add <registry-url> --scope @myorg --user <user> --password <password>

Parameters​

NameDescription
urlThe URL of the artifact repository that recipes will be resolved from.

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--passwordThe password to authenticate with.
--scopeThe npm package scope (e.g. @myorg) that this registry serves. If omitted, this registry is configured as the default for unscoped packages.@myorg
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config recipes artifacts npm delete​

Removes an npm registry from the recipe artifact repository configuration.

If a URL is provided, only that registry is removed. Otherwise, all npm registries are removed.

Usage​

mod config recipes artifacts npm delete [parameters]

Parameters​

NameDescription
urlThe URL of the repository to remove. If not provided, all repositories of this type are removed.

mod config recipes artifacts npm show​

Displays the configured npm recipe artifact registries.

Usage​

mod config recipes artifacts npm show

mod config recipes artifacts pip​

Configures a pip index that recipes will be resolved from.

All subsequent recipes pip install commands will use the configured indices.

Usage​

mod config recipes artifacts pip [subcommands]

Subcommands​

  • add: Configures a pip index that recipes will be resolved from.
  • delete: Removes a pip index from the recipe artifact repository configuration.
  • show: Displays the configured pip recipe artifact indices.

mod config recipes artifacts pip add​

Configures a pip index that recipes will be resolved from.

If an index with the same URL already exists, it will be updated. Otherwise, the index will be appended to the list of pip indices.

Usage​

mod config recipes artifacts pip add [parameters]

Examples​

mod config recipes artifacts pip add <index-url> --user <user> --password <password>

Parameters​

NameDescription
urlThe URL of the artifact repository that recipes will be resolved from.

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--passwordThe password to authenticate with.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config recipes artifacts pip delete​

Removes a pip index from the recipe artifact repository configuration.

If a URL is provided, only that index is removed. Otherwise, all pip indices are removed.

Usage​

mod config recipes artifacts pip delete [parameters]

Parameters​

NameDescription
urlThe URL of the repository to remove. If not provided, all repositories of this type are removed.

mod config recipes artifacts pip show​

Displays the configured pip recipe artifact indices.

Usage​

mod config recipes artifacts pip show

mod config recipes artifacts nuget​

Configures a NuGet feed that recipes will be resolved from.

All subsequent recipes nuget install commands will use the configured feeds.

Usage​

mod config recipes artifacts nuget [subcommands]

Subcommands​

  • add: Configures a NuGet feed that recipes will be resolved from.
  • delete: Removes a NuGet feed from the recipe artifact repository configuration.
  • show: Displays the configured NuGet recipe artifact feeds.

mod config recipes artifacts nuget add​

Configures a NuGet feed that recipes will be resolved from.

If a feed with the same URL already exists, it will be updated. Otherwise, the feed will be appended to the list of NuGet feeds. NuGet.config requires unique feed names; if --name is omitted, the URL host is used as a fallback at install time.

Usage​

mod config recipes artifacts nuget add [parameters]

Examples​

mod config recipes artifacts nuget add <feed-url> --name myfeed --user <user> --password <password>

Parameters​

NameDescription
urlThe URL of the artifact repository that recipes will be resolved from.

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--nameThe feed name used in the generated NuGet.config. Defaults to the URL host.internal
--passwordThe password to authenticate with.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config recipes artifacts nuget delete​

Removes a NuGet feed from the recipe artifact repository configuration.

If a URL is provided, only that feed is removed. Otherwise, all NuGet feeds are removed.

Usage​

mod config recipes artifacts nuget delete [parameters]

Parameters​

NameDescription
urlThe URL of the repository to remove. If not provided, all repositories of this type are removed.

mod config recipes artifacts nuget show​

Displays the configured NuGet recipe artifact feeds.

Usage​

mod config recipes artifacts nuget show

mod config recipes artifacts go​

Configures a Go module proxy that recipes will be resolved from.

All subsequent recipes go install commands will use the configured feeds.

Usage​

mod config recipes artifacts go [subcommands]

Subcommands​

  • add: Configures a Go module proxy that recipes will be resolved from.
  • delete: Removes a Go feed from the recipe artifact repository configuration.
  • show: Displays the configured Go recipe artifact feeds.

mod config recipes artifacts go add​

Configures a Go module proxy that recipes will be resolved from.

If a feed with the same URL already exists, it will be updated. Otherwise, the feed will be appended to the list of Go feeds.

Usage​

mod config recipes artifacts go add [parameters]

Examples​

mod config recipes artifacts go add <feed-url> --user <user> --password <password>

Parameters​

NameDescription
urlThe URL of the artifact repository that recipes will be resolved from.

Options​

NameDescriptionExample
--authorizationThe authorization header value to use.Bearer XXXXX
--passwordThe password to authenticate with.
--skip-sslIf this parameter is included, SSL verification will be skipped.
--userThe user to authenticate with.

mod config recipes artifacts go delete​

Removes a Go feed from the recipe artifact repository configuration.

If a URL is provided, only that feed is removed. Otherwise, all Go feeds are removed.

Usage​

mod config recipes artifacts go delete [parameters]

Parameters​

NameDescription
urlThe URL of the repository to remove. If not provided, all repositories of this type are removed.

mod config recipes artifacts go show​

Displays the configured Go recipe artifact feeds.

Usage​

mod config recipes artifacts go show

mod config recipes bundle​

Pack the build of a recipe project into a zip that runs as it is wherever it is put.

The zip holds the project's jars and everything they run with, the recipes they provide, and what built them. Put it in another working set's .moderne/recipes/ to run its recipes there in place of any published under the same names, or push it to Moderne to run it once. Only the build of a Gradle or Maven recipe project can be bundled.

Usage​

mod config recipes bundle [parameters] [subcommands]

Examples​

mod config recipes bundle .moderne/recipes/rewrite-spring

mod config recipes bundle push .moderne/recipes/rewrite-spring

Parameters​

NameDescription
projectThe directory of a Gradle or Maven recipe project. It is built first when its source changed.

Options​

NameDescription
--outputWhere to write the zip. By default, the project's name with .zip, in the current directory.

Subcommands​

  • push: Upload the build of a recipe project to Moderne, to run once.
  • check: List the recipes a bundle's zip holds, and its size.

mod config recipes bundle push​

Upload the build of a recipe project to Moderne, to run once.

Packs the project as bundle does and uploads the zip, which Moderne keeps for a day and installs in no marketplace. A recipe run that names its id as bundleId runs its recipes in place of any published under the same names. Only an administrator can push a bundle, and only whoever pushed it can run it.

Usage​

mod config recipes bundle push [parameters]

Examples​

mod config recipes bundle push .moderne/recipes/rewrite-spring

Parameters​

NameDescription
projectThe directory of a Gradle or Maven recipe project. It is built first when its source changed.

mod config recipes bundle check​

List the recipes a bundle's zip holds, and its size.

Reads only the zip, so it can be checked before it is pushed.

Usage​

mod config recipes bundle check [parameters]

Examples​

mod config recipes bundle check rewrite-spring.zip

Parameters​

NameDescription
zipThe zip that bundle wrote.

mod config recipes code-genome-project​

Resolves recipes from the Code Genome Project.

With the username and token Moderne gives you, recipes resolve from the Code Genome Project's Maven repository, and the packages they use from its npm, PyPI and NuGet ones. It is asked after the repositories that mod config recipes artifacts names.

Usage​

mod config recipes code-genome-project [subcommands]

Examples​

mod config recipes code-genome-project edit --username moderne --token

Subcommands​

  • delete: Stops resolving recipes from the Code Genome Project.
  • edit: Sets the username and token the Code Genome Project is read with.
  • show: Displays the Code Genome Project recipe source.

mod config recipes code-genome-project delete​

Stops resolving recipes from the Code Genome Project.

Usage​

mod config recipes code-genome-project delete

mod config recipes code-genome-project edit​

Sets the username and token the Code Genome Project is read with.

The token is kept with the CLI's other secrets.

Usage​

mod config recipes code-genome-project edit

Options​

NameDescription
--tokenYour Code Genome Project token. Given no value, the CLI asks for it.
--usernameYour Code Genome Project username.

mod config recipes code-genome-project show​

Displays the Code Genome Project recipe source.

Usage​

mod config recipes code-genome-project show

mod config recipes csv​

Manage the recipe marketplace via a Recipe Marketplace CSV.

Usage​

mod config recipes csv [subcommands]

Subcommands​

  • sync: Synchronizes the local CLI recipe marketplace from a Recipe Marketplace CSV.

mod config recipes csv sync​

Synchronizes the local CLI recipe marketplace from a Recipe Marketplace CSV.

Downloads or copies a Recipe Marketplace CSV from the given URI and installs it as the local CLI marketplace, replacing any existing marketplace state. See https://docs.moderne.io/user-documentation/moderne-cli/references/recipes-csv/#csv-format.

Usage​

mod config recipes csv sync [parameters]

Examples​

mod config recipes csv sync /path/to/recipes.csv

mod config recipes csv sync https://example.com/recipes.csv

Parameters​

NameDescriptionExample
csvThe URI (local file or remote URL) of the recipes CSV./path/to/recipes.csv

mod config recipes export​

Export the recipe catalog for study by different tools.

Usage​

mod config recipes export [subcommands]

Subcommands​

  • json: (DEPRECATED) Export recipe details as JSON.
  • csv: Export recipe details as CSV.

mod config recipes export json​

(DEPRECATED) Export recipe details as JSON.

This format has been superseded by the standard Recipe Marketplace CSV format.

Usage​

mod config recipes export json [parameters]

Parameters​

NameDescription
outputThe path to the output JSON file.

mod config recipes export csv​

Export recipe details as CSV.

Usage​

mod config recipes export csv [parameters]

Parameters​

NameDescription
outputThe path to the output CSV file.

mod config recipes import​

Import recipes into the marketplace from different formats.

Usage​

mod config recipes import [subcommands]

Subcommands​

  • csv: Import recipes from a CSV file into the marketplace.

mod config recipes import csv​

Import recipes from a CSV file into the marketplace.

Reads recipes from the specified CSV file and merges them into the existing recipe marketplace. Recipes with the same name will be replaced by the imported version. See https://docs.moderne.io/user-documentation/moderne-cli/references/recipes-csv/#csv-format for the CSV format.

Usage​

mod config recipes import csv [parameters]

Parameters​

NameDescription
inputThe path to the CSV file to import.

mod config recipes go​

Adds or updates a Go module that contains recipes that should be added to the recipe marketplace in the CLI.

Allows installing and deleting recipes from Go modules.

Usage​

mod config recipes go [subcommands]

Subcommands​

  • install: Adds or updates a Go module that contains recipes that should be added to the recipe marketplace in the CLI.
  • retrieve: Reports where an installed Go recipe module is on disk.
  • delete: Removes a Go module supplying recipes from the marketplace.

mod config recipes go install​

Adds or updates a Go module that contains recipes that should be added to the recipe marketplace in the CLI.

The recipes defined by this Go module will then be available to run.

Usage​

mod config recipes go install [parameters]

Examples​

mod config recipes go install github.com/openrewrite/rewrite-go-recipes@v1.0.0

Parameters​

NameDescription
MODULE[@VERSION]The Go module path with an optional version in the format module@version, where @version is optional.

mod config recipes go retrieve​

Reports where an installed Go recipe module is on disk.

Locates an installed Go module in the module cache and prints its directory. A Go recipe sidecar can load the recipes from that directory without contacting a module proxy.

Usage​

mod config recipes go retrieve [parameters]

Examples​

mod config recipes go retrieve github.com/openrewrite/rewrite-go-recipes

Parameters​

NameDescription
MODULEThe Go module path as it was installed.

Options​

NameDescription
--jsonPrint the result as JSON rather than for reading. Nothing else is written to stdout.

mod config recipes go delete​

Removes a Go module supplying recipes from the marketplace.

The recipes defined by this Go module will then no longer be available to run.

Usage​

mod config recipes go delete [parameters]

Examples​

mod config recipes go delete github.com/openrewrite/rewrite-go-recipes

Parameters​

NameDescriptionExample
modulePathA Go module path.github.com/openrewrite/rewrite-go-recipes

mod config recipes jar​

Adds or updates an artifact that contains recipes that should be added to the recipe marketplace in the CLI.

The recipes defined by this artifact will then be available to run.

Usage​

mod config recipes jar [subcommands]

Examples​

mod config recipes jar install org.openrewrite:rewrite-java:LATEST

Subcommands​

  • install: Adds or updates an artifact that contains recipes that should be added to the recipe marketplace in the CLI.
  • retrieve: Retrieves an installed recipe artifact's dependencies and records its classpath.
  • delete: Removes an artifact supplying recipes to the marketplace.

mod config recipes jar install​

Adds or updates an artifact that contains recipes that should be added to the recipe marketplace in the CLI.

The recipes defined by this artifact will then be available to run.

Usage​

mod config recipes jar install [parameters]

Examples​

mod config recipes jar install org.openrewrite:rewrite-java:LATEST

Parameters​

NameDescription
GAVThe group, artifact, and version of the artifact to install in the format groupId:artifactId:version. The version may be a fixed version, LATEST, or RELEASE.
The dependency will be resolved from the artifact source defined in mod config recipes artifacts

mod config recipes jar retrieve​

Retrieves an installed recipe artifact's dependencies and records its classpath.

Downloads the dependencies of an installed recipe artifact and records its classpath so that later runs do not resolve it again. Prints the recipe JAR and the number of dependencies retrieved.

Usage​

mod config recipes jar retrieve [parameters]

Examples​

mod config recipes jar retrieve org.openrewrite:rewrite-java

Parameters​

NameDescription
GAThe group and artifact of an installed recipe artifact, in the format groupId:artifactId. The version is the one mod config recipes jar install selected.
The dependencies will be resolved from the artifact source defined in mod config recipes artifacts

Options​

NameDescription
--jsonPrint the result as JSON rather than for reading. Nothing else is written to stdout.

mod config recipes jar delete​

Removes an artifact supplying recipes to the marketplace.

The recipes defined by this artifact will then no longer be available to run.

Usage​

mod config recipes jar delete [parameters]

Examples​

mod config recipes jar delete rewrite-java

Parameters​

NameDescriptionExamples
artifactAn artifact name or group and artifact name.• rewrite-java
• org.openrewrite:rewrite-java

mod config recipes npm​

Adds or updates an npm package that contain recipes that should be added to the recipe marketplace in the CLI.

Allows installing and deleting recipes from npm packages.

Usage​

mod config recipes npm [subcommands]

Subcommands​

  • install: Adds or updates an npm package that contain recipes that should be added to the recipe marketplace in the CLI.
  • retrieve: Reports where an installed npm recipe package is on disk.
  • delete: Removes an npm package supplying recipes from the marketplace.

mod config recipes npm install​

Adds or updates an npm package that contain recipes that should be added to the recipe marketplace in the CLI.

The recipes defined by this npm package will then be available to run.

Usage​

mod config recipes npm install [parameters]

Examples​

mod config recipes npm install my-recipe-package@latest

Parameters​

NameDescription
PACKAGE[@VERSION]The npm package name with an optional version in the format package@version, where @version is optional. Alternatively,a path to a compiled recipe on disk that provides an OpenRewrite activate function.

mod config recipes npm retrieve​

Reports where an installed npm recipe package is on disk.

Verifies that an installed npm package is still on disk and prints its directory. A JavaScript recipe sidecar can load the recipes from that directory without contacting the registry.

Usage​

mod config recipes npm retrieve [parameters]

Examples​

mod config recipes npm retrieve @openrewrite/recipes-nodejs

Parameters​

NameDescription
PACKAGEThe npm package name as it was installed, with its @scope if it has one.

Options​

NameDescription
--jsonPrint the result as JSON rather than for reading. Nothing else is written to stdout.

mod config recipes npm delete​

Removes an npm package supplying recipes from the marketplace.

The recipes defined by this npm package will then no longer be available to run.

Usage​

mod config recipes npm delete [parameters]

Examples​

mod config recipes npm delete my-recipe-package

Parameters​

NameDescriptionExample
packageNameAn npm package name or a compiled JavaScript file containing an OpenRewrite activate function.@openrewrite/recipes-nodejs

mod config recipes nuget​

Adds or updates a NuGet package that contains recipes that should be added to the recipe marketplace in the CLI.

Allows installing and deleting recipes from NuGet packages.

Usage​

mod config recipes nuget [subcommands]

Subcommands​

  • install: Adds or updates a NuGet package that contains recipes that should be added to the recipe marketplace in the CLI.
  • retrieve: Reports where an installed NuGet recipe package's publish output is on disk.
  • delete: Removes a NuGet package supplying recipes from the marketplace.

mod config recipes nuget install​

Adds or updates a NuGet package that contains recipes that should be added to the recipe marketplace in the CLI.

The recipes defined by this NuGet package will then be available to run.

Usage​

mod config recipes nuget install [parameters]

Examples​

mod config recipes nuget install OpenRewrite.Recipes@1.0.0

Parameters​

NameDescription
PACKAGE[@VERSION]The NuGet package name with an optional version in the format package@version, where @version is optional.

mod config recipes nuget retrieve​

Reports where an installed NuGet recipe package's publish output is on disk.

Verifies that an installed NuGet package's publish output is still on disk and prints its directory. A C# recipe sidecar can load the recipes from that directory without contacting a feed.

Usage​

mod config recipes nuget retrieve [parameters]

Examples​

mod config recipes nuget retrieve OpenRewrite.Recipes

Parameters​

NameDescription
PACKAGEThe NuGet package id as it was installed.

Options​

NameDescription
--jsonPrint the result as JSON rather than for reading. Nothing else is written to stdout.

mod config recipes nuget delete​

Removes a NuGet package supplying recipes from the marketplace.

The recipes defined by this NuGet package will then no longer be available to run.

Usage​

mod config recipes nuget delete [parameters]

Examples​

mod config recipes nuget delete OpenRewrite.Recipes

Parameters​

NameDescriptionExample
packageNameA NuGet package name.OpenRewrite.Recipes

mod config recipes pip​

Adds or updates a pip package that contains recipes that should be added to the recipe marketplace in the CLI.

Allows installing and deleting recipes from pip packages.

Usage​

mod config recipes pip [subcommands]

Subcommands​

  • install: Adds or updates a pip package that contains recipes that should be added to the recipe marketplace in the CLI.
  • retrieve: Reports where an installed pip recipe package is on disk.
  • delete: Removes a pip package supplying recipes from the marketplace.

mod config recipes pip install​

Adds or updates a pip package that contains recipes that should be added to the recipe marketplace in the CLI.

The recipes defined by this pip package will then be available to run.

Usage​

mod config recipes pip install [parameters]

Examples​

mod config recipes pip install rewrite-recipe-example==1.0.0

Parameters​

NameDescription
PACKAGE[==VERSION]The pip package name or local path with an optional version in the format package==version, where ==version is optional.

mod config recipes pip retrieve​

Reports where an installed pip recipe package is on disk.

Verifies that an installed pip package is still on disk and prints the directory it was installed into. A Python recipe sidecar given that directory as its recipe install directory can import the recipes without contacting the index.

Usage​

mod config recipes pip retrieve [parameters]

Examples​

mod config recipes pip retrieve rewrite-recipe-example

Parameters​

NameDescription
PACKAGEThe pip distribution name as it was installed.

Options​

NameDescription
--jsonPrint the result as JSON rather than for reading. Nothing else is written to stdout.

mod config recipes pip delete​

Removes a pip package supplying recipes from the marketplace.

The recipes defined by this pip package will then no longer be available to run.

Usage​

mod config recipes pip delete [parameters]

Examples​

mod config recipes pip delete rewrite-recipe-example

Parameters​

NameDescriptionExample
packageNameA pip package name.rewrite-recipe-example

mod config recipes moderne​

Configures which Moderne recipes should be installed and used in the local CLI marketplace.

The recipes installed will then be available to run locally.

Usage​

mod config recipes moderne [subcommands]

Examples​

mod config recipes moderne install <SEARCH_TERM>

mod config recipes moderne sync

Subcommands​

  • install: Allows you to find and install recipes from Moderne.
  • sync: Synchronizes the local CLI recipe marketplace with Moderne.

mod config recipes moderne install​

Allows you to find and install recipes from Moderne.

After providing a search term, the Moderne API will be queried to find recipes that match it. You will be provided with up to 10 possible matches and the option to select one to install. If you select to install one, the appropriate JAR will be downloaded and added to your local CLI marketplace. The recipes defined by this artifact will then be available to run.

Usage​

mod config recipes moderne install [parameters]

Examples​

mod config recipes moderne install <SEARCH_TERM>

mod config recipes moderne install FindTypes

mod config recipes moderne install "Migrate Java"

Parameters​

NameDescription
searchTermThe search term to use to find recipes to install.

mod config recipes moderne sync​

Synchronizes the local CLI recipe marketplace with Moderne.

Destroys all recipes in the local CLI marketplace and replaces them with the latest recipes available in Moderne. The recipes defined by these artifacts will then be available to run.

Usage​

mod config recipes moderne sync

Options​

NameDescription
-y, --yesAutomatically confirm replacing an existing local marketplace. Required when there is no console to prompt on.

mod config recipes delete​

Clear the whole recipe marketplace.

No recipes will be available to run until they are installed again.

Usage​

mod config recipes delete

mod config recipes list​

List the artifacts that are contributing recipes to the marketplace.

Usage​

mod config recipes list

Finds recipes based on free form text search.

The found recipes may then be set as the active recipe. Multiple word searches may, but don't need to surrounded by quotes on the command line.

Usage​

mod config recipes search [parameters]

Examples​

mod config recipes search owasp

Parameters​

NameDescription
query

Options​

NameDescription
--jsonPrint the results as JSON rather than asking which one you want. Defaults to displayName, id and recipeCount; any of id, displayName, description, recipeCount, ecosystem, package, version, options and dataTables may be named instead.
--limitThe maximum total number of results that will be returned.

mod config recipes source​

Work on the source of recipes in a working set.

A recipe project kept under .moderne/recipes/ of a working set is built from its source whenever it changed and its recipes run in place of the published ones of the same names, in every mod run on a path inside that working set. Nothing is published or installed. On a working set checked out to a changeset, each is a git repository whose commits are pushed to the changeset for the other sessions to pull.

Usage​

mod config recipes source [subcommands]

Examples​

mod config recipes source checkout . --recipe org.openrewrite.java.migrate.UpgradeToJava25

Subcommands​

  • checkout: Check out the source of a recipe into the working set.
  • new: Start a new recipe project in the working set.

mod config recipes source checkout​

Check out the source of a recipe into the working set.

Finds the repository the recipe's package was built from, in the package's own metadata, and clones it to .moderne/recipes/<name>. On a working set checked out to a changeset that already holds the repository, the changeset's copy is cloned, which has the commits other sessions pushed. Otherwise the upstream default branch is cloned with its whole history.

Usage​

mod config recipes source checkout [parameters]

Examples​

mod config recipes source checkout . --recipe org.openrewrite.java.migrate.UpgradeToJava25

mod config recipes source checkout . --url https://github.com/openrewrite/rewrite-migrate-java

Parameters​

NameDescription
pathThe working set to check the recipe's source out into.

Options​

NameDescription
--recipeThe ID of a recipe whose source to check out. A trailing portion of the ID is accepted when it matches only one recipe.
--urlThe git repository to clone, for a package that does not say where its source is kept, or to check out a repository no installed recipe came from.

mod config recipes source new​

Start a new recipe project in the working set.

Writes a recipe project to .moderne/recipes/<name> and makes it a git repository. On a working set checked out to a changeset its branch is the changeset's and its commits are pushed there. It builds as it stands, so a recipe added to it runs on the next mod run.

Usage​

mod config recipes source new [parameters]

Examples​

mod config recipes source new . rewrite-acme

mod config recipes source new . recipes-acme --ecosystem npm

Parameters​

NameDescription
pathThe working set to start the recipe project in.
nameThe name of the project and of its repository, for example rewrite-acme.

Options​

NameDescription
--ecosystemWhat builds the project, which settles the language of its recipes: gradle for recipes written in Java, npm for recipes written in TypeScript, which is how a recipe for JavaScript or TypeScript code is written. Default: gradle.
--groupThe group the project's artifact is published under, which also begins its package.

mod config recipes tree​

Show what a composite recipe is made of.

A migration recipe composes hundreds or thousands of others, and its description cannot say what all of them do. This expands one level at a time so that the size of the answer does not depend on the size of the recipe. Drill in by running this again on the ID of any line that shows a child count.

Usage​

mod config recipes tree [parameters]

Examples​

mod config recipes tree org.openrewrite.java.migrate.UpgradeToJava25

Parameters​

NameDescription
recipeThe recipe ID to expand. A trailing portion of the ID is accepted when it matches only one recipe.

Options​

NameDescription
--depthHow many levels below the recipe to expand.
--jsonPrint the tree as JSON rather than for reading. Defaults to id and instanceName; any of id, instanceName, displayName, description, distinctRecipes, ecosystem, package and version may be named instead.

mod config recipes upgrade​

Upgrades all installed recipe artifacts to the latest available version.

For each installed recipe artifact with a dynamic requested version, re-resolves the latest version from the configured artifact source and reinstalls it.

Usage​

mod config recipes upgrade

Examples​

mod config recipes upgrade

mod config recipes yaml​

Adds or updates a YAML file that contains recipes that should be added to the recipe marketplace in the CLI.

The recipes defined in this YAML file will then be available to run.

Usage​

mod config recipes yaml [subcommands]

Examples​

mod config recipes yaml install /path/to/yaml

Subcommands​

  • install: Adds or updates a YAML file that contains recipes that should be added to the recipe marketplace in the CLI.
  • delete: Removes an artifact supplying recipes to the marketplace.

mod config recipes yaml install​

Adds or updates a YAML file that contains recipes that should be added to the recipe marketplace in the CLI.

The recipes defined in this YAML file will then be available to run.

Usage​

mod config recipes yaml install [parameters]

Examples​

mod config recipes yaml install /path/to/yaml

Parameters​

NameDescription
pathsThe path(s) to the YAML file to install. Each YAML file will be copied, so if further modifications to them are made, make sure to reinstall.

Options​

NameDescription
--categoryThe name of the category to install these recipes into.

mod config recipes yaml delete​

Removes an artifact supplying recipes to the marketplace.

The recipes defined by this artifact will then no longer be available to run.

Usage​

mod config recipes yaml delete [parameters]

Examples​

mod config recipes yaml delete /path/to/yml

Parameters​

NameDescription
pathThe path to the YAML file to uninstall.

mod config run​

Configures recipe run behavior.

All subsequent runs will use these settings

Usage​

mod config run [subcommands]

Subcommands​

  • polyglot-parallel: Configure how many polyglot rewrite-rpc requests may run concurrently.
  • stall-threshold: Configure how long a run may go without any repository finishing.
  • timeout: Configure the run timeout.

mod config run polyglot-parallel​

Configure how many polyglot rewrite-rpc requests may run concurrently.

Caps the number of in-flight visit/parse/generate calls to Python, JavaScript, .NET, and Go rewrite-rpc subprocesses across a single recipe run. Each subprocess is unbounded in memory; this knob caps how many can be actively executing at the same time so the host running the CLI does not exhaust RAM. Pure-Java recipes are unaffected.

Usage​

mod config run polyglot-parallel [subcommands]

Subcommands​

  • delete: Restore the polyglot rewrite-rpc concurrency cap to the default value.
  • edit: Configure the polyglot rewrite-rpc concurrency cap.
  • show: Display the configured polyglot rewrite-rpc concurrency cap.

mod config run polyglot-parallel delete​

Restore the polyglot rewrite-rpc concurrency cap to the default value.

Usage​

mod config run polyglot-parallel delete

mod config run polyglot-parallel edit​

Configure the polyglot rewrite-rpc concurrency cap.

Usage​

mod config run polyglot-parallel edit [parameters]

Parameters​

NameDescription
parallelMaximum number of polyglot rewrite-rpc requests in flight at once. Sized to host memory headroom. Allowed range: 1-64.

mod config run polyglot-parallel show​

Display the configured polyglot rewrite-rpc concurrency cap.

Usage​

mod config run polyglot-parallel show

mod config run stall-threshold​

Configure how long a run may go without any repository finishing.

When no repository in a run has finished for this long, the CLI gives up on the repository that has been running the longest and lets the rest of the run continue, rather than the whole run being killed with nothing to show for it. The clock is relative to the run as a whole, so a legitimately slow repository is never given up on while other repositories are still finishing. Set to PT0S to disable.

Usage​

mod config run stall-threshold [subcommands]

Subcommands​

  • delete: Restores the configured run stall threshold to the default value.
  • edit: Configure how long a run may go without any repository finishing.
  • show: Displays the configured run stall threshold.

mod config run stall-threshold delete​

Restores the configured run stall threshold to the default value.

Usage​

mod config run stall-threshold delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config run stall-threshold edit​

Configure how long a run may go without any repository finishing.

Usage​

mod config run stall-threshold edit [parameters]

Parameters​

NameDescription
durationThe duration expressed as an ISO-8601 duration. For example: 'PT15M' for fifteen minutes, 'PT1H' for one hour. 'PT0S' disables giving up on a repository entirely.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config run stall-threshold show​

Displays the configured run stall threshold.

Usage​

mod config run stall-threshold show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config run timeout​

Configure the run timeout.

Limits the amount of time the CLI will wait for a single execution of a recipe run.

Usage​

mod config run timeout [subcommands]

Subcommands​

  • delete: Restores the configured run timeout to the default value.
  • edit: Configure the timeout for recipe runs.
  • show: Displays the configured run timeout.

mod config run timeout delete​

Restores the configured run timeout to the default value.

Usage​

mod config run timeout delete

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config run timeout edit​

Configure the timeout for recipe runs.

Limits the amount of time the CLI will wait for a single execution of a recipe run.

Usage​

mod config run timeout edit [parameters]

Parameters​

NameDescription
durationThe duration of the timeout expressed as an ISO-8601 duration. For example: 'PT1H' for one hour, 'PT30M' for 30 minutes, 'PT1H30M' for one hour and 30 minutes.

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config run timeout show​

Displays the configured run timeout.

Usage​

mod config run timeout show

Options​

NameDescription
--localApply this command recursively to all repositories found within the specified directory path, modifying each repository's git-ignored file .moderne/moderne-uncommitted.yml
Has no impact on the global configuration.
--saveApply the operation to the file .moderne/moderne.yml which can be committed to source control as opposed to the git-ignored variant.
Can only be used with --local.
Has no effect on the global configuration.

mod config scm (deprecated)​

(DEPRECATED) Configures source code management.

Usage​

mod config scm [subcommands]

Subcommands​

  • moderne: (DEPRECATED) Configures the SCM configuration with Moderne
  • add
  • remove
  • show: (DEPRECATED) Displays the configured SCMs

mod config scm moderne (deprecated)​

(DEPRECATED) Configures the SCM configuration with Moderne

Usage​

mod config scm moderne [subcommands]

Examples​

mod config scm moderne sync

Subcommands​

  • sync: Synchronizes the SCM configuration with your Moderne instance

mod config scm moderne sync (deprecated)​

Synchronizes the SCM configuration with your Moderne instance

Usage​

mod config scm moderne sync

mod config scm add (deprecated)​

(DEPRECATED) Add an SCM configuration

Usage​

mod config scm add [parameters]

Parameters​

NameDescription
typeThe SCM type
baseUrlThe primary SCM URL

Options​

NameDescription
--alternate-urlAlternate SCM URLs

mod config scm remove (deprecated)​

(DEPRECATED) Remove an SCM configuration by type and URL

Usage​

mod config scm remove [parameters]

Parameters​

NameDescription
type
baseUrl

mod config scm show (deprecated)​

(DEPRECATED) Displays the configured SCMs

Usage​

mod config scm show

mod config secrets​

Configures how secrets in the configuration are kept.

Tokens and passwords are written to moderne.yml as ${secret:name} placeholders, so that reading the configuration does not reveal them.

Usage​

mod config secrets [subcommands]

Subcommands​

  • store: Configures where the secrets of the global configuration are kept.

mod config secrets store​

Configures where the secrets of the global configuration are kept.

Either the OS keychain (the macOS keychain, Windows Credential Manager, or the Secret Service of a Linux desktop through secret-tool) or a secrets.properties file beside moderne.yml. The keychain is the default on macOS and Windows, the file on Linux.

Usage​

mod config secrets store [subcommands]

Subcommands​

  • delete: Keeps secrets in the default store for this OS, moving every secret in moderne.yml there.
  • edit: Chooses where secrets are kept, moving every secret in moderne.yml there.
  • show: Displays where secrets are kept.

mod config secrets store delete​

Keeps secrets in the default store for this OS, moving every secret in moderne.yml there.

Usage​

mod config secrets store delete

mod config secrets store edit​

Chooses where secrets are kept, moving every secret in moderne.yml there.

Secrets still in plain text move too, and one that can't be moved is reported.

Usage​

mod config secrets store edit [parameters]

Parameters​

NameDescription
storeEither 'keychain' or 'file'.

mod config secrets store show​

Displays where secrets are kept.

Usage​

mod config secrets store show

mod config telemetry​

Configures CLI telemetry.

Configure how the CLI uploads telemetry to the configured Moderne tenant.

Usage​

mod config telemetry [subcommands]

Subcommands​

  • wait-for-upload: Waits for queued telemetry to upload before exiting.

mod config telemetry wait-for-upload​

Waits for queued telemetry to upload before exiting.

Telemetry uploads in the background as each command finishes. Enable this on CI runners and containers, whose filesystem does not outlive the command and so never retries the upload. Disabled by default.

Usage​

mod config telemetry wait-for-upload

Options​

NameDescription
--enabled

mod copilot​

(INCUBATING) Launches a GitHub Copilot session configured to use mod for deterministic multi-repository work.

Usage​

mod copilot [subcommands]

Subcommands​

  • chat: (INCUBATING) Launches a GitHub Copilot session configured to use mod for deterministic multi-repository work.

mod copilot chat​

(INCUBATING) Launches a GitHub Copilot session configured to use mod for deterministic multi-repository work.

The agent works on what the directory holds. All its tool use is approved up front. With a Moderne login it can also search and run recipes in Moderne. It syncs a changeset when it needs to build or test. Moderne lists the agent on any changeset it checks out.

Usage​

mod copilot chat [parameters]

Examples​

mod copilot chat /path/to/working-set --org <ORG_NAME> --prompt "<PROMPT>"

Parameters​

NameDescriptionExample
pathThe working set the agent works in. The directory is created if missing./path/to/working-set

Options​

NameDescriptionExample
--effortHow hard the model reasons, such as medium, high or xhigh.
-m, --modelThe model Copilot runs with.
--no-preflightSkip the readiness checks that run before the agent starts.
--organization, --orgThe organization in Moderne the agent works on. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services.ALL/Financial Services
--promptThe prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file.
--unattendedRun the prompt to completion and exit. Requires --prompt.

mod cursor​

(INCUBATING) Launches a Cursor session configured to use mod for deterministic multi-repository work.

Usage​

mod cursor [subcommands]

Subcommands​

  • chat: (INCUBATING) Launches a Cursor session configured to use mod for deterministic multi-repository work.

mod cursor chat​

(INCUBATING) Launches a Cursor session configured to use mod for deterministic multi-repository work.

The agent works on what the directory holds. All its tool use is approved up front. With a Moderne login it can also search and run recipes in Moderne. It syncs a changeset when it needs to build or test. Moderne lists the agent on any changeset it checks out.

Usage​

mod cursor chat [parameters]

Examples​

mod cursor chat /path/to/working-set --org <ORG_NAME> --prompt "<PROMPT>"

Parameters​

NameDescriptionExample
pathThe working set the agent works in. The directory is created if missing./path/to/working-set

Options​

NameDescriptionExample
--no-preflightSkip the readiness checks that run before the agent starts.
--organization, --orgThe organization in Moderne the agent works on. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services.ALL/Financial Services
--promptThe prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file.
--unattendedRun the prompt to completion and exit. Requires --prompt.

mod doctor​

Checks that this machine and the CLI's configuration can build and publish LSTs.

Reports on the host, the CLI's own configuration, the toolchains it found, git and its credentials, and then the services a mass-ingest run depends on: Maven settings, the LST artifact store, the Moderne tenant, the license to run on private code, and the SCM origins listed in a repos.csv. Each section lists facts first, then its checks as what was found against what a run needs. A check that says must fails the command when it is not met; one that says should only warns. What to do about each is listed at the end. Every check is read-only, and nothing is written to any remote.

Usage​

mod doctor [parameters]

Examples​

mod doctor /path/to/project

mod doctor --sync-csv --skip-remote

Parameters​

NameDescription
pathThe directory a run works in. Its free space is checked, and its .moderne/repos-lock.csv is the default list of SCM origins to probe.

Options​

NameDescription
--jsonOutput the report in JSON. Each row says whether its fix lies with the host, the setup or a remote service.
--skip-remoteDo not contact any network service. Remote sections report a single skipped row.
--sync-csvA repos.csv whose rows are summarized and whose SCM origins are probed. Without a value, the central repos.csv of the configured LST artifact store is read, as mod publish --sync-csv would.

mod devcenter​

Generate DevCenter dashboards.

Generate a dashboard from a DevCenter recipe run for each organization.

Usage​

mod devcenter [parameters]

Examples​

mod devcenter /path/to/organization

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--last-recipe-runSelect the ID of the last recipe run. The last recipe run is determined from the whole repository group, not on an individual repository basis.
--last-searchSelect the ID of the last search run to filter repositories. Only repositories that had search matches will be processed.
--recipe-runA recipe run ID listed by mod run-history
--searchA search run ID to filter repositories to only those with matches.

mod exec​

Execute an arbitrary shell command on selected repositories and partitions.

If you want to execute a command that contains positional parameters, please ensure that you use the end-of-options POSIX delimiter (--) before your command.

When a repository has a detected build tool (Maven, Gradle, Bazel, npm, Yarn, pnpm, Bun or uv), the command is executed from the build tool's project directory. For partitioned repositories, the command runs once per partition in each partition's build tool directory. Partitions without a detected build tool are skipped in multi-partition repositories, they lack an execution directory.

Commands can use a set of precomputed environment variables specific to each repository or partition: JAVA_HOME, MODERNE_JAVA_HOME, MODERNE_JAVA_VERSION, MODERNE_JAVA_JDK, MODERNE_BUILD_TOOL, MODERNE_BUILD_TOOL_COMPILE, MODERNE_BUILD_TOOL_CHECK, MODERNE_BUILD_TOOL_DIR and MODERNE_BUILD_TOOL_EXECUTABLE.These variables can be used as literal command arguments (they will be substituted) or as standalone commands that expand to a full build tool invocation. For Maven and Gradle that invocation is the one the build makes, with style, license and static analysis checks turned off, and it runs in each build root of the repository in turn. A JavaScript project's dependencies are installed before its test or build script runs, and a Python project's tests run with pytest in an environment uv provisions.

Open a GitHub Pull Request

mod exec /path/to/project -- gh pr create --title "Test PR" --body "Test PR"

Open a GitLab Merge Request

mod exec /path/to/project -- glab mr create --title "Test PR" --description "Test PR"

Execute build tool compilation tasks

mod exec /path/to/project MODERNE_BUILD_TOOL_COMPILE

Execute build tool verification tasks

mod exec /path/to/project MODERNE_BUILD_TOOL_CHECK

List what would run, without running it

mod exec /path/to/project MODERNE_BUILD_TOOL_CHECK --dry-run --json

Usage​

mod exec [parameters]

Examples​

mod exec /path/to/project rm *.hprof

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project
cmdThe shell command that you wish to run on the selected repository roots.
argsArguments for the command, if any exist.

Options​

NameDescription
--dry-runDo not run the command, but list what would run in each repository, resolved to that repository's build tool, execution directory and JDK. Detecting the build tool still invokes it, exactly as a real run would.
--json(INCUBATING) Print the result as JSON rather than as progress. The format of this JSON is unsettled at this point, and the data structure may change.
--last-recipe-runSelect the ID of the last recipe run. The last recipe run is determined from the whole repository group, not on an individual repository basis.
--last-searchSelect the ID of the last search run to filter repositories. Only repositories that had search matches will be processed.
-o, --out, --outputThe output type for the command. Accepts Console and File. If not specified, the output will be printed to a file.
--parallel(INCUBATING) Run the command in parallel. Setting this option to 2 or more causes the command to run with a fixed-size thread pool with that many threads. Setting this to 1 causes the command to run sequentially. Setting this to 0 runs the command with a thread pool sized to the number of CPU cores on your machine. Setting this to a negative number runs the command with a fixed-size thread pool equal to the number of CPU cores minus the absolute value of that number. For example, -1 runs the command with (cores-1) threads.
--recipe-runA recipe run ID listed by mod run-history
--searchA search run ID to filter repositories to only those with matches.
--trace-tagTags to add as extra columns to the trace.csv emitted by this command. Each tag becomes a column with header tag.<key> and the supplied value. Repeat the option to add multiple tags.

mod git​

Multi-repository git operations.

Usage​

mod git [subcommands]

Subcommands​

  • add: Performs the equivalent of git add on multiple repositories.
  • apply: Performs the equivalent of git apply on multiple repositories.
  • checkout: Performs the equivalent of git checkout on multiple repositories.
  • commit: Performs the equivalent of git commit on multiple repositories.
  • compare: Compares a recipe run with what a changeset already holds.
  • pull: Performs the equivalent of git pull on multiple repositories.
  • push: Performs the equivalent of git push on multiple repositories.
  • reset: Performs the equivalent of git reset on multiple repositories.
  • rev-parse: Performs the equivalent of git rev-parse on multiple repositories.
  • rm: Performs the equivalent of git rm on multiple repositories.
  • stashset: Performs the equivalent of git stash on multiple repositories.
  • stashset: Performs the equivalent of git stash on multiple repositories.
  • sync: Acts like rsync for a working set from a repos.csv or from Moderne.
  • status: Performs the equivalent of git status on multiple repositories.

mod git add​

Performs the equivalent of git add on multiple repositories.

Rather than applying git add one at a time, this operates on multiple repositories.

Usage​

mod git add [parameters]

Examples​

mod git add /path/to/project --recipe-run <recipe-run-id>

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--last-recipe-runSelect the ID of the last recipe run. The last recipe run is determined from the whole repository group, not on an individual repository basis.
--last-searchSelect the ID of the last search run to filter repositories. Only repositories that had search matches will be processed.
--recipe-runA recipe run ID listed by mod run-history
--searchA search run ID to filter repositories to only those with matches.
--trace-tagTags to add as extra columns to the trace.csv emitted by this command. Each tag becomes a column with header tag.<key> and the supplied value. Repeat the option to add multiple tags.

mod git apply​

Performs the equivalent of git apply on multiple repositories.

Rather than applying one patch at a time, this operates on multiple repositories.

Usage​

mod git apply [parameters]

Examples​

mod git apply /path/to/project --recipe-run 20230903164310-2qVRM

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--last-recipe-runSelect the ID of the last recipe run. The last recipe run is determined from the whole repository group, not on an individual repository basis.
--last-searchSelect the ID of the last search run to filter repositories. Only repositories that had search matches will be processed.
--recipe-runA recipe run ID listed by mod run-history
--searchA search run ID to filter repositories to only those with matches.
--trace-tagTags to add as extra columns to the trace.csv emitted by this command. Each tag becomes a column with header tag.<key> and the supplied value. Repeat the option to add multiple tags.

mod git checkout​

Performs the equivalent of git checkout on multiple repositories.

Usage​

mod git checkout [parameters]

Examples​

mod git checkout /path/to/project

mod git checkout /path/to/project --changeset --name "Java 25"

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project
branchThe branch to checkout.main

Options​

NameDescription
-b, -BCauses a new branch to be created as if git-branch were called and then checked out.
--changesetCheck out to a changeset in Moderne. Give an id to join an existing changeset. Each repository's git remote is set to its slot in the changeset. Changes already on the changeset appear as commits on a branch based on the commit the LST was built from. Pushes from that branch go to the changeset rather than the origin.
--last-recipe-runSelect the ID of the last recipe run. The last recipe run is determined from the whole repository group, not on an individual repository basis.
--last-searchSelect the ID of the last search run to filter repositories. Only repositories that had search matches will be processed.
-n, --nameThe name of a new changeset.
--recipe-runA recipe run ID listed by mod run-history
--searchA search run ID to filter repositories to only those with matches.
--trace-tagTags to add as extra columns to the trace.csv emitted by this command. Each tag becomes a column with header tag.<key> and the supplied value. Repeat the option to add multiple tags.

mod git commit​

Performs the equivalent of git commit on multiple repositories.

Rather than applying one commit at a time, this operates on multiple repositories.

Usage​

mod git commit [parameters]

Examples​

mod git commit /path/to/project -m "commit message"

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
-a, --allStage the changes the recipe run made before committing, as mod git add would.
--allow-emptyWhether or not to allow making empty commits.
--gpg-passphrase-pathPath to a file containing the passphrase for the GPG private key.
--gpg-private-key-pathPath to an armored PGP private key file for signing. Implies --gpg-sign.
--last-recipe-runSelect the ID of the last recipe run. The last recipe run is determined from the whole repository group, not on an individual repository basis.
--last-searchSelect the ID of the last search run to filter repositories. Only repositories that had search matches will be processed.
-m, --messageThe commit message to use.
--no-gpg-signOverride commit.gpgsign configuration and create an unsigned commit.
--recipe-runA recipe run ID listed by mod run-history
-S, --gpg-signGPG sign the commit. Uses the local GPG keyring, or a key file if --gpg-private-key-path is provided.
--searchA search run ID to filter repositories to only those with matches.
--trace-tagTags to add as extra columns to the trace.csv emitted by this command. Each tag becomes a column with header tag.<key> and the supplied value. Repeat the option to add multiple tags.

mod git compare​

Compares a recipe run with what a changeset already holds.

On a working set checked out to a changeset, a recipe run cannot be applied to the branch: the run works from each repository as it was before the changeset, and the branch already holds the recipe run the changeset started from and what was committed since. For each repository this puts the run's result on the commit the changeset started from, to the side, and says how it differs from the original run's commit and from the branch as it stands. The checkout, its index and its branch are left as they are. This is how to judge a change to a recipe: run the changed recipe, then compare.

Usage​

mod git compare [parameters]

Examples​

mod git compare /path/to/project --last-recipe-run

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--jsonPrint the comparison of every repository as JSON rather than for reading.
--last-recipe-runSelect the ID of the last recipe run. The last recipe run is determined from the whole repository group, not on an individual repository basis.
--recipe-runA recipe run ID listed by mod run-history

mod git pull​

Performs the equivalent of git pull on multiple repositories.

Rather than pulling one repository at a time, this operates on multiple repositories.

Usage​

mod git pull [parameters]

Examples​

mod git pull /path/to/project

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescriptionExample
--gpg-passphrase-pathPath to a file containing the passphrase for the GPG private key.
--gpg-private-key-pathPath to an armored PGP private key file for signing. Implies --gpg-sign.
--no-gpg-signOverride commit.gpgsign configuration and create an unsigned commit.
--rebasePull with rebase or not.github.com
-S, --gpg-signGPG sign the commit. Uses the local GPG keyring, or a key file if --gpg-private-key-path is provided.

mod git push​

Performs the equivalent of git push on multiple repositories.

On a working set checked out to a changeset the push goes to the changeset in Moderne.

Usage​

mod git push [parameters]

Examples​

mod git push /path/to/project -u origin feature-branch

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project
repository
refspecSpecify what destination ref to update with what source object.

Options​

NameDescription
-f, --forceSame as corresponding flag in git. Overwrites the remote branch with your local branch, even if it would result in losing commits that exist on the remote.
--last-recipe-runSelect the ID of the last recipe run. The last recipe run is determined from the whole repository group, not on an individual repository basis.
--last-searchSelect the ID of the last search run to filter repositories. Only repositories that had search matches will be processed.
-m, --messageA message for the change. Recorded in Moderne when pushing to a changeset.
--recipe-runA recipe run ID listed by mod run-history
--searchA search run ID to filter repositories to only those with matches.
--toolThe tool that made the change. Recorded in Moderne when pushing to a changeset.
--trace-tagTags to add as extra columns to the trace.csv emitted by this command. Each tag becomes a column with header tag.<key> and the supplied value. Repeat the option to add multiple tags.
-u, --set-upstreamFor every branch that is up to date or successfully pushed, add upstream (tracking) reference.

mod git reset​

Performs the equivalent of git reset on multiple repositories.

Rather than applying one stash at a time, this operates on multiple repositories.

Usage​

mod git reset [parameters]

Examples​

mod git reset /path/to/project

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--hardResets the index and working tree.

mod git rev-parse​

Performs the equivalent of git rev-parse on multiple repositories.

Rather than applying one rev-parse at a time, this operates on multiple repositories. Arguments passed to git rev-parse must be specified after the end-of-options POSIX delimiter (--).

Usage​

mod git rev-parse [parameters]

Examples​

mod git rev-parse /path/to/project -- --show-toplevel

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project
args

mod git rm​

Performs the equivalent of git rm on multiple repositories.

Rather than applying git rm one at a time, this operates on multiple repositories.

Usage​

mod git rm [parameters]

Examples​

mod git rm /path/to/project .DS_Store

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project
fileFile patterns to remove.

Options​

NameDescription
--cachedOnly remove from the index, leaving working tree files in place.

mod git stashset​

Performs the equivalent of git stash on multiple repositories.

Rather than applying one stash at a time, this operates on multiple repositories.

This command does not affect the stash log of the repository, but rather stores the otherwise untracked commit in a multi-repository stash file in Moderne configuration, so the whole 'stashset' can be applied at once atomically.

Usage​

mod git stashset [subcommands]

Examples​

mod git stashset /path/to/project

Subcommands​

  • apply: Performs the equivalent of git stash apply on multiple repositories.
  • push: Performs the equivalent of git stash push on multiple repositories.

mod git stashset apply​

Performs the equivalent of git stash apply on multiple repositories.

Usage​

mod git stashset apply [parameters]

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project
refThe stash ref to apply.

Options​

NameDescription
--forcePop the stash after applying it, regardless of whether it made a change.

mod git stashset push​

Performs the equivalent of git stash push on multiple repositories.

Usage​

mod git stashset push [parameters]

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
-u, --include-untrackedInclude untracked files.

mod git sync​

Acts like rsync for a working set from a repos.csv or from Moderne.

Brings each repository to the branch and commit its source names.

Usage​

mod git sync [subcommands]

Subcommands​

  • csv: Synchronizes the repositories and metadata of an organization from a local repos.csv file.
  • moderne: Synchronizes an organization or a changeset from Moderne.

mod git sync csv​

Synchronizes the repositories and metadata of an organization from a local repos.csv file.

Synchronize repositories and metadata to path using a local repos.csv csv file. The file need not be named repos.csv. The name is shorthand for a CSV in the format described at https://docs.moderne.io/user-documentation/moderne-cli/references/repos-csv/. The CSV must include a cloneUrl column. A flat directory structure is used unless one or more orgN columns are present. By default, repositories do not include source code. Use --with-sources to clone sources. If a publishUri column is present, associated LSTs will also be downloaded.

Usage​

mod git sync csv [parameters]

Parameters​

NameDescriptionExample
pathThe working set to sync into. It is created if missing./path/to/project
csvA repos.csv file or URL. A moderne:// URI syncs from Moderne instead.

Options​

NameDescription
--depthEquivalent to the git clone --depth option.
--filterEquivalent to the git clone --filter option. Defaults to tree:0, or to a full clone while mod config features build git-blame is enabled.
--limit(DEPRECATED) Has no effect.
--organization, --orgOnly the repositories of this organization. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services. mod config moderne organizations show lists them.
--parallel(INCUBATING) Run the command in parallel. Setting this option to 2 or more causes the command to run with a fixed-size thread pool with that many threads. Setting this to 1 causes the command to run sequentially. Setting this to 0 runs the command with a thread pool sized to the number of CPU cores on your machine. Setting this to a negative number runs the command with a fixed-size thread pool equal to the number of CPU cores minus the absolute value of that number. For example, -1 runs the command with (cores-1) threads.
--saveIf the CSV has per repository configuration like custom build tool options, JVM configuration, etc. save that configuration in a .moderne/moderne.yml which can be committed to source control.
--shardSync only shard i of M. For example 3/8. This splits the repositories across M working sets. Each repository always lands in the same shard. i counts from 1.
--single-branchEquivalent to the git clone --single-branch option.
--trace-tagTags to add as extra columns to the trace.csv emitted by this command. Each tag becomes a column with header tag.<key> and the supplied value. Repeat the option to add multiple tags.
--with-lstsDownload each repository's LST.
--with-sourcesClone or pull every repository at the commit of its LST. With a changeset they are checked out to its branch. Repositories with local changes or on another branch are skipped.

mod git sync moderne​

Synchronizes an organization or a changeset from Moderne.

A directory is created for every repository. The LST is downloaded too. Many code transformations and analyses can be done with just the LST since it is a superset of the text of the repository.

--organization limits the sync to one organization. --changeset limits it to the repositories with results in a changeset. With sources they are checked out to the changeset's branch. Pushes then go to the changeset. With LSTs only the changes go to .moderne/run for mod git apply.

Usage​

mod git sync moderne [parameters]

Examples​

mod git sync moderne /path/to/organization --organization <ORG_NAME>

mod git sync moderne /path/to/working-set --changeset 20260924153000-Ab1cD --with-sources

mod git sync moderne /path/to/working-set --changeset 20260924153000-Ab1cD --organization ALL/Payments --with-sources

Parameters​

NameDescriptionExample
pathThe working set to sync into. It is created if missing./path/to/project
organizationNameOrId(DEPRECATED) The name of an organization in Moderne. All repositories in that organization will be cloned at the branch and commit of their current LSTs. Use --organization instead.

Options​

NameDescriptionExample
--changesetSync only the repositories with results in this changeset. The id is the changeset's id in Moderne.20260924153000-Ab1cD
--depthEquivalent to the git clone --depth option.
--filterEquivalent to the git clone --filter option. Defaults to tree:0, or to a full clone while mod config features build git-blame is enabled.
--limit(DEPRECATED) Has no effect.
--organization, --orgOnly the repositories of this organization. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services. mod config moderne organizations show lists them.
--parallel(INCUBATING) Run the command in parallel. Setting this option to 2 or more causes the command to run with a fixed-size thread pool with that many threads. Setting this to 1 causes the command to run sequentially. Setting this to 0 runs the command with a thread pool sized to the number of CPU cores on your machine. Setting this to a negative number runs the command with a fixed-size thread pool equal to the number of CPU cores minus the absolute value of that number. For example, -1 runs the command with (cores-1) threads.
--saveIf the CSV has per repository configuration like custom build tool options, JVM configuration, etc. save that configuration in a .moderne/moderne.yml which can be committed to source control.
--shardSync only shard i of M. For example 3/8. This splits the repositories across M working sets. Each repository always lands in the same shard. i counts from 1.
--single-branchEquivalent to the git clone --single-branch option.
--trace-tagTags to add as extra columns to the trace.csv emitted by this command. Each tag becomes a column with header tag.<key> and the supplied value. Repeat the option to add multiple tags.
--with-lstsDownload each repository's LST.
--with-sourcesClone or pull every repository at the commit of its LST. With a changeset they are checked out to its branch. Repositories with local changes or on another branch are skipped.

mod git status​

Performs the equivalent of git status on multiple repositories.

Rather than applying git status one at a time, this operates on multiple repositories.

Usage​

mod git status [parameters]

Examples​

mod git status /path/to/project

mod git status /path/to/project --remote

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--remoteAlso show what the changeset in Moderne holds of each repository and its data tables.

mod graphql​

Send a GraphQL query or mutation to Moderne and print the response.

Sends the document to the GraphQL API of the configured tenant, as the user its token is, and prints the response as Moderne sent it. A response can hold data and errors both, so one with errors is printed all the same, and the command then fails. The schema is large: look up the type you need with __type(name: "...") rather than introspecting all of it.

Usage​

mod graphql [parameters]

Examples​

mod graphql '{ organizations { edges { node { id name } } } }'

mod graphql -f id=ALL 'query($id: ID!) { organization(id: $id) { name } }'

mod graphql -F input=@commit.json - < commit.graphql

Parameters​

NameDescription
queryThe query or mutation, or - to read it from standard input.

Options​

NameDescription
-f, --raw-fieldA variable whose value is the string given, whatever it looks like.
-F, --fieldA variable. Its value is read as JSON when all of it is JSON (a number, true, false, null, an object, an array or a quoted string) and as a string otherwise; @<file> reads it from a file.

mod kiro​

(INCUBATING) Launches a Kiro session configured to use mod for deterministic multi-repository work.

Usage​

mod kiro [subcommands]

Subcommands​

  • chat: (INCUBATING) Launches a Kiro session configured to use mod for deterministic multi-repository work.

mod kiro chat​

(INCUBATING) Launches a Kiro session configured to use mod for deterministic multi-repository work.

The agent works on what the directory holds. All its tool use is approved up front. With a Moderne login it can also search and run recipes in Moderne. It syncs a changeset when it needs to build or test. Moderne lists the agent on any changeset it checks out.

Usage​

mod kiro chat [parameters]

Examples​

mod kiro chat /path/to/working-set --org <ORG_NAME> --prompt "<PROMPT>"

Parameters​

NameDescriptionExample
pathThe working set the agent works in. The directory is created if missing./path/to/working-set

Options​

NameDescriptionExample
--effortHow hard the model reasons, such as medium, high or xhigh.
-m, --modelThe model Kiro runs with.
--no-preflightSkip the readiness checks that run before the agent starts.
--organization, --orgThe organization in Moderne the agent works on. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services.ALL/Financial Services
--promptThe prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file.
--unattendedRun the prompt to completion and exit. Requires --prompt.

mod log​

Manages a log aggregate.

Used to understand holistically how a build performed on many repositories. In contrast to a CI build log which is designed to look at one repository at a time, a log aggregate is designed to look at many repositories at once, illuminating the common causes of failure (or success) and the overall health of the ingestion process.

Usage​

mod log [subcommands]

Subcommands​

  • builds: Adds a set of build logs to a log aggregate.
  • execs: Adds a set of exec logs to a log aggregate.
  • runs: Adds a set of run logs to a log aggregate.
  • syncs: Adds a set of sync logs to a log aggregate.

mod log builds​

Adds a set of build logs to a log aggregate.

In contrast to a CI build log which is designed to look at one repository at a time, a log aggregate is designed to look at many repositories at once, illuminating the common causes of failure (or success) and the overall health of the ingestion process.

Usage​

mod log builds [subcommands]

Subcommands​

  • add: Adds a set of build logs to a log aggregate.

mod log builds add​

Adds a set of build logs to a log aggregate.

For each repository that has a matching build, add its build log to the aggregate.

Usage​

mod log builds add [parameters]

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project
logPathThe absolute or relative path on disk to a log aggregate (a zip file). The file need not exist, though its containing directory is expected to exist.log.zip

Options​

NameDescription
--buildA build ID for a build that has completed previously.
--last-buildSelect whatever the last build was, whether the build ran fully to completion or terminated early.

mod log execs​

Adds a set of exec logs to a log aggregate.

In contrast to a CI log which is designed to look at one repository at a time, a log aggregate is designed to look at many repositories at once, illuminating the common causes of failure (or success) and the overall health of an exec operation.

Usage​

mod log execs [subcommands]

Subcommands​

  • add: Adds a set of exec logs to a log aggregate.

mod log execs add​

Adds a set of exec logs to a log aggregate.

For each repository that has a matching exec, add its exec log to the aggregate.

Usage​

mod log execs add [parameters]

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project
logPathThe absolute or relative path on disk to a log aggregate (a zip file). The file need not exist, though its containing directory is expected to exist.log.zip

Options​

NameDescription
--execAn exec ID for an exec that has completed previously.
--last-execSelect whatever the last exec was, whether the exec ran fully to completion or terminated early.

mod log runs​

Adds a set of run logs to a log aggregate.

In contrast to a CI log which is designed to look at one repository at a time, a log aggregate is designed to look at many repositories at once, illuminating the common causes of failure (or success) and the overall health of a recipe run.

Usage​

mod log runs [subcommands]

Subcommands​

  • add: Adds a set of run logs to a log aggregate.

mod log runs add​

Adds a set of run logs to a log aggregate.

For each repository that has a matching run, add its run log to the aggregate.

Usage​

mod log runs add [parameters]

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project
logPathThe absolute or relative path on disk to a log aggregate (a zip file). The file need not exist, though its containing directory is expected to exist.log.zip

Options​

NameDescription
--last-recipe-runSelect the ID of the last recipe run. The last recipe run is determined from the whole repository group, not on an individual repository basis.
--last-run(DEPRECATED) use (DEPRECATED) use @|--last-recipe-run|@ instead.
--last-searchSelect the ID of the last search run to filter repositories. Only repositories that had search matches will be processed.
--recipe-runA recipe run ID listed by mod run-history
--run(DEPRECATED) use (DEPRECATED) use @|--recipe-run|@ instead.
--searchA search run ID to filter repositories to only those with matches.

mod log syncs​

Adds a set of sync logs to a log aggregate.

In contrast to a CI log which is designed to look at one repository at a time, a log aggregate is designed to look at many repositories at once, illuminating the common causes of failure (or success) and the overall health of a sync operation.

Usage​

mod log syncs [subcommands]

Subcommands​

  • add: Adds a set of sync logs to a log aggregate.

mod log syncs add​

Adds a set of sync logs to a log aggregate.

For each repository that has a matching sync, add its sync log to the aggregate.

Usage​

mod log syncs add [parameters]

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project
logPathThe absolute or relative path on disk to a log aggregate (a zip file). The file need not exist, though its containing directory is expected to exist.log.zip

Options​

NameDescription
--last-syncSelect whatever the last sync was, whether the sync ran fully to completion or terminated early.
--syncA sync ID for a sync that has completed previously.

mod list​

Lists locally checked-out repositories.

Usage​

mod list [parameters]

Examples​

mod list /path/to/project

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--json(INCUBATING) Output the repository listing in JSON. The format of this JSON is unsettled at this point, and the data structuremay change.

mod login​

Logs the CLI into Moderne

The default authorization mode is a web-based browser flow. After login and consent, a PAT (personal access token) will be created and stored in the configuration file.

On a machine without a browser, use --device-code to complete the login from a browser on another device.

Alternatively, use --with-token to pass in an existing token on standard input.

After a successful login, the local CLI recipe marketplace is synchronized from Moderne.

Usage​

mod login

Options​

NameDescription
--device-codeLog in with the OAuth 2.0 device authorization flow. The CLI prints a URL and a code to enter in a browser on any device, so the machine running the CLI does not need a browser.
--expirationThe time to expiration for the token to be created, as an ISO-8601 duration string. Example: P180D for 180 days.
--with-tokenThe Moderne personal access token to use.
-y, --yesAutomatic yes to prompts when synchronizing the recipe marketplace.

mod monitor​

(INCUBATING) Launches an HTTP server used to monitor the CLI.

This command will launch an HTTP server and block, so should be used in combination with backgrounding the process and redirecting its output as needed. The server will respond to GET requests on http://localhost:<PORT>/prometheus in the Prometheus exposition format.

Usage​

mod monitor

Options​

NameDescription
--portThe port to listen on. Default is 8080.

mod opencode​

(INCUBATING) Launches an opencode session configured to use mod for deterministic multi-repository work.

Usage​

mod opencode [subcommands]

Subcommands​

  • chat: (INCUBATING) Launches an opencode session configured to use mod for deterministic multi-repository work.

mod opencode chat​

(INCUBATING) Launches an opencode session configured to use mod for deterministic multi-repository work.

The agent works on what the directory holds. All its tool use is approved up front. With a Moderne login it can also search and run recipes in Moderne. It syncs a changeset when it needs to build or test. Moderne lists the agent on any changeset it checks out.

Usage​

mod opencode chat [parameters]

Examples​

mod opencode chat /path/to/working-set --org <ORG_NAME> --prompt "<PROMPT>"

Parameters​

NameDescriptionExample
pathThe working set the agent works in. The directory is created if missing./path/to/working-set

Options​

NameDescriptionExample
--no-preflightSkip the readiness checks that run before the agent starts.
--organization, --orgThe organization in Moderne the agent works on. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services.ALL/Financial Services
--promptThe prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file.
--unattendedRun the prompt to completion and exit. Requires --prompt.

mod pi​

(INCUBATING) Launches a Pi session configured to use mod for deterministic multi-repository work.

Usage​

mod pi [subcommands]

Subcommands​

  • chat: (INCUBATING) Launches a Pi session configured to use mod for deterministic multi-repository work.

mod pi chat​

(INCUBATING) Launches a Pi session configured to use mod for deterministic multi-repository work.

The agent works on what the directory holds. All its tool use is approved up front. With a Moderne login it can also search and run recipes in Moderne. It syncs a changeset when it needs to build or test. Moderne lists the agent on any changeset it checks out.

Usage​

mod pi chat [parameters]

Examples​

mod pi chat /path/to/working-set --org <ORG_NAME> --prompt "<PROMPT>"

Parameters​

NameDescriptionExample
pathThe working set the agent works in. The directory is created if missing./path/to/working-set

Options​

NameDescriptionExample
--no-preflightSkip the readiness checks that run before the agent starts.
--organization, --orgThe organization in Moderne the agent works on. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services.ALL/Financial Services
--promptThe prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file.
--unattendedRun the prompt to completion and exit. Requires --prompt.

mod prebuild​

Extracts build metadata without parsing source files.

Populates .moderne/prebuild/ — a directory tree (mirroring the V3 LST shape) where each BuildStep writes whatever files it needs. A subsequent 'mod build' walks that tree and parses sources without re-running the build tool.

This command is useful for:

  • Diagnosing build issues (inspect what each step discovered)
  • Pre-warming builds (run prebuild on CI, then build locally)
  • Custom build tools (populate the prebuild tree yourself, then run 'mod build')

Usage​

mod prebuild [parameters]

Examples​

mod prebuild /path/to/project

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--offlineWhen an underlying build tool has an offline mode, enable it.
--refreshForce a rebuild of prebuild results, ignoring any cached metadata.

mod publish​

Publishes the LST artifacts for one or more projects.

Once published to your artifact repository, Moderne will be able to ingest them and they will, in turn, be usable inside of Moderne.

You must run mod build before you can run this command. You also must set up an artifact repository connection by running mod config lsts artifacts before this command will work.

Usage​

mod publish [parameters]

Examples​

mod publish /path/to/project

mod publish /path/to/ws --sync-csv --organization Payments

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--full, --rebuild(INCUBATING) Build and publish every repository, even one whose repos-lock.csv row already records the remote HEAD, this CLI version and a reproducible build. The row does not record how the repository was built, so a run after the build steps change needs this to build again what they now read differently.
--organization, --orgOnly the repositories of this organization. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services. mod config moderne organizations show lists them.
--shardWork through only shard i of M of the repository list, for example 3/8 (i counts from 1, and 0 is read as M, so a job index that counts from 0 still covers the list), so M tasks split one repos.csv without coordinating. A repository's shard is the SHA-256 of origin|path|branch (origin and path lowercased, any partition removed, the branch blank when the row has none), leading 8 bytes as an unsigned number, modulo M, plus 1. It depends on that row alone and is the same on every machine. Applied after --organization.
--sync-csvWork through a repos.csv one repository at a time: clone, build, publish, record the result in the artifact store's repos-lock.csv, and delete the repository directory before moving to the next, so the workspace never holds more than the repository in flight. A repository is skipped when its repos-lock.csv row already records the remote HEAD, was built by this CLI version, and was a reproducible build, unless --full. A repository listed under several organizations is built once, and every one of its rows records that publish. Without a value, the csv is the repos.csv in the configured artifact store, which must exist either way. Put the path before this option.
--trace-tagTags to add as extra columns to the trace.csv emitted by this command. Each tag becomes a column with header tag.<key> and the supplied value. Repeat the option to add multiple tags.

mod run​

Runs an OpenRewrite recipe on a working set or an organization in Moderne.

On a working set the recipe runs on each repository's LST. LSTs come from mod build or mod git sync.

Finding a recipe

mod config recipes search finds a recipe in the catalog, with its id and options. With --json it prints what it finds rather than asking whether to make one the active recipe:

mod config recipes search 'update Gradle wrapper' \
--json=id,description,options

A recipe's id as the query finds that recipe, and dataTables among the fields adds the data tables it produces:

mod config recipes search \
org.openrewrite.gradle.UpdateGradleWrapper --json=id,options,dataTables

Pass the id to --recipe and each option as -P name=value.

Local runs

A local run needs the LSTs mod build makes and a recipe in the catalog. It leaves each repository's changes as a patch, which mod git apply applies, and its data tables, which mod study reads:

mod run . --recipe org.openrewrite.gradle.UpdateGradleWrapper \
-P version=9.1.0
mod git apply . --last-recipe-run
mod study . --last-recipe-run --data-table <name> --csv

Runs in Moderne

When the working set is moderne://<organization> the recipe runs in Moderne. The run is saved as a Moderne changeset. Only --recipe, -P, --bundle, --patches and --max-files apply.

mod run moderne://ALL/Default \
--recipe org.openrewrite.gradle.UpdateGradleWrapper -P version=9.1.0

When it is moderne://changeset/<changesetId> the recipe runs in Moderne over the repositories that changeset has results in, such as the ones a saved search matched. They run in the organization the changeset was made in, at their current LSTs.

The same command run again while its run in Moderne is still going rejoins that run instead of queueing another.

Usage​

mod run [parameters]

Examples​

mod run /path/to/project \
--recipe=org.openrewrite.gradle.UpdateGradleWrapper \
-P version=9.1.0

mod run "moderne://ALL/Financial Services" \
--recipe=org.openrewrite.gradle.UpdateGradleWrapper -P version=9.1.0

mod run moderne://changeset/<changesetId> \
--recipe=<recipe> --bundle <BUNDLE_ID>

Parameters​

NameDescriptionExample
directory|organizationA working set, moderne://<organization> or moderne://changeset/<changesetId>. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services./path/to/project

Options​

NameDescriptionExample
--active-recipeRun the recipe that is active in the Moderne IDE plugin.
--bundleUse the recipe from this bundle instead of the marketplace. mod config recipes bundle push prints the id. For runs in Moderne.mod run "moderne://ALL/Financial Services" --recipe=<recipe> --bundle <BUNDLE_ID>
--last-recipe-runSelect the ID of the last recipe run. The last recipe run is determined from the whole repository group, not on an individual repository basis.
--last-searchSelect the ID of the last search run to filter repositories. Only repositories that had search matches will be processed.
--max-filesHow many files of each repository's diff print. For runs in Moderne.
--no-patch(INCUBATING) Skip the patch files. Useful when you only need the data tables.
-P, --recipe-optionA recipe option as name=value.mod run . --recipe=<recipe> -P methodPattern='java.util.List add(..)' -P moreOptions='moreOptions'
--parallel(INCUBATING) Run the command in parallel. Setting this option to 2 or more causes the command to run with a fixed-size thread pool with that many threads. Setting this to 1 causes the command to run sequentially. Setting this to 0 runs the command with a thread pool sized to the number of CPU cores on your machine. Setting this to a negative number runs the command with a fixed-size thread pool equal to the number of CPU cores minus the absolute value of that number. For example, -1 runs the command with (cores-1) threads.
--patchesWrite each repository's whole patch under .moderne/run/<changesetId>. For runs in Moderne.
--recipeThe id of the recipe to run. A short name works when only one recipe has it. For example org.openrewrite.java.ChangeMethodName or ChangeMethodName. Recipes aren't as fast as searches but can do vastly more complex things.org.openrewrite.java.search.FindMethods
--recipe-runA recipe run ID listed by mod run-history
--searchA search run ID to filter repositories to only those with matches.
--shardSync only shard i of M. For example 3/8. This splits the repositories across M working sets. Each repository always lands in the same shard. i counts from 1. Takes effect with --sync-csv.
--streaming(INCUBATING) Print machine-readable results as they are produced.
--sync-csvSync the LSTs in this repos.csv before the run. Syncing is interleaved with running. Repositories complete incrementally instead of waiting for a full sync of a large organization. Repositories without a published LST are skipped.mod run ./ws --sync-csv ./repos.csv --recipe=<recipe>
--trace-tagTags to add as extra columns to the trace.csv emitted by this command. Each tag becomes a column with header tag.<key> and the supplied value. Repeat the option to add multiple tags.

mod run-history​

Get information about the most recent recipe runs. This will be transitioning to mod audit runs list eventually. A deprecation notice will be added here when we suggest adopting the alternative.

Usage​

mod run-history [parameters]

Parameters​

NameDescriptionExample
pathA git repository or a working set directory of git repositories./path/to/project

Options​

NameDescription
--json(INCUBATING) Output the run history in JSON. The format of this JSON is unsettled at this point, and the data structuremay change.
--most-recentOnly show the most recent run of each recipe.

Do a fast, sophisticated code search across a working set.

Unlike all other code search tools, mod search is based on Moderne Trigrep. That is a trigram index of the text of the code and also of every piece of type attribution, dependency and author information in the LST.

On a working set the search uses the Trigrep index in each repository's LST. Repositories without an index are skipped.

In place of a directory, moderne://<organization> searches that organization's repositories in Moderne without cloning them, and prints what it finds as a search of a directory does. Prefer the smallest organization that holds the repositories you care about; repo: in the query narrows its repositories by path. Only repositories you can read are searched, so an empty result can mean no access as well as no match. List organizations with mod config moderne organizations show --json.

Examples

mod search . 'call:java.util.List.add -file:src/test' --output=plain
mod search moderne://ALL/Default 'dependency:guava:29.x' --output=summary
mod search moderne://ALL/Default --syntax=sql \
"SELECT origin, path, branch, count(*) AS files
FROM search('dependency:guava:29.x select:file')
GROUP BY ALL ORDER BY files DESC"

Query syntax

Queries use Sourcegraph syntax by default. Plain words match literally and must all appear in a file (AND is implied). OR, NOT and parentheses combine terms. "two words" is a phrase, /pattern/ is a regular expression, and case:no ignores case. Quote the whole query for the shell, so that a phrase keeps its quotes:

mod search . '"two words"'

file:src/test matches part of a file's path, repo:payments part of a repository's origin/path, and lang:java or lang:cobol a file's language. select:file returns matching files without their lines. Beside a text or symbol term, file: only says which files to search, so CLMREC file:cbl/ finds the CLMREC lines in cbl/; alone, or with only other filters, it matches each file's path, which counts as a file and not a match.

Resolved symbols

Use resolved symbols to find code by what it calls, uses or declares. These filters skip comments, strings and unrelated types with the same simple name:

call:java.util.List.add calls, including calls on subtypes
call:java.util.List.remove(int) calls of one overload
ref:java.util.List written uses of a type
ref.new:java.util.ArrayList constructor uses
ref.call:java.util.List calls whose receiver has that type
ref.field:java.lang.System accesses to fields owned by that type
sym:UserService declarations of a name
implements:java.io.Serializable implementing declarations
extends:java.lang.Exception subclass declarations
annotated:org.junit.jupiter.api.Test annotated declarations
returns:java.lang.String declarations returning a type
throws:java.lang.Exception declarations throwing a type

An argument list tells overloads apart. In it * is any one argument and .. is any number, so call:java.util.List.add(int, *) is the two-argument add. It matches parameter types as the call instantiates them, so add on a List<String> takes String.

Bare ref: includes written type uses, constructor uses and documentation links. Use ref.call: or ref.field: for member references, ref.any: for all reference kinds, ref.[type,call]: for a set, or ref.owner: for members declared in a type. Names may be qualified, simple (List) or patterns (java.util.* or *..List), and are case-sensitive except mainframe names. select:symbol.class, select:symbol.method and select:symbol.field keep one kind of declaration; select:symbol.<path> also narrows the targets of ref: and call:.

mod search . 'sym:User* select:symbol.class' --output=plain

Several declaration filters describe the same declaration: annotated:Test throws:Exception finds test methods that throw Exception.

A symbol filter combines with text, file:, lang:, OR and NOT:

mod search . 'call:java.sql.DriverManager.getConnection -file:src/test'

Two call:, ref: or sym: filters side by side, or a call: or ref: beside a declaration filter, would have to match a single symbol, so the search finds nothing. Search for each with select:file and intersect the files. dependency: is the exception: beside a call: or ref: it keeps the ones that resolved to that dependency.

Dependency usages and versions

dependency: finds calls and references whose targets come from a dependency, whichever of its types is used. It finds attributed usages, not an inventory of every installed or resolved package. A transitive dependency is found under its own name. The JDK and a module's own code belong to no dependency; another module of the same repository can count as one under its own coordinates.

Name a dependency by artifact, group or both. A * can appear anywhere in a name:

dependency:guava
dependency:com.fasterxml.*
dependency:com.google.guava:guava
dependency:com.fasterxml.*:jackson*:2.15.x

A version last keeps usages that resolved that version. 2.15 and 2.15.x match every 2.15 release; ^2.15 and ~2.15.1 are version ranges. Quote a Maven range inside the query, and quote the whole query for the shell:

mod search . 'dependency:"log4j-core:[2.0,2.17.1)"' --output=summary

An npm package uses @ before its version: dependency:lodash@4.x. A kind after the dot narrows usages: dependency.call: and dependency.new:. A dependency filter also combines with a resolved call or reference:

mod search . 'dependency:guava:29.x call:*..ImmutableList.of'

For npm, an unversioned runtime name also recognizes its declaration package: dependency:react includes @types/react, dependency:lodash includes @types/lodash, and dependency:@babel/core includes @types/babel__core. An explicit dependency:@types/react@18.x asks about declaration versions, while dependency:react@19.x uses the recorded React runtime identity and version, never the declaration version. Missing, ambiguous, aliased-to-another-package or older package metadata leaves that identity unknown, so an empty version search does not establish the absence of vulnerable runtime dependencies.

Structural patterns

struct:"catch (:[type] :[e]) { }" matches a shape of code, where a :[name] hole respects balanced brackets. Keep a literal token in the pattern. A hole repeated in a pattern matches the same text, not the same variable. Beside other terms, struct: keeps the files that match them all, and the matches shown may be another term's; search the struct: term alone when its matches are what you need.

Search or a recipe

Use a recipe instead to list the dependencies a repository resolves, to aggregate a data table, or to change code. mod config recipes search finds one, and mod run --help shows how to run it.

Reading results

--output=plain lists each repository, then each matching file's path in it, then the file's numbered lines, with a : after the number of a matching line. A match sits under the lines that declare its enclosing classes and methods, and ... stands for lines left out. When a line does not show what matched, a note after ℹ on the line below it does: the full name a glob matched, the program a dynamic call reaches, a dependency's coordinates and version, or what a statement does to a DB2 table. A file select:file found carries the coordinates of the dependencies it uses below its path, so dependency:org.springframework*:*:5.x select:file names each file's artifact and version.

When a search did not cover everything, it says so after its results: the repositories it skipped and why, and the matching files --max kept out.

Mainframe sources and symbol kinds

Mainframe analysis tools split search in two, and both are here. A search in the source is a text search, except that text is case-sensitive here unless the query says case:no. A search by name is sym: for where a program, copybook, data item, paragraph, job, step, map or DB2 table is declared, and ref:, or call: for a program, for where a statement names it. Filtering by application is repo: or a smaller organization, and filtering by type is lang: and select:symbol.<path>.

Members are typed by language whether or not they parsed: lang:cobol (programs and copybooks), lang:jcl (jobs and procedures), lang:bms, lang:controlm, lang:controlcard (sort, IDCAMS, DB2 utility and DSN decks, and parm members), lang:bind (DB2 bind decks), lang:linkedit, lang:listload (what AMBLIST and the binder printed), lang:sql (DB2 DDL), lang:ims (DBDs, PSBs, MFS and gen decks), lang:assembler, lang:rexx, lang:clist, lang:sas, lang:doc (run books), lang:pli and lang:c. Names are read from COBOL programs and copybooks, their EXEC SQL included, JCL, BMS, Control-M, assembler, link-edit decks and module listings, IDCAMS and sort decks, IMS gen decks, and DB2 DDL, bind and DSN RUN decks and utility control cards; the IDCAMS, sort, link-edit and DB2 decks a job writes in its own stream are read as their members are. Where text finds a name in a repository and sym: and ref: find nothing there, the repository was indexed without its mainframe members parsed: search the text until it is indexed again.

sym: finds declarations. Every mainframe kind is a path under mainframe: a declaration's is its node (mainframe.cobol.procedure.paragraph), and a reference's the node it names, a slash and how it names it (mainframe.program/call, mainframe.program/exec, mainframe.cobol.data.item/ref). COBOL declares the program (mainframe.program: sym:CLMU010) and the copybook (mainframe.cobol.copybook: sym:CLMREC), each division and its sections by their first word (mainframe.cobol.division, mainframe.cobol.division.section: sym:CLMB010.WORKING-STORAGE), each procedure section and paragraph (mainframe.cobol.procedure.section, .paragraph: sym:2100-READ-MASTER), the file (mainframe.cobol.file: the FD, never the SELECT or OPEN naming the file), and each data item and condition name (mainframe.cobol.data.item, .condition at level 88), qualified by its program. A copybook's items are qualified by the copybook (sym:CLMREC.CLM-STATUS), and a copied item is declared in the copybook, not in the programs that copy it. sym:CLM-STATUS matches the name wherever it is declared, sym:*AMT-RESERVED every name ending so, and ? is one character of a name, as in select:symbol.mainframe.jcl.job sym:CLMJ0??. JCL declares jobs, procedures, steps and DDs (mainframe.jcl.job, .proc, .step, .dd) by name field, qualified by position (sym:CLMJ030.REPORT), and BMS declares map sets, maps and fields (mainframe.cics.mapset, .map, .field: sym:CLMS01.CLMM01). select:symbol.<path> keeps every kind under the path, so lang:cobol sym:* select:symbol.mainframe.program lists the programs and sym:* select:symbol.mainframe.cobol.procedure every paragraph and section.

What a statement names is a reference, and every kind below is in bare ref:. In COBOL, call:CLMU010, or ref.call:CLMU010, is each CALL, EXEC CICS LINK and XCTL that transfers to the program, written as a literal or through the one literal its data name is known to hold, so CALL WS-EDIT-PGM is call:CLMU040 where WS-EDIT-PGM has VALUE 'CLMU040', and the match says so with the note ℹ mainframe.program/call CLMU040 below it. A PERFORM is never a call. ref.perform:2100-READ-MASTER is a PERFORM target, and the section qualifying it in PERFORM 0200-READ OF 0000-MAIN; ref.goto: a GO TO or ALTER target; ref.copy:CLMREC a COPY or EXEC SQL INCLUDE; ref.data:CLM-STATUS a data name where it is used, a use of a condition name under it, as IF CLM-OPEN or SET CLM-OPEN TO TRUE, being a use of it too, and a host variable or CICS operand counts when the program declares it; ref.file:CLAIM-MASTER a file a SELECT, OPEN, READ, CLOSE or SORT names; and ref.dd:CLMMAST the ddname SELECT ... ASSIGN TO binds a file to, which sym:CLMMAST finds as a JCL DD. In JCL, ref.pgm:IDCAMS is the program a step runs (EXEC PGM=), ref.proc:CLMDB2 the procedure a step invokes, ref.dsn: the data set a DD names (the library, for DSN=LIB(MEMBER)) and ref.member: the member, as LIB.MEMBER. A use is qualified like its declaration: ref:CLMREC.CLM-STATUS is every use of the copied field, and ref:CLM-STATUS the uses of any item of that name. sym:CLMB010 and then ref:CLMB010 walk from a program to the statements and the JCL that name it. Beside ref: a select:symbol.<path> keeps the references to what they name: ref:* select:symbol.mainframe.cobol.data.condition is every use of a level-88 name. A reference that cannot tell which kind it names, as a name the program declares nowhere, sits on the group above (mainframe.cobol.data/ref) and answers for every kind under it, and a value with a relation keeps that one: ref:CLMU010 select:symbol.mainframe.program/exec is ref.pgm:CLMU010.

The other members declare and name their own kinds, each under its technology. Control-M, in its panel and its XML export alike, declares each job as FOLDER.JOB (mainframe.controlm.job: sym:CLMNIGHT.CLMJ010), its folders (ref.owner:CLMNIGHT lists a folder's jobs), calendars and the conditions a job adds (mainframe.controlm.condition), and refers to the member a job submits (ref:CLMJ010 select:symbol.mainframe.member/schedule), the conditions it waits for and deletes (ref:CLMNIGHT_CLMJ030_OK select:symbol.mainframe.controlm.condition/in, and /delete), its calendars and its run book. A link-edit deck declares the load module its NAME builds and each ALIAS (mainframe.module.load, .alias: sym:CLMRESV), and refers to what INCLUDE binds in as DD.MEMBER (ref:OBJLIB.CLMU010 select:symbol.mainframe.module.load) and its ENTRY; an AMBLIST or binder listing declares the modules it reports, an AMBLIST one qualified by its library (sym:CLM.PROD.LOADLIB.CLMB010), and refers to each control section and entry point (ref:IGZCBSO select:symbol.mainframe.module.csect). JCL refers to a data set both as written and as its symbols resolve, a procedure's own cards against its defaults and a calling step's literal overrides deciding names at the override, so ref.dsn:CLM.PROD.CLMMAST finds DSN=&HLQ..CLMMAST; a generation is a name of its own, quoted (ref.dsn:"CLM.PROD.EXTRACT(+1)"); INCLUDE MEMBER= is a mainframe.jcl.include/ref; and a job is indexed with its own cards, a procedure's steps in the procedure, an override DD as JOB.STEP.PROCSTEP.DD. An IDCAMS DEFINE, in a control-card member or written in a job, declares the data set it defines (mainframe.dataset.cluster, .gdg, .aix, .path, .nonvsam, .component: sym:CLM.PROD.CLMMAST), and DELETE, REPRO, LISTCAT and the rest refer to it. IMS gen decks declare databases, segments as DBD.SEGM, their fields, PSBs, named PCBs, transactions, MFS formats, device pages and fields, and messages (mainframe.ims.dbd, .segment, .field.segment, .psb, .pcb, .transaction, .format, .dpage, .dfld, .message), and refer to the database a PCB names (ref:CLMDBD01 select:symbol.mainframe.ims.dbd), the segments and fields a PSB is sensitive to and the PSB a transaction runs; a DL/I region step's MBR= and PSB= are a ref.pgm: and a PSB reference. In COBOL an EXEC CICS command refers to the file, queue, transaction, map and map set it names (ref:CLMMAST select:symbol.mainframe.cics.file; mainframe.cics.tsq, .tdq, .transaction, .map as MAPSET.MAP, .mapset), a DL/I call to the segment each search argument names (ref:CLMROOT select:symbol.mainframe.ims.segment) and an ISRT's MOD (mainframe.ims.message), and EXEC DLI SCHD to the PSB it schedules. No CSD is in a repository, so a CICS file, queue or transaction has references and no declaration. A COBOL match is held by its program, section and paragraph as a Java match is by its class and method, so a match shows the PROGRAM-ID and paragraph lines above it.

DB2 objects are named both by the programs that use them and by the members that define and bind them. In COBOL each table an EXEC SQL statement names is a mainframe.db2.table/ref over its whole name, on the group because a statement cannot tell a base table from a view or an alias (ref:CLM.POLICY select:symbol.mainframe.db2.table), and its note gives what the statement does to the table as C, R, U and D: ℹ mainframe.db2.table/ref CLM.POLICY R under a cursor's FROM CLM.POLICY, U under UPDATE CLM.POLICY. A DCLGEN copybook's DECLARE TABLE is one too, in the copybook and not in the programs that include it. A table matches relative to its schema, since static SQL that writes a table bare takes the schema from the bind's QUALIFIER: ref:CLM.POLICY select:symbol.mainframe.db2.table also finds FROM POLICY, whatever qualifier the program was bound with, ref:POLICY select:symbol.mainframe.db2.table finds POLICY in any schema, and a glob or regex matches the name as written, so ref:CLM.* select:symbol.mainframe.db2.table is every table written with the schema CLM. DECLARE POLCSR CURSOR declares the cursor CLMD020.POLCSR (mainframe.db2.cursor: sym:POLCSR), and OPEN, FETCH and CLOSE refer to it (ref:POLCSR select:symbol.mainframe.db2.cursor). A DDL member declares storage groups, databases, table spaces as DATABASE.TABLESPACE, and tables, views and aliases (mainframe.db2.stogroup, .database, .tablespace, .table.base, .table.view, .table.alias: sym:CLM.POLICY, and select:symbol.mainframe.db2.table sym:* every one of them), and under each table its columns as TABLE.COLUMN, its indexes and its named foreign keys (mainframe.db2.column, .index, .foreign-key: sym:CLM.POLICY.POLICY_NO), so ref.owner:CLM.POLICY lists a table's columns, indexes and keys; a name written without its schema takes the last SET CURRENT SQLID's. It refers to the table an index, a foreign key, a GRANT, an ALTER or a DROP is about, the tables a view's or a catalog query's FROM reads, the table space or database a table is created IN (ref:CLMDB01.CLMTSPOL select:symbol.mainframe.db2.tablespace) and the storage group an index or table space uses (ref:CLMSG01 select:symbol.mainframe.db2.stogroup); the catalog is declared nowhere, so its tables have references only (ref:SYSIBM.* select:symbol.mainframe.db2.table). A bind deck declares the package BIND PACKAGE(CLMPKG) MEMBER(CLMD010) binds, as CLMPKG.CLMD010 (mainframe.db2.package), and the plan a BIND PLAN binds (mainframe.db2.plan: sym:CLMPLAN), and refers to the collection (ref:CLMPKG select:symbol.mainframe.db2.collection), the DBRM (ref:CLMD010 select:symbol.mainframe.db2.dbrm), the LIBRARY (lang:bind ref.dsn:CLM.PROD.DBRMLIB), each PKLIST entry as written and what a REBIND or FREE names. A PKLIST entry CLMPKG.* or *.* answers for every package it covers, so ref:CLMPKG.CLMC040 select:symbol.mainframe.db2.package is every plan that may run that package. A DSN deck's RUN refers to the program it runs as EXEC PGM= does (ref.pgm:CLMD010), to its plan and to its LIB, and DSN SYSTEM() to the subsystem (ref:DB2P select:symbol.mainframe.db2.subsystem). A utility deck refers to the table space an UNLOAD, RUNSTATS, COPY or REORG works on, the tables an unload's SELECT ... FROM or FROM TABLE reads, and each DD a ...DDN keyword names (ref.dd:HSTUNL, which sym:HSTUNL finds as a JCL DD), and a TEMPLATE declares the name such a keyword may use instead (mainframe.db2.template: sym:HSTCARD). A job's own stream is read the same way: its DDL, a bind or DSN deck under SYSTSIN and a utility deck under any DD each name what their member would, on the job's cards (lang:jcl ref:CLM.POLICY select:symbol.mainframe.db2.table), and a deck a procedure writes is found in the procedure. Of the SQL a job writes in its stream only DDL is read, so a SELECT it gives DSNTIAUL or DSNTEP2 there names no table.

An assembler member with an END is a program (mainframe.program: sym:CLMU030, and lang:assembler select:symbol.mainframe.program sym:* lists them), named by its END operand and declared at the first statement labelled with that name, which is often the shop's entry macro rather than a CSECT, and a member without an END is a copy member, its labels owned by its name. A member declares its control sections (mainframe.module.csect) and DSECTs (mainframe.asm.dsect: sym:CLMRECD), in them its constants, equates, DCBs and other labels as OWNER.LABEL (mainframe.asm.data, .equate, .dcb, .label: sym:CLMRECD.* select:symbol.mainframe.asm.data), the macros it defines (mainframe.asm.macro: select:symbol.mainframe.asm.macro sym:*) and the names an ENTRY offers (mainframe.module.entry). What a member names is a reference: a COPY, which ref.copy: finds in assembler as in COBOL (ref.copy:CLMREGS); every macro it invokes, IBM's and the shop's alike (ref:CLMRTRN select:symbol.mainframe.asm.macro); the program a CALL, LINK, XCTL, ATTACH or V-con reaches, so call:CLMU030 finds the assembler caller beside the COBOL one and call:ASMTDLI the DL/I calls; the segment each SSA of a DL/I call names (ref:CLMROOT select:symbol.mainframe.ims.segment); and the DD a DCB reads (ref.dd:PURGCARD). An instruction's operands name nothing, so sym:CLMRAMR finds the field and ref:CLMRAMR nothing.

scope:comments, scope:code and scope:strings keep every text term, phrase and regular expression of the query to comments, to everything but comments (a string literal is code), or to string literals: scope:comments RESERVE reads only what people wrote for people. COBOL records its comments and string literals, assembler its comment lines and the remarks after an operand, and JCL and IMS gen decks their comment lines (//*, and * or .* in column 1); in any other language scope:comments finds nothing and scope:code finds everything.

A text term, quoted or bare, also matches across the lines a COBOL member writes it on: a comment box's words read on from one line to the next, its borders and the sequence, indicator and identification areas left out, a literal continued in column 7 reads as one, and a statement's code reads on past the end of a line and past a comment line between its words, while a comment phrase stops at code. "NOT IN THE LIST" finds a sentence that ends one comment line and starts the next, and "WHEN OTHER DISPLAY" a WHEN OTHER whose DISPLAY starts the next line. The comment lines of JCL, assembler and IMS gen decks read the same way, the //* cards and the * and .* lines, columns 72 to 80 left out, and their code does not: "FIRST JOB OF THE NIGHTLY CLAIMS STREAM" finds a job's comment block across two cards, "SERIAL MODULO ELEVEN" an assembler program's and "THE SEVEN SENFLDS" a PSB's. A run of whitespace in a phrase is one space, so "WHEN OTHER" finds the two words however a line spaces them. Each occurrence is one match, on the line it starts on, with the lines it continues onto after it. scope: holds each part of it to where it was printed. A regular expression, struct: and every other language read the printed text only.

Mainframe names match in any case, so call:clmu010 is call:CLMU010; Java and the other languages keep exact names, and text keeps its default.

SQL search syntax and schemas (moderne:// organizations only)

With --syntax=sql the query is a DuckDB SELECT over the tables below. It runs in Moderne and the answer comes back as CSV. Use it when the answer is a number, a distribution, a list of repositories or a combination of several searches, and a plain search to read the matching lines. The SQL can read nothing but these tables, and its rows come in no particular order without an ORDER BY. A search streams its rows into the SQL as it finds them, so a LIMIT stops it early, while --max only caps the rows that come back. Count in the SQL, with count(*) and GROUP BY; --output=summary does not apply.

File, line and occurrence tables

Each table takes a query written as for a plain search and covers the organization's repositories that you can read. origin, path and branch name a repository and file a path in it, so files join USING (origin, path, branch, file) and repositories USING (origin, path, branch).

search('<query>'): one row per matching file.

origin, path, branch, file, language, matches
matches counts matching lines, not individual occurrences.

search_lines('<query>'): one row per matching line.

origin, path, branch, file, language, line_number, line

search_matches('<query>'): one row per occurrence.

origin, path, branch, file, language, commit, snapshot, match_id,
match_kind, range_precision, start_line, start_column, end_line, end_column,
start_offset, end_offset, matched_text, captures, notes, capture_identity,
ast_node_kind, symbol_kind, symbol_id, symbol_parent, symbol_access,
enclosing_method_id, enclosing_class_id

Count files with search(), lines with search_lines() and occurrences with search_matches(). select:file and metadata-only searches give file rows and no line or occurrence rows.

Occurrence positions, symbols and captures

Regex, structural, phrase and symbol ranges are exact, including multiline spans. Lines and columns are one-based, offsets are zero-based UTF-16 code units, and ends are exclusive. Other searches give line fragments, marked range_precision='line_fragment', whose absolute offsets are unknown. A phrase that runs across lines has match_kind phrase, and its end_line and end_column are where it ends.

For sym:, ref: and call: matches, symbol_kind is the kind as the index spells it (method-call, type-ref, mainframe.program/call, ...) and symbol_id the qualified name those filters take, which for a reference is its resolved target: CALL WS-EDIT-PGM can have symbol_id='CLMU040'. symbol_parent and symbol_access are NULL when the symbol has none. Text, regex and structural matches have NULL symbol columns, as do matches an attribute filter (extends:, annotated:, ...) or dependency: decided without a name filter.

A span that names several symbols, as CALL WS-EDIT-PGM names a data item and a program, is a row for each, with the same range and its own match_id, so a count of rows can exceed the matches a plain search reports. match_id is fixed for a range, its captures and its symbol within one snapshot and commit, and can change when the repository is indexed again.

enclosing_class_id is the innermost type holding the match: a class, interface, enum, record or COBOL program. enclosing_method_id is the innermost method, constructor, paragraph or section inside it, or the innermost of those when no type holds the match. Both are NULL for a file whose index records no declarations. ast_node_kind is NULL.

For a mainframe.db2.table/ref symbol, symbol_access holds C, R, U and D, in that order, for what the statement does to the table: INSERT, SELECT or a cursor, UPDATE and DELETE. A DCLGEN's DECLARE TABLE has none.

captures and notes are JSON text. Read a captured hole with json_extract_string(captures, '$.name'), and JOIN a struct: search's rows to another search's rather than combining the terms in one query, which keeps only one term's matches. notes holds what the filters that matched the span knew, as an array of objects with source, text and shown fields, plus fields by source:

symbol: kind, name, parent, parentKind, access
dependency: group, artifact, version
capture: hole, value

It holds every note, including those the line display leaves out. json_extract_string(notes, '$[0].version') reads the version a dependency: glob matched when the dependency note comes first; unnest the notes when a match has notes of several kinds.

Organization membership, depth and percentages

organizations(): one row for each repository and each organization at or below the selected one that holds it, directly or through a child.

origin, path, branch, organization, name, depth, indexed
organization is the organization's id. depth is relative to the organization
the command names: 0 for it, 1 for its children, and so on. indexed says
whether the index holds the repository at its current commit, whether or
not you can read it.

Join organizations() USING (origin, path, branch). A repository in several organizations counts in each. The table includes repositories you cannot read or whose access could not be checked, so a percentage with its indexed repositories as the denominator is the matching repositories you can see over all indexed ones: a lower bound on adoption across the organization, not a share of the repositories you can read. Coverage counts likewise describe the whole organization.

The share of each child organization's indexed repositories in which you can see Guava 29 used:

WITH users AS MATERIALIZED (
SELECT DISTINCT origin, path, branch
FROM search('dependency:guava:29.x select:file')
)
SELECT o.organization, o.name,
count(DISTINCT (s.origin, s.path, s.branch))
FILTER (WHERE s.path IS NOT NULL) AS users,
count(DISTINCT (o.origin, o.path, o.branch)) AS repositories,
round(100.0 * users / repositories, 1) AS pct
FROM organizations() o
LEFT JOIN users s USING (origin, path, branch)
WHERE o.depth = 1 AND o.indexed
GROUP BY o.organization, o.name ORDER BY pct DESC

Recipe data tables

recipe('<recipe>', '<data table>'): a recipe's data table as its newest runs in the organization left it, repository by repository. It runs no recipe. Each row leads with origin, path, branch, file and line_number, so it joins a search USING (origin, path, branch, file).

Combining searches

Give each search its own alias. A JOIN keeps the files matching both, and an anti-join or EXCEPT the files matching one but not the other. A WHERE on origin, path or branch narrows the repositories. A search named twice is run twice; name it once in WITH x AS MATERIALIZED (...) and read x instead.

Files with calls to both methods:

SELECT a.origin, a.path, a.branch, a.file
FROM search('call:java.util.List.add select:file') a
JOIN search('call:java.util.List.clear select:file') b
USING (origin, path, branch, file)

Percentiles of how many files in each repository use Guava 29:

SELECT quantile_cont(n, [0.5, 0.9, 0.99]) AS p50_p90_p99,
max(n), count(*) AS repositories
FROM (
SELECT origin, path, branch, count(*) AS n
FROM search('dependency:guava:29.x select:file') GROUP BY ALL
)

Calls grouped by their containing declarations:

SELECT enclosing_class_id, enclosing_method_id, count(*) AS calls
FROM search_matches('call:java.util.List.add')
GROUP BY ALL ORDER BY calls DESC

File languages in the selected organization:

SELECT language, count(*) AS files
FROM search('file:. select:file') GROUP BY language

Mainframe SQL examples

Programs that copy a copybook and call another program:

SELECT a.path, a.file
FROM search('ref.copy:CLMREC select:file') a
JOIN search('call:CLMU010 select:file') b
USING (origin, path, branch, file)

How many statements per file call a program whose name starts CLMU:

SELECT path, file, count(*) AS calls
FROM search_lines('lang:cobol call:CLMU*')
GROUP BY path, file ORDER BY calls DESC

Program calls by resolved target:

SELECT symbol_kind, symbol_id, count(*) AS calls
FROM search_matches('lang:cobol call:*') GROUP BY ALL ORDER BY ALL

Program/table CRUD matrix:

SELECT enclosing_class_id AS program, symbol_id AS db2_table,
symbol_access, count(*) AS statements
FROM search_matches('lang:cobol ref:* select:symbol.mainframe.db2.table')
GROUP BY ALL ORDER BY ALL

An ASOF join on start_line places a match in what comes before it, as the section each COPY lands in:

SELECT c.file, c.symbol_id AS copybook,
regexp_extract(s.symbol_id, '[^.]+$') AS section
FROM search_matches('lang:cobol ref.copy:*') c
ASOF LEFT JOIN search_matches(
'lang:cobol select:symbol.mainframe.cobol.division.section sym:*') s
ON c.origin = s.origin AND c.path = s.path AND c.branch = s.branch
AND c.file = s.file AND c.start_line >= s.start_line
ORDER BY ALL

Waiting and completeness

The CLI waits for a long query and prints its rows as CSV. Below them it says when the answer may be incomplete and why: a LIMIT or --max cut it short, access to a repository could not be checked, the query raised warnings, or a file reached the per-file match cap.

Saving a search

A search keeps nothing unless --save makes it a changeset, named by --name or for its query. Save the search that names work someone is to act on, such as the repositories a team should change; counts and exploration need no save.

mod search moderne://<organization> '<query>' --save --name '<name>'

A saved search covers the whole organization, whatever --max says: every repository the query matches, each with the files and lines it matched. The CLI prints the changeset's id and link and waits until Moderne has searched the whole organization; stopping the CLI does not stop the search. A team works within the changeset, syncing only the repositories it holds:

mod git sync moderne <directory> --changeset <id> --with-sources

A saved search keeps each file it matched, with each match marked, and each match as a row of the data table org.openrewrite.table.SearchResults. A saved SQL query keeps every row of its result, not only the first --max, as io.moderne.codesearch.SqlResults, and marks the line each row names, so its SELECT must have origin, path, branch, file and either line_number (from search_lines) or start_line (from search_matches, whose other position columns then mark the exact range). A query without them is refused before it runs:

mod search moderne://<organization> --syntax=sql \
"SELECT origin, path, branch, file, line_number
FROM search_lines('call:java.util.List.add')" \
--save --name 'List.add calls'

Read a saved search's table without cloning its repositories:

mod study moderne://changeset/<id> \
--data-table io.moderne.codesearch.SqlResults --csv

Usage​

mod search [parameters]

Examples​

mod search /path/to/working-set "@Autowired"

mod search "moderne://ALL/Financial Services" "@Autowired" --output=summary

mod search "moderne://ALL/Financial Services" "dependency:org.springframework.boot:spring-boot:3.x" --save --name "Boot 3"

Parameters​

NameDescriptionExample
directory|organizationA working set or moderne://<organization>. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services./path/to/project
queryPartsSearch query, or SQL with --syntax=sql

Options​

NameDescription
-m, --maxMaximum number of matching files to show across the whole search, 100 by default. An explicit count: filter in the query overrides it, and count:all lifts it. It does not apply to --output=summary, which counts every match. With --syntax=sql it is the maximum number of rows to keep.
--nameThe name of the changeset --save makes. Defaults to the query.
--outputHow to show what the search finds. rich, the default, shows highlighted diffs and, for a working set, writes a run directory. plain is fast text output. summary counts every match over the whole search, with the files and repositories they are in, and lists neither the matches nor the repositories.
--saveSave the search as a changeset in Moderne. The command waits until the whole organization is searched. For moderne:// only.
--syntaxThe language the query is written in. sourcegraph, the default, is Sourcegraph's syntax, and zoekt is zoekt's. sql is DuckDB SQL, as Moderne's code search runs it, over search('<query>'), search_lines('<query>'), search_matches('<query>'), organizations() and recipe('<recipe>', '<data table>'), a recipe's data table as its newest runs in the organization left it, so it is for a moderne:// organization only.
-y, --yesProceed without confirmation for a search that cannot use the trigram index and must scan every file. Required when there is no console to prompt on.

mod study​

Exports a recipe data table from a working set or a changeset in Moderne.

Data tables are created by recipe runs for each repository. mod study builds an aggregated data table. CSV by default. It adds columns that identify the repository and organization of each row. The aggregate then shows each repository's contribution across the working set.

On moderne://changeset/<changesetId> the table is read from Moderne.

Usage​

mod study [parameters]

Examples​

mod study /path/to/project --last-recipe-run --data-table <DATA-TABLE-NAME>

mod study moderne://changeset/<CHANGESET_ID> --data-table SourcesFileResults --sql "SELECT repositoryPath, count(*) AS files FROM data_table GROUP BY ALL"

Parameters​

NameDescriptionExample
pathA working set or moderne://changeset/<changesetId>./path/to/project

Options​

NameDescription
--csvOutput in CSV format
--data-tableThe name of the data table to study.
--groupWhen multiple data tables share a fully-qualified name, disambiguate by group. A null/absent value matches ungrouped tables.
--gzipGzip-compress the CSV output (.csv.gz).
--jsonOutput the data table in JSON format with the specified fields. If no value is provided, all columns from the data table will be kept.
--last-recipe-runSelect the ID of the last recipe run. The last recipe run is determined from the whole repository group, not on an individual repository basis.
-m, --maxThe most rows to print. Up to 10,000. For changesets in Moderne.
-o, --output-fileWhere to write the data table. The extension picks the format. For example .xlsx for Excel.
--patchesWrite each repository's whole patch under .moderne/run/<changesetId>. For changesets in Moderne.
--recipe-runA recipe run ID listed by mod run-history
--repositoriesExport each repository's outcome instead of a data table. The columns are its state, files with results, files changed, errors, sync status, start and finish. For changesets in Moderne.
--sqlDuckDB SQL over the data table. The table is named data_table. For example SELECT repositoryPath, count(*) FROM data_table GROUP BY ALL. For changesets in Moderne.
--template

mod telemetry​

Manage CLI telemetry pushed to the configured Moderne tenant.

Telemetry pushes automatically when the CLI refreshes its license lease. Use subcommands to flush the local queue on demand.

Usage​

mod telemetry [subcommands]

Subcommands​

  • publish: Push queued CLI telemetry to the configured Moderne tenant.

mod telemetry publish​

Push queued CLI telemetry to the configured Moderne tenant.

Drains the local telemetry queue at ~/.moderne/cli/trace/ to the tenant gateway. Telemetry normally pushes automatically when the CLI refreshes its license lease — use this command to flush on demand.

Exits non-zero if the gateway permanently rejects any traces (moved to rejected/ as unpublishable).

Usage​

mod telemetry publish

Examples​

mod telemetry publish

mod trace​

Manages trace analysis tools.

Analyze build and run traces with failure classification using ML-powered techniques (not AI or LLM based) and interactive visualization.

Usage​

mod trace [subcommands]

Subcommands​

  • builds: Build trace analysis tools.
  • execs: Exec trace analysis tools.
  • runs: Run trace analysis tools.
  • syncs: Sync trace analysis tools.

mod trace builds​

Build trace analysis tools.

Analyze build traces to understand common failure patterns and build health metrics.

Usage​

mod trace builds [subcommands]

Subcommands​

  • analyze: Launch interactive build trace analyzer.

mod trace builds analyze​

Launch interactive build trace analyzer.

Launches a web-based trace analyzer with ML-powered failure classification. The analyzer pre-processes all build failures, clusters similar issues, and provides an interactive interface to explore build patterns and failure root causes.

Usage​

mod trace builds analyze [parameters]

Parameters​

NameDescriptionExamples
pathsA project directory, or one or more log.zip files containing trace data.• /path/to/project
• log.zip
• log-1.zip log-2.zip

Options​

NameDescription
--buildA build ID for a build that has completed previously.
--last-buildSelect whatever the last build was, whether the build ran fully to completion or terminated early.

mod trace execs​

Exec trace analysis tools.

Analyze exec traces to understand command execution patterns and results.

Usage​

mod trace execs [subcommands]

Subcommands​

  • analyze: Launch interactive exec trace analyzer.

mod trace execs analyze​

Launch interactive exec trace analyzer.

Launches a web-based trace analyzer for exec results. The analyzer provides an interactive interface to explore exec patterns, command operations, and execution metrics.

Usage​

mod trace execs analyze [parameters]

Parameters​

NameDescriptionExamples
pathsA project directory, or one or more log.zip files containing trace data.• /path/to/project
• log.zip
• log-1.zip log-2.zip

Options​

NameDescription
--execAn exec ID for an exec that has completed previously.
--last-execSelect whatever the last exec was, whether the exec ran fully to completion or terminated early.

mod trace runs​

Run trace analysis tools.

Analyze run traces to understand recipe execution patterns and results.

Usage​

mod trace runs [subcommands]

Subcommands​

  • analyze: Launch interactive run trace analyzer.

mod trace runs analyze​

Launch interactive run trace analyzer.

Launches a web-based trace analyzer for recipe run results. The analyzer provides an interactive interface to explore run patterns, recipe distributions, and execution metrics.

Usage​

mod trace runs analyze [parameters]

Parameters​

NameDescriptionExample
pathPath to a project directory containing run trace data./path/to/project

Options​

NameDescription
--last-runSelect whatever the last run was, whether the run completed fully or terminated early.
--runA run ID for a run that has completed previously.

mod trace syncs​

Sync trace analysis tools.

Analyze sync traces to understand repository synchronization patterns and results.

Usage​

mod trace syncs [subcommands]

Subcommands​

  • analyze: Launch interactive sync trace analyzer.

mod trace syncs analyze​

Launch interactive sync trace analyzer.

Launches a web-based trace analyzer for sync results. The analyzer provides an interactive interface to explore sync patterns, clone operations, and synchronization metrics.

Usage​

mod trace syncs analyze [parameters]

Parameters​

NameDescriptionExamples
pathsA project directory, or one or more log.zip files containing trace data.• /path/to/project
• log.zip
• log-1.zip log-2.zip

Options​

NameDescription
--last-syncSelect whatever the last sync was, whether the sync ran fully to completion or terminated early.
--syncA sync ID for a sync that has completed previously.

mod vscode​

(INCUBATING) Launches a Visual Studio Code Chat session configured to use mod for deterministic multi-repository work.

Usage​

mod vscode [subcommands]

Subcommands​

  • chat: (INCUBATING) Launches a Visual Studio Code Chat session configured to use mod for deterministic multi-repository work.

mod vscode chat​

(INCUBATING) Launches a Visual Studio Code Chat session configured to use mod for deterministic multi-repository work.

The agent works on what the directory holds. All its tool use is approved up front. With a Moderne login it can also search and run recipes in Moderne. It syncs a changeset when it needs to build or test. Moderne lists the agent on any changeset it checks out.

Usage​

mod vscode chat [parameters]

Examples​

mod vscode chat /path/to/working-set --org <ORG_NAME> --prompt "<PROMPT>"

Parameters​

NameDescriptionExample
pathThe working set the agent works in. The directory is created if missing./path/to/working-set

Options​

NameDescriptionExample
--no-preflightSkip the readiness checks that run before the agent starts.
--organization, --orgThe organization in Moderne the agent works on. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services.ALL/Financial Services
--promptThe prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file.

mod windsurf​

(INCUBATING) Launches a Windsurf session configured to use mod for deterministic multi-repository work.

Usage​

mod windsurf [subcommands]

Subcommands​

  • chat: (INCUBATING) Launches a Windsurf session configured to use mod for deterministic multi-repository work.

mod windsurf chat​

(INCUBATING) Launches a Windsurf session configured to use mod for deterministic multi-repository work.

The agent works on what the directory holds. All its tool use is approved up front. With a Moderne login it can also search and run recipes in Moderne. It syncs a changeset when it needs to build or test. Moderne lists the agent on any changeset it checks out.

Usage​

mod windsurf chat [parameters]

Examples​

mod windsurf chat /path/to/working-set

Parameters​

NameDescriptionExample
pathThe working set the agent works in. The directory is created if missing./path/to/working-set

Options​

NameDescriptionExample
--no-preflightSkip the readiness checks that run before the agent starts.
--organization, --orgThe organization in Moderne the agent works on. An organization is named by its id or its name. For example ALL/Financial Services or Financial Services.ALL/Financial Services

mod wrapper​

Create or configure a Moderne wrapper.

Creates a project-local wrapper (modw, modw.cmd, moderne/wrapper/moderne-wrapper.properties) or configures the global CLI installation with --global.

Usage​

mod wrapper

Options​

NameDescription
--auto-updateSet version to RELEASE (track the latest stable release from the Code Genome Project).
--auto-update-snapshotSet version to LATEST (track the latest snapshot from the Code Genome Project).
--distribution-passwordPassword for authenticated distribution downloads (stored in plaintext in moderne/wrapper/moderne-wrapper.properties, or ~/.moderne/cli/dist/moderne-wrapper.properties with --global).
--distribution-tokenBearer token for authenticated distribution downloads (stored in plaintext in moderne/wrapper/moderne-wrapper.properties, or ~/.moderne/cli/dist/moderne-wrapper.properties with --global).
--distribution-urlWhere to download the CLI distribution from: the root of a Maven repository, which RELEASE is then also resolved against, or a URL template. A template supports ${directory}, ${version}, ${platform} and ${extension} placeholders. ${directory} is the Maven directory, which for a snapshot keeps the -SNAPSHOT suffix while ${version} is the timestamped file version.
--distribution-url-cache-ttlHow long the wrapper caches the resolved RELEASE version before re-checking the distribution repository, as an ISO-8601 duration (e.g. PT1H, PT10M). PT0S disables caching. Avoids a metadata lookup on every invocation.
--distribution-url-early-access-cache-ttlHow long the wrapper caches the resolved LATEST/snapshot version before re-checking the early-access repository, as an ISO-8601 duration (e.g. PT1H, PT10M). PT0S disables caching.
--distribution-usernameUsername for authenticated distribution downloads (stored in moderne/wrapper/moderne-wrapper.properties, or ~/.moderne/cli/dist/moderne-wrapper.properties with --global).
--globalConfigure the global CLI installation instead of creating a project-local wrapper.
--jdk-urlURL template for a JDK archive, used when no bundled JRE or system JDK is found. Supports ${os} and ${arch} placeholders. Set to 'skip' to disable JDK auto-download (useful for air-gapped environments where Java is available via MODERNE_JAVA_HOME or PATH).
--versionCLI version to pin in the wrapper properties. Defaults to the currently-running CLI version.