Moderne CLI reference
Table of contents
- mod
- mod agent
- mod agent sessions
- mod agent send
- mod agent stop
- mod amp
- mod amp chat
- mod audit
- mod audit builds
- mod audit builds list
- mod audit runs
- mod audit runs list
- mod build
- mod claude
- mod claude chat
- mod clean
- mod clean builds
- mod clean runs
- mod clean repos
- mod codex
- mod codex chat
- mod config
- mod config agents
- mod config agents mcp
- mod config agents amp
- mod config agents amp launcher
- mod config agents amp launcher delete
- mod config agents amp launcher edit
- mod config agents amp launcher show
- mod config agents claude
- mod config agents claude launcher
- mod config agents claude launcher delete
- mod config agents claude launcher edit
- mod config agents claude launcher show
- mod config agents codex
- mod config agents codex launcher
- mod config agents codex launcher delete
- mod config agents codex launcher edit
- mod config agents codex launcher show
- mod config agents copilot
- mod config agents copilot launcher
- mod config agents copilot launcher delete
- mod config agents copilot launcher edit
- mod config agents copilot launcher show
- mod config agents cursor
- mod config agents cursor launcher
- mod config agents cursor launcher delete
- mod config agents cursor launcher edit
- mod config agents cursor launcher show
- mod config agents kiro
- mod config agents kiro launcher
- mod config agents kiro launcher delete
- mod config agents kiro launcher edit
- mod config agents kiro launcher show
- mod config agents opencode
- mod config agents opencode launcher
- mod config agents opencode launcher delete
- mod config agents opencode launcher edit
- mod config agents opencode launcher show
- mod config agents pi
- mod config agents pi launcher
- mod config agents pi launcher delete
- mod config agents pi launcher edit
- mod config agents pi launcher show
- mod config agents vscode
- mod config agents vscode launcher
- mod config agents vscode launcher delete
- mod config agents vscode launcher edit
- mod config agents vscode launcher show
- mod config agents windsurf
- mod config agents windsurf launcher
- mod config agents windsurf launcher delete
- mod config agents windsurf launcher edit
- mod config agents windsurf launcher show
- mod config agent-tools
- mod config agent-tools install
- mod config agent-tools uninstall
- mod config agent-tools skills
- mod config agent-tools skills install
- mod config agent-tools skills uninstall
- mod config agent-tools claude
- mod config agent-tools claude install
- mod config agent-tools claude uninstall
- mod config agent-tools windsurf
- mod config agent-tools windsurf install
- mod config agent-tools windsurf uninstall
- mod config agent-tools cursor
- mod config agent-tools cursor install
- mod config agent-tools cursor uninstall
- mod config agent-tools copilot
- mod config agent-tools copilot install
- mod config agent-tools copilot uninstall
- mod config agent-tools amp
- mod config agent-tools amp install
- mod config agent-tools amp uninstall
- mod config agent-tools codex
- mod config agent-tools codex install
- mod config agent-tools codex uninstall
- mod config agent-tools opencode
- mod config agent-tools opencode install
- mod config agent-tools opencode uninstall
- mod config agent-tools kiro
- mod config agent-tools kiro install
- mod config agent-tools kiro uninstall
- mod config agent-tools pi
- mod config agent-tools pi install
- mod config agent-tools pi uninstall
- mod config agent-tools prethink
- mod config agent-tools prethink edit
- mod config agent-tools prethink show
- mod config agent-tools prethink disable
- mod config build
- mod config build bazel
- mod config build bazel arguments
- mod config build bazel arguments delete
- mod config build bazel arguments edit
- mod config build bazel arguments show
- mod config build bazel executable
- mod config build bazel executable delete
- mod config build bazel executable edit
- mod config build bazel executable show
- mod config build bazel timeout
- mod config build bazel timeout delete
- mod config build bazel timeout edit
- mod config build bazel timeout show
- mod config build dotnet
- mod config build dotnet nuget-config
- mod config build dotnet nuget-config delete
- mod config build dotnet nuget-config edit
- mod config build dotnet nuget-config show
- mod config build dotnet timeout
- mod config build dotnet timeout delete
- mod config build dotnet timeout edit
- mod config build dotnet timeout show
- mod config build environment
- mod config build environment delete
- mod config build environment edit
- mod config build environment show
- mod config build go
- mod config build go gomemlimit
- mod config build go gomemlimit delete
- mod config build go gomemlimit edit
- mod config build go gomemlimit show
- mod config build go timeout
- mod config build go timeout delete
- mod config build go timeout edit
- mod config build go timeout show
- mod config build gradle
- mod config build gradle arguments
- mod config build gradle arguments delete
- mod config build gradle arguments edit
- mod config build gradle arguments show
- mod config build gradle installation
- mod config build gradle installation edit
- mod config build gradle installation delete
- mod config build gradle installation list
- mod config build gradle timeout
- mod config build gradle timeout delete
- mod config build gradle timeout edit
- mod config build gradle timeout show
- mod config build gradle version
- mod config build gradle version edit
- mod config build gradle version delete
- mod config build gradle version show
- mod config build javascript
- mod config build javascript nodeoptions
- mod config build javascript nodeoptions delete
- mod config build javascript nodeoptions edit
- mod config build javascript nodeoptions show
- mod config build mainframe
- mod config build mainframe timeout
- mod config build mainframe timeout delete
- mod config build mainframe timeout edit
- mod config build mainframe timeout show
- mod config build maven
- mod config build maven arguments
- mod config build maven arguments delete
- mod config build maven arguments edit
- mod config build maven arguments show
- mod config build maven installation
- mod config build maven installation edit
- mod config build maven installation delete
- mod config build maven installation list
- mod config build maven settings
- mod config build maven settings delete
- mod config build maven settings edit
- mod config build maven settings show
- mod config build maven timeout
- mod config build maven timeout delete
- mod config build maven timeout edit
- mod config build maven timeout show
- mod config build maven version
- mod config build maven version edit
- mod config build maven version delete
- mod config build maven version show
- mod config build node
- mod config build node timeout
- mod config build node timeout delete
- mod config build node timeout edit
- mod config build node timeout show
- mod config build parsers
- mod config build parsers add
- mod config build parsers delete
- mod config build parsers show
- mod config build python
- mod config build python timeout
- mod config build python timeout delete
- mod config build python timeout edit
- mod config build python timeout show
- mod config build resource
- mod config build resource timeout
- mod config build resource timeout delete
- mod config build resource timeout edit
- mod config build resource timeout show
- mod config build ruby
- mod config build ruby timeout
- mod config build ruby timeout delete
- mod config build ruby timeout edit
- mod config build ruby timeout show
- mod config build style
- mod config build style checkstyle
- mod config build style checkstyle delete
- mod config build style checkstyle edit
- mod config build style checkstyle show
- mod config build style openrewrite
- mod config build style openrewrite delete
- mod config build style openrewrite edit
- mod config build style openrewrite show
- mod config clone
mod config clone protocol(deprecated)mod config clone protocol delete(deprecated)mod config clone protocol edit(deprecated)mod config clone protocol show(deprecated)- mod config clone timeout
- mod config clone timeout delete
- mod config clone timeout edit
- mod config clone timeout show
- mod config dotnet
- mod config dotnet installation
- mod config dotnet installation edit
- mod config dotnet installation delete
- mod config dotnet installation list
- mod config dotnet version
- mod config dotnet version edit
- mod config dotnet version delete
- mod config dotnet version show
- mod config environment
- mod config environment show
- mod config exec
- mod config exec timeout
- mod config exec timeout delete
- mod config exec timeout edit
- mod config exec timeout show
- mod config features
- mod config features agent-tools
- mod config features agent-tools tray
- mod config features build
- mod config features build git-blame
- mod config features index-recipes
- mod config features inline-diff
- mod config features lst
mod config features no-maven-central(deprecated)- mod config features pre-study
- mod config go
- mod config go installation
- mod config go installation edit
- mod config go installation delete
- mod config go installation list
- mod config http
- mod config http proxy
- mod config http proxy delete
- mod config http proxy edit
- mod config http proxy show
- mod config http trust-store
- mod config http trust-store delete
- mod config http trust-store edit
- mod config http trust-store edit system
- mod config http trust-store edit file
mod config http trust-store edit java-home(deprecated)- mod config http trust-store show
- mod config http key-store
- mod config http key-store delete
- mod config http key-store edit
- mod config http key-store edit file
- mod config http key-store show
- mod config java
- mod config java installation
- mod config java installation edit
- mod config java installation delete
- mod config java installation list
mod config java jdk(deprecated)mod config java jdk edit(deprecated)mod config java jdk delete(deprecated)mod config java jdk list(deprecated)- mod config java options
- mod config java options edit
- mod config java options delete
- mod config java options show
- mod config java version
- mod config java version edit
- mod config java version delete
- mod config java version show
- mod config license
- mod config license delete
- mod config license edit
- mod config license generate
- mod config license show
- mod config license moderne
- mod config license moderne sync
- mod config lsts
- mod config lsts artifacts
- mod config lsts artifacts artifactory
- mod config lsts artifacts artifactory add
mod config lsts artifacts artifactory edit(deprecated)- mod config lsts artifacts artifactory delete
- mod config lsts artifacts artifactory show
- mod config lsts artifacts show
- mod config lsts artifacts azure-blob
- mod config lsts artifacts azure-blob edit
- mod config lsts artifacts azure-blob delete
- mod config lsts artifacts azure-blob show
- mod config lsts artifacts gcs
- mod config lsts artifacts gcs edit
- mod config lsts artifacts gcs delete
- mod config lsts artifacts gcs show
- mod config lsts artifacts maven
- mod config lsts artifacts maven add
mod config lsts artifacts maven edit(deprecated)- mod config lsts artifacts maven delete
- mod config lsts artifacts maven show
- mod config lsts artifacts s3
- mod config lsts artifacts s3 edit
- mod config lsts artifacts s3 delete
- mod config lsts artifacts s3 show
- mod config lsts cache-dir
- mod config lsts cache-dir edit
- mod config lsts cache-dir show
- mod config lsts cache-dir delete
- mod config metrics
- mod config metrics atlas
- mod config metrics atlas edit
- mod config metrics atlas show
- mod config metrics atlas delete
- mod config moderne
- mod config moderne delete
- mod config moderne edit
- mod config moderne local
- mod config moderne login
- mod config moderne show
- mod config moderne organizations
- mod config moderne organizations show
- mod config node
- mod config node installation
- mod config node installation edit
- mod config node installation delete
- mod config node installation list
- mod config node version
- mod config node version edit
- mod config node version delete
- mod config node version show
- mod config python
- mod config python installation
- mod config python installation edit
- mod config python installation delete
- mod config python installation list
- mod config python version
- mod config python version edit
- mod config python version delete
- mod config python version show
- mod config recipes
- mod config recipes active
- mod config recipes active set
- mod config recipes active show
- mod config recipes active delete
- mod config recipes artifacts
- mod config recipes artifacts artifactory
- mod config recipes artifacts artifactory add
mod config recipes artifacts artifactory edit(deprecated)- mod config recipes artifacts artifactory delete
- mod config recipes artifacts artifactory show
- mod config recipes artifacts show
- mod config recipes artifacts maven
- mod config recipes artifacts maven add
mod config recipes artifacts maven edit(deprecated)- mod config recipes artifacts maven delete
- mod config recipes artifacts maven show
- mod config recipes artifacts npm
- mod config recipes artifacts npm add
- mod config recipes artifacts npm delete
- mod config recipes artifacts npm show
- mod config recipes artifacts pip
- mod config recipes artifacts pip add
- mod config recipes artifacts pip delete
- mod config recipes artifacts pip show
- mod config recipes artifacts nuget
- mod config recipes artifacts nuget add
- mod config recipes artifacts nuget delete
- mod config recipes artifacts nuget show
- mod config recipes artifacts go
- mod config recipes artifacts go add
- mod config recipes artifacts go delete
- mod config recipes artifacts go show
- mod config recipes bundle
- mod config recipes bundle push
- mod config recipes bundle check
- mod config recipes code-genome-project
- mod config recipes code-genome-project delete
- mod config recipes code-genome-project edit
- mod config recipes code-genome-project show
- mod config recipes csv
- mod config recipes csv sync
- mod config recipes export
- mod config recipes export json
- mod config recipes export csv
- mod config recipes import
- mod config recipes import csv
- mod config recipes go
- mod config recipes go install
- mod config recipes go retrieve
- mod config recipes go delete
- mod config recipes jar
- mod config recipes jar install
- mod config recipes jar retrieve
- mod config recipes jar delete
- mod config recipes npm
- mod config recipes npm install
- mod config recipes npm retrieve
- mod config recipes npm delete
- mod config recipes nuget
- mod config recipes nuget install
- mod config recipes nuget retrieve
- mod config recipes nuget delete
- mod config recipes pip
- mod config recipes pip install
- mod config recipes pip retrieve
- mod config recipes pip delete
- mod config recipes moderne
- mod config recipes moderne install
- mod config recipes moderne sync
- mod config recipes delete
- mod config recipes list
- mod config recipes search
- mod config recipes source
- mod config recipes source checkout
- mod config recipes source new
- mod config recipes tree
- mod config recipes upgrade
- mod config recipes yaml
- mod config recipes yaml install
- mod config recipes yaml delete
- mod config run
- mod config run polyglot-parallel
- mod config run polyglot-parallel delete
- mod config run polyglot-parallel edit
- mod config run polyglot-parallel show
- mod config run stall-threshold
- mod config run stall-threshold delete
- mod config run stall-threshold edit
- mod config run stall-threshold show
- mod config run timeout
- mod config run timeout delete
- mod config run timeout edit
- mod config run timeout show
mod config scm(deprecated)mod config scm moderne(deprecated)mod config scm moderne sync(deprecated)mod config scm add(deprecated)mod config scm remove(deprecated)mod config scm show(deprecated)- mod config secrets
- mod config secrets store
- mod config secrets store delete
- mod config secrets store edit
- mod config secrets store show
- mod config telemetry
- mod config telemetry wait-for-upload
- mod copilot
- mod copilot chat
- mod cursor
- mod cursor chat
- mod doctor
- mod devcenter
- mod exec
- mod git
- mod git add
- mod git apply
- mod git checkout
- mod git commit
- mod git compare
- mod git pull
- mod git push
- mod git reset
- mod git rev-parse
- mod git rm
- mod git stashset
- mod git stashset apply
- mod git stashset push
- mod git sync
- mod git sync csv
- mod git sync moderne
- mod git status
- mod graphql
- mod kiro
- mod kiro chat
- mod log
- mod log builds
- mod log builds add
- mod log execs
- mod log execs add
- mod log runs
- mod log runs add
- mod log syncs
- mod log syncs add
- mod list
- mod login
- mod monitor
- mod opencode
- mod opencode chat
- mod pi
- mod pi chat
- mod prebuild
- mod publish
- mod run
- mod run-history
- mod search
- mod study
- mod telemetry
- mod telemetry publish
- mod trace
- mod trace builds
- mod trace builds analyze
- mod trace execs
- mod trace execs analyze
- mod trace runs
- mod trace runs analyze
- mod trace syncs
- mod trace syncs analyze
- mod vscode
- mod vscode chat
- mod windsurf
- mod windsurf chat
- mod wrapper
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
| Name | Description |
|---|---|
--version | Display 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 Modernemonitor: (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
| Name | Description |
|---|---|
changeset | The changeset whose sessions are listed. Without one, this machine's sessions are listed. |
Options
| Name | Description |
|---|---|
--json | Print 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
| Name | Description |
|---|---|
session | The session as mod agent sessions lists it. A session on this machine also goes by its own id. |
message | What 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
| Name | Description |
|---|---|
session | The 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
| Name | Description | Example |
|---|---|---|
path | The working set the agent works in. The directory is created if missing. | /path/to/working-set |
Options
| Name | Description | Example |
|---|---|---|
--no-preflight | Skip the readiness checks that run before the agent starts. | |
--organization, --org | The 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 |
--prompt | The prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file. | |
--unattended | Run 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--dry-run | Do not actually build the LST(s), but list the steps that would be required to do so. |
--full | Force 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. |
--offline | When 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-tag | Tags 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
| Name | Description | Example |
|---|---|---|
path | The working set the agent works in. The directory is created if missing. | /path/to/working-set |
Options
| Name | Description | Example |
|---|---|---|
--effort | How hard the model reasons, such as medium, high or xhigh. | |
-m, --model | The model Claude Code runs with. | |
--no-preflight | Skip the readiness checks that run before the agent starts. | |
--organization, --org | The 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 |
--prompt | The prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file. | |
--unattended | Run 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--keep | Keep 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--keep | Keep 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
-l, --no-lst | Remove repositories that completed sync but never built an LST. |
-n, --dry-run | List what would be deleted without deleting anything. |
-o, --not-in-org | Remove directories on disk that are not in the current organization structure. |
-s, --sync-failed | Remove 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
| Name | Description | Example |
|---|---|---|
path | The working set the agent works in. The directory is created if missing. | /path/to/working-set |
Options
| Name | Description | Example |
|---|---|---|
--effort | How hard the model reasons, such as medium, high or xhigh. | |
-m, --model | The model Codex runs with. | |
--no-preflight | Skip the readiness checks that run before the agent starts. | |
--organization, --org | The 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 |
--prompt | The prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file. | |
--resume | Resume the newest Codex session in the directory, or the one named by id or name. | |
--unattended | Run 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
| Name | Description |
|---|---|
--enabled | Whether 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
| Name | Description |
|---|---|
launcher | The 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
| Name | Description |
|---|---|
launcher | The 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
| Name | Description |
|---|---|
launcher | The 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
| Name | Description |
|---|---|
launcher | The 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
| Name | Description |
|---|---|
launcher | The 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
| Name | Description |
|---|---|
launcher | The 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
| Name | Description |
|---|---|
launcher | The 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
| Name | Description |
|---|---|
launcher | The 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
| Name | Description |
|---|---|
launcher | The 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
| Name | Description |
|---|---|
launcher | The 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
| Name | Description | Example |
|---|---|---|
--enabled | Enables the live Prethink context refresh. Disabled by default. | |
--option | A recipe option as key=value. May be repeated to supply multiple options. | |
--recipe | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
executable | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
nugetConfig | The location of a nuget.config file to use. |
Options
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description | Example |
|---|---|---|
environmentKeyPairs | Environment variables in KEY=VALUE format. | MAVEN_OPTS=-Xmx2g NPM_TOKEN=secret123 |
Options
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
value | The Go memory limit, e.g. '4GiB', '512MiB', or 'off' to disable it. |
Options
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
gradleHomes | The 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
| Name | Description |
|---|---|
--named | Filter 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
selectedGradle | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
mavenHomes | The 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
| Name | Description |
|---|---|
--named | Filter 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
settingsXml | The location of a Maven settings.xml file to use. |
Options
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
selectedMaven | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
type | The parser type. Supported: docker, gradle, groovy, hcl, json, plaintext, properties, proto, toml, xml, yaml. |
patterns | Glob patterns for files to parse with this type (e.g. **/*.mst **/*.xbind). |
Options
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
type | Optional parser type to delete. If omitted, all mappings are removed. |
Options
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
checkstyleXml | The location of a Checkstyle configuration XML file to use. |
Options
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
rewriteYaml | The location of an OpenRewrite style YAML file to use. |
Options
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
protocols | The 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
| Name | Description |
|---|---|
timeout | The 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
| Name | Description |
|---|---|
dotnetInstallations | Paths 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
| Name | Description |
|---|---|
--named | Filter 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
| Name | Description |
|---|---|
selectedDotnet | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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-recipesinline-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
| Name | Description |
|---|---|
--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
| Name | Description |
|---|---|
--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
| Name | Description |
|---|---|
--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
| Name | Description |
|---|---|
--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
| Name | Description |
|---|---|
--version | LST 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
| Name | Description |
|---|---|
--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
| Name | Description |
|---|---|
--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
| Name | Description |
|---|---|
goInstallations | Paths 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
| Name | Description |
|---|---|
--named | Filter 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
| Name | Description |
|---|---|
--host, --proxy-host | |
--non-proxy-hosts | A 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" |
--password | The password to authenticate with. |
--port, --proxy-port | |
--user | The 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
| Name | Description |
|---|---|
--password | The password used to access the truststore. |
--stacktrace | Print 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
| Name | Description |
|---|---|
file | The absolute path to the truststore file. |
Options
| Name | Description |
|---|---|
--password | The password used to access the truststore. |
--provider | The provider of the truststore. |
--stacktrace | Print the full stack trace on validation error |
--type | The 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
| Name | Description |
|---|---|
--stacktrace | Print 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
| Name | Description |
|---|---|
--stacktrace | Print 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
| Name | Description |
|---|---|
file | The absolute path to the keystore file. |
Options
| Name | Description |
|---|---|
--password | The password used to access the keystore. |
--provider | The provider of the keystore. |
--stacktrace | Print the full stack trace on validation error |
--type | The 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
| Name | Description |
|---|---|
--stacktrace | Print 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) Useinstallationinstead. 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
| Name | Description |
|---|---|
javaHomes | The 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
| Name | Description |
|---|---|
--named | Filter 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
| Name | Description |
|---|---|
javaHomes | The 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
| Name | Description |
|---|---|
--named | Filter 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
selectedJdk | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
license | The 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
| Name | Description |
|---|---|
licensee | The licensee name. |
expirationDate | The expiration date in yyyyMMdd format, e.g. 20270101. |
Options
| Name | Description |
|---|---|
--private-key | Base64-encoded raw 32-byte Ed25519 private key. Pass the flag with no value to read from stdin (masked on a TTY). |
--save | Persist the generated license as the active configuration. |
mod config license show
Displays information about the configured license key.
Usage
mod config license show
Options
| Name | Description |
|---|---|
--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
| Name | Description | Example |
|---|---|---|
url | The URL of the artifact repository that LSTs will be published to. | https://artifactory.company-name.com/artifactory/moderne-ingest |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--jfrog-api-token | The JFrog API token to use. | |
--password | The password to authenticate with. | |
--skip-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description | Example |
|---|---|---|
url | The URL of the artifact repository that LSTs will be published to. | https://artifactory.company-name.com/artifactory/moderne-ingest |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--jfrog-api-token | The JFrog API token to use. | |
--password | The password to authenticate with. | |
--skip-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description |
|---|---|
url | The 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
| Name | Description | Example |
|---|---|---|
uri | The 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
| Name | Description |
|---|---|
--connection-string | Azure Storage connection string (from the storage account's Access keys page). |
--sas-token | Shared 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
| Name | Description | Example |
|---|---|---|
uri | The Cloud Storage bucket that LSTs will be published to. Must be of the form gs://{bucket}. | gs://bucket |
Options
| Name | Description |
|---|---|
--credentials-file | Path to a service account JSON key file. Defaults to Application Default Credentials. |
--endpoint-url | Override 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. |
--project | The 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
| Name | Description | Example |
|---|---|---|
url | The URL of the artifact repository that LSTs will be published to. | https://repo.company-name.com/repository/moderne-ingest |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--local | Apply 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. | |
--password | The password to authenticate with. | |
--save | Apply 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-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description | Example |
|---|---|---|
url | The URL of the artifact repository that LSTs will be published to. | https://repo.company-name.com/repository/moderne-ingest |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--local | Apply 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. | |
--password | The password to authenticate with. | |
--save | Apply 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-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description |
|---|---|
url | The URL of the Maven repository to remove. If not provided, all Maven repositories are removed. |
Options
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description | Example |
|---|---|---|
uri | The URL of the artifact repository that LSTs will be published to. | s3://bucket |
Options
| Name | Description |
|---|---|
--endpoint-url | Override command's default URL with the given URL. |
--profile | Use a specific profile from your credential file. |
--region | The region to use. Overrides config/env settings. |
--skip-ssl | If 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
| Name | Description |
|---|---|
cacheDir | The 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
| Name | Description |
|---|---|
url | The Atlas publish endpoint URL (e.g., https://localhost:7101/api/publish/v2). |
Options
| Name | Description |
|---|---|
--interval | How often to push metrics, as an ISO-8601 duration (default: PT1M). |
--tag | Common 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 Moderneshow: 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
| Name | Description | Example |
|---|---|---|
host | The URL of the Moderne UI. | https://app.moderne.io |
Options
| Name | Description | Example |
|---|---|---|
--api | The 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-ssl | If 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
| Name | Description |
|---|---|
--device-code | Log 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. |
--expiration | The time to expiration for the token to be created, as an ISO-8601 duration string. Example: P180D for 180 days. |
--with-token | The Moderne personal access token to use. |
-y, --yes | Automatic 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
| Name | Description |
|---|---|
--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
| Name | Description |
|---|---|
nodeInstallations | Paths 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
| Name | Description |
|---|---|
--named | Filter 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
| Name | Description |
|---|---|
selectedNode | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
pythonInstallations | Paths 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
| Name | Description |
|---|---|
--named | Filter 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
| Name | Description |
|---|---|
selectedPython | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
recipeSourceFile | Path to a recipe source file (.java, .kt, .yml, or .yaml) |
Options
| Name | Description |
|---|---|
--recipe | Recipe 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
| Name | Description | Example |
|---|---|---|
url | The URL of the artifact repository that recipes will be resolved from. | https://artifactory.company-name.com/artifactory/moderne-recipes |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--jfrog-api-token | The JFrog API token to use. | |
--password | The password to authenticate with. | |
--skip-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description | Example |
|---|---|---|
url | The URL of the artifact repository that recipes will be resolved from. | https://artifactory.company-name.com/artifactory/moderne-recipes |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--jfrog-api-token | The JFrog API token to use. | |
--password | The password to authenticate with. | |
--skip-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description |
|---|---|
url | The 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
| Name | Description |
|---|---|
url | The URL of the artifact repository that recipes will be resolved from. |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--password | The password to authenticate with. | |
--skip-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description |
|---|---|
url | The URL of the artifact repository that recipes will be resolved from. |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--password | The password to authenticate with. | |
--skip-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description |
|---|---|
url | The 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
| Name | Description |
|---|---|
url | The URL of the artifact repository that recipes will be resolved from. |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--password | The password to authenticate with. | |
--scope | The npm package scope (e.g. @myorg) that this registry serves. If omitted, this registry is configured as the default for unscoped packages. | @myorg |
--skip-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description |
|---|---|
url | The 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
| Name | Description |
|---|---|
url | The URL of the artifact repository that recipes will be resolved from. |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--password | The password to authenticate with. | |
--skip-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description |
|---|---|
url | The 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
| Name | Description |
|---|---|
url | The URL of the artifact repository that recipes will be resolved from. |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--name | The feed name used in the generated NuGet.config. Defaults to the URL host. | internal |
--password | The password to authenticate with. | |
--skip-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description |
|---|---|
url | The 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
| Name | Description |
|---|---|
url | The URL of the artifact repository that recipes will be resolved from. |
Options
| Name | Description | Example |
|---|---|---|
--authorization | The authorization header value to use. | Bearer XXXXX |
--password | The password to authenticate with. | |
--skip-ssl | If this parameter is included, SSL verification will be skipped. | |
--user | The 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
| Name | Description |
|---|---|
url | The 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
| Name | Description |
|---|---|
project | The directory of a Gradle or Maven recipe project. It is built first when its source changed. |
Options
| Name | Description |
|---|---|
--output | Where 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
| Name | Description |
|---|---|
project | The 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
| Name | Description |
|---|---|
zip | The 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
| Name | Description |
|---|---|
--token | Your Code Genome Project token. Given no value, the CLI asks for it. |
--username | Your 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
| Name | Description | Example |
|---|---|---|
csv | The 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
| Name | Description |
|---|---|
output | The path to the output JSON file. |
mod config recipes export csv
Export recipe details as CSV.
Usage
mod config recipes export csv [parameters]
Parameters
| Name | Description |
|---|---|
output | The 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
| Name | Description |
|---|---|
input | The 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
| Name | Description |
|---|---|
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
| Name | Description |
|---|---|
MODULE | The Go module path as it was installed. |
Options
| Name | Description |
|---|---|
--json | Print 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
| Name | Description | Example |
|---|---|---|
modulePath | A 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
| Name | Description |
|---|---|
GAV | The 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
| Name | Description |
|---|---|
GA | The 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
| Name | Description |
|---|---|
--json | Print 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
| Name | Description | Examples |
|---|---|---|
artifact | An 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
| Name | Description |
|---|---|
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
| Name | Description |
|---|---|
PACKAGE | The npm package name as it was installed, with its @scope if it has one. |
Options
| Name | Description |
|---|---|
--json | Print 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
| Name | Description | Example |
|---|---|---|
packageName | An 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
| Name | Description |
|---|---|
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
| Name | Description |
|---|---|
PACKAGE | The NuGet package id as it was installed. |
Options
| Name | Description |
|---|---|
--json | Print 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
| Name | Description | Example |
|---|---|---|
packageName | A 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
| Name | Description |
|---|---|
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
| Name | Description |
|---|---|
PACKAGE | The pip distribution name as it was installed. |
Options
| Name | Description |
|---|---|
--json | Print 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
| Name | Description | Example |
|---|---|---|
packageName | A 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
| Name | Description |
|---|---|
searchTerm | The 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
| Name | Description |
|---|---|
-y, --yes | Automatically 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
mod config recipes search
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
| Name | Description |
|---|---|
query |
Options
| Name | Description |
|---|---|
--json | Print 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. |
--limit | The 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
| Name | Description |
|---|---|
path | The working set to check the recipe's source out into. |
Options
| Name | Description |
|---|---|
--recipe | The ID of a recipe whose source to check out. A trailing portion of the ID is accepted when it matches only one recipe. |
--url | The 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
| Name | Description |
|---|---|
path | The working set to start the recipe project in. |
name | The name of the project and of its repository, for example rewrite-acme. |
Options
| Name | Description |
|---|---|
--ecosystem | What 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. |
--group | The 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
| Name | Description |
|---|---|
recipe | The recipe ID to expand. A trailing portion of the ID is accepted when it matches only one recipe. |
Options
| Name | Description |
|---|---|
--depth | How many levels below the recipe to expand. |
--json | Print 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
| Name | Description |
|---|---|
paths | The 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
| Name | Description |
|---|---|
--category | The 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
| Name | Description |
|---|---|
path | The 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
| Name | Description |
|---|---|
parallel | Maximum 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
duration | The 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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
| Name | Description |
|---|---|
--local | Apply 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. |
--save | Apply 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 Moderneaddremoveshow: (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
| Name | Description |
|---|---|
type | The SCM type |
baseUrl | The primary SCM URL |
Options
| Name | Description |
|---|---|
--alternate-url | Alternate SCM URLs |
mod config scm remove (deprecated)
(DEPRECATED) Remove an SCM configuration by type and URL
Usage
mod config scm remove [parameters]
Parameters
| Name | Description |
|---|---|
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
| Name | Description |
|---|---|
store | Either '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
| Name | Description |
|---|---|
--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
| Name | Description | Example |
|---|---|---|
path | The working set the agent works in. The directory is created if missing. | /path/to/working-set |
Options
| Name | Description | Example |
|---|---|---|
--effort | How hard the model reasons, such as medium, high or xhigh. | |
-m, --model | The model Copilot runs with. | |
--no-preflight | Skip the readiness checks that run before the agent starts. | |
--organization, --org | The 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 |
--prompt | The prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file. | |
--unattended | Run 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
| Name | Description | Example |
|---|---|---|
path | The working set the agent works in. The directory is created if missing. | /path/to/working-set |
Options
| Name | Description | Example |
|---|---|---|
--no-preflight | Skip the readiness checks that run before the agent starts. | |
--organization, --org | The 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 |
--prompt | The prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file. | |
--unattended | Run 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
| Name | Description |
|---|---|
path | The 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
| Name | Description |
|---|---|
--json | Output the report in JSON. Each row says whether its fix lies with the host, the setup or a remote service. |
--skip-remote | Do not contact any network service. Remote sections report a single skipped row. |
--sync-csv | A 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--last-recipe-run | Select 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-search | Select the ID of the last search run to filter repositories. Only repositories that had search matches will be processed. |
--recipe-run | A recipe run ID listed by mod run-history |
--search | A 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
cmd | The shell command that you wish to run on the selected repository roots. | |
args | Arguments for the command, if any exist. |
Options
| Name | Description |
|---|---|
--dry-run | Do 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-run | Select 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-search | Select the ID of the last search run to filter repositories. Only repositories that had search matches will be processed. |
-o, --out, --output | The 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-run | A recipe run ID listed by mod run-history |
--search | A search run ID to filter repositories to only those with matches. |
--trace-tag | Tags 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--last-recipe-run | Select 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-search | Select the ID of the last search run to filter repositories. Only repositories that had search matches will be processed. |
--recipe-run | A recipe run ID listed by mod run-history |
--search | A search run ID to filter repositories to only those with matches. |
--trace-tag | Tags 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--last-recipe-run | Select 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-search | Select the ID of the last search run to filter repositories. Only repositories that had search matches will be processed. |
--recipe-run | A recipe run ID listed by mod run-history |
--search | A search run ID to filter repositories to only those with matches. |
--trace-tag | Tags 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
branch | The branch to checkout. | main |
Options
| Name | Description |
|---|---|
-b, -B | Causes a new branch to be created as if git-branch were called and then checked out. |
--changeset | Check 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-run | Select 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-search | Select the ID of the last search run to filter repositories. Only repositories that had search matches will be processed. |
-n, --name | The name of a new changeset. |
--recipe-run | A recipe run ID listed by mod run-history |
--search | A search run ID to filter repositories to only those with matches. |
--trace-tag | Tags 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
-a, --all | Stage the changes the recipe run made before committing, as mod git add would. |
--allow-empty | Whether or not to allow making empty commits. |
--gpg-passphrase-path | Path to a file containing the passphrase for the GPG private key. |
--gpg-private-key-path | Path to an armored PGP private key file for signing. Implies --gpg-sign. |
--last-recipe-run | Select 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-search | Select the ID of the last search run to filter repositories. Only repositories that had search matches will be processed. |
-m, --message | The commit message to use. |
--no-gpg-sign | Override commit.gpgsign configuration and create an unsigned commit. |
--recipe-run | A recipe run ID listed by mod run-history |
-S, --gpg-sign | GPG sign the commit. Uses the local GPG keyring, or a key file if --gpg-private-key-path is provided. |
--search | A search run ID to filter repositories to only those with matches. |
--trace-tag | Tags 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--json | Print the comparison of every repository as JSON rather than for reading. |
--last-recipe-run | Select 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-run | A 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description | Example |
|---|---|---|
--gpg-passphrase-path | Path to a file containing the passphrase for the GPG private key. | |
--gpg-private-key-path | Path to an armored PGP private key file for signing. Implies --gpg-sign. | |
--no-gpg-sign | Override commit.gpgsign configuration and create an unsigned commit. | |
--rebase | Pull with rebase or not. | github.com |
-S, --gpg-sign | GPG 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
repository | ||
refspec | Specify what destination ref to update with what source object. |
Options
| Name | Description |
|---|---|
-f, --force | Same 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-run | Select 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-search | Select the ID of the last search run to filter repositories. Only repositories that had search matches will be processed. |
-m, --message | A message for the change. Recorded in Moderne when pushing to a changeset. |
--recipe-run | A recipe run ID listed by mod run-history |
--search | A search run ID to filter repositories to only those with matches. |
--tool | The tool that made the change. Recorded in Moderne when pushing to a changeset. |
--trace-tag | Tags 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-upstream | For 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--hard | Resets 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
| Name | Description | Example |
|---|---|---|
path | A 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
file | File patterns to remove. |
Options
| Name | Description |
|---|---|
--cached | Only 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
ref | The stash ref to apply. |
Options
| Name | Description |
|---|---|
--force | Pop 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
-u, --include-untracked | Include 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
| Name | Description | Example |
|---|---|---|
path | The working set to sync into. It is created if missing. | /path/to/project |
csv | A repos.csv file or URL. A moderne:// URI syncs from Moderne instead. |
Options
| Name | Description |
|---|---|
--depth | Equivalent to the git clone --depth option. |
--filter | Equivalent 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, --org | Only 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. |
--save | If 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. |
--shard | Sync 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-branch | Equivalent to the git clone --single-branch option. |
--trace-tag | Tags 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-lsts | Download each repository's LST. |
--with-sources | Clone 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
| Name | Description | Example |
|---|---|---|
path | The 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
| Name | Description | Example |
|---|---|---|
--changeset | Sync only the repositories with results in this changeset. The id is the changeset's id in Moderne. | 20260924153000-Ab1cD |
--depth | Equivalent to the git clone --depth option. | |
--filter | Equivalent 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, --org | Only 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. | |
--save | If 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. | |
--shard | Sync 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-branch | Equivalent to the git clone --single-branch option. | |
--trace-tag | Tags 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-lsts | Download each repository's LST. | |
--with-sources | Clone 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--remote | Also 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
| Name | Description |
|---|---|
query | The query or mutation, or - to read it from standard input. |
Options
| Name | Description |
|---|---|
-f, --raw-field | A variable whose value is the string given, whatever it looks like. |
-F, --field | A 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
| Name | Description | Example |
|---|---|---|
path | The working set the agent works in. The directory is created if missing. | /path/to/working-set |
Options
| Name | Description | Example |
|---|---|---|
--effort | How hard the model reasons, such as medium, high or xhigh. | |
-m, --model | The model Kiro runs with. | |
--no-preflight | Skip the readiness checks that run before the agent starts. | |
--organization, --org | The 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 |
--prompt | The prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file. | |
--unattended | Run 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
logPath | The 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
| Name | Description |
|---|---|
--build | A build ID for a build that has completed previously. |
--last-build | Select 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
logPath | The 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
| Name | Description |
|---|---|
--exec | An exec ID for an exec that has completed previously. |
--last-exec | Select 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
logPath | The 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
| Name | Description |
|---|---|
--last-recipe-run | Select 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-search | Select the ID of the last search run to filter repositories. Only repositories that had search matches will be processed. |
--recipe-run | A recipe run ID listed by mod run-history |
--run | (DEPRECATED) use (DEPRECATED) use @|--recipe-run|@ instead. |
--search | A 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
logPath | The 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
| Name | Description |
|---|---|
--last-sync | Select whatever the last sync was, whether the sync ran fully to completion or terminated early. |
--sync | A 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--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
| Name | Description |
|---|---|
--device-code | Log 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. |
--expiration | The time to expiration for the token to be created, as an ISO-8601 duration string. Example: P180D for 180 days. |
--with-token | The Moderne personal access token to use. |
-y, --yes | Automatic 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
| Name | Description |
|---|---|
--port | The 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
| Name | Description | Example |
|---|---|---|
path | The working set the agent works in. The directory is created if missing. | /path/to/working-set |
Options
| Name | Description | Example |
|---|---|---|
--no-preflight | Skip the readiness checks that run before the agent starts. | |
--organization, --org | The 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 |
--prompt | The prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file. | |
--unattended | Run 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
| Name | Description | Example |
|---|---|---|
path | The working set the agent works in. The directory is created if missing. | /path/to/working-set |
Options
| Name | Description | Example |
|---|---|---|
--no-preflight | Skip the readiness checks that run before the agent starts. | |
--organization, --org | The 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 |
--prompt | The prompt the session starts with. Say what the work is and when it is done. @<file> reads it from a file. | |
--unattended | Run 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--offline | When an underlying build tool has an offline mode, enable it. |
--refresh | Force 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--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, --org | Only 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. |
--shard | Work 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-csv | Work 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-tag | Tags 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
| Name | Description | Example |
|---|---|---|
directory|organization | A 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
| Name | Description | Example |
|---|---|---|
--active-recipe | Run the recipe that is active in the Moderne IDE plugin. | |
--bundle | Use 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-run | Select 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-search | Select the ID of the last search run to filter repositories. Only repositories that had search matches will be processed. | |
--max-files | How 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-option | A 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. | |
--patches | Write each repository's whole patch under .moderne/run/<changesetId>. For runs in Moderne. | |
--recipe | The 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-run | A recipe run ID listed by mod run-history | |
--search | A search run ID to filter repositories to only those with matches. | |
--shard | Sync 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-csv | Sync 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-tag | Tags 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
| Name | Description | Example |
|---|---|---|
path | A git repository or a working set directory of git repositories. | /path/to/project |
Options
| Name | Description |
|---|---|
--json | (INCUBATING) Output the run history in JSON. The format of this JSON is unsettled at this point, and the data structuremay change. |
--most-recent | Only show the most recent run of each recipe. |
mod search
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
| Name | Description | Example |
|---|---|---|
directory|organization | A 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 |
queryParts | Search query, or SQL with --syntax=sql |
Options
| Name | Description |
|---|---|
-m, --max | Maximum 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. |
--name | The name of the changeset --save makes. Defaults to the query. |
--output | How 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. |
--save | Save the search as a changeset in Moderne. The command waits until the whole organization is searched. For moderne:// only. |
--syntax | The 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, --yes | Proceed 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
| Name | Description | Example |
|---|---|---|
path | A working set or moderne://changeset/<changesetId>. | /path/to/project |
Options
| Name | Description |
|---|---|
--csv | Output in CSV format |
--data-table | The name of the data table to study. |
--group | When multiple data tables share a fully-qualified name, disambiguate by group. A null/absent value matches ungrouped tables. |
--gzip | Gzip-compress the CSV output (.csv.gz). |
--json | Output 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-run | Select 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, --max | The most rows to print. Up to 10,000. For changesets in Moderne. |
-o, --output-file | Where to write the data table. The extension picks the format. For example .xlsx for Excel. |
--patches | Write each repository's whole patch under .moderne/run/<changesetId>. For changesets in Moderne. |
--recipe-run | A recipe run ID listed by mod run-history |
--repositories | Export 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. |
--sql | DuckDB 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
| Name | Description | Examples |
|---|---|---|
paths | A project directory, or one or more log.zip files containing trace data. | • /path/to/project• log.zip• log-1.zip log-2.zip |
Options
| Name | Description |
|---|---|
--build | A build ID for a build that has completed previously. |
--last-build | Select 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
| Name | Description | Examples |
|---|---|---|
paths | A project directory, or one or more log.zip files containing trace data. | • /path/to/project• log.zip• log-1.zip log-2.zip |
Options
| Name | Description |
|---|---|
--exec | An exec ID for an exec that has completed previously. |
--last-exec | Select 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
| Name | Description | Example |
|---|---|---|
path | Path to a project directory containing run trace data. | /path/to/project |
Options
| Name | Description |
|---|---|
--last-run | Select whatever the last run was, whether the run completed fully or terminated early. |
--run | A 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
| Name | Description | Examples |
|---|---|---|
paths | A project directory, or one or more log.zip files containing trace data. | • /path/to/project• log.zip• log-1.zip log-2.zip |
Options
| Name | Description |
|---|---|
--last-sync | Select whatever the last sync was, whether the sync ran fully to completion or terminated early. |
--sync | A 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
| Name | Description | Example |
|---|---|---|
path | The working set the agent works in. The directory is created if missing. | /path/to/working-set |
Options
| Name | Description | Example |
|---|---|---|
--no-preflight | Skip the readiness checks that run before the agent starts. | |
--organization, --org | The 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 |
--prompt | The 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
| Name | Description | Example |
|---|---|---|
path | The working set the agent works in. The directory is created if missing. | /path/to/working-set |
Options
| Name | Description | Example |
|---|---|---|
--no-preflight | Skip the readiness checks that run before the agent starts. | |
--organization, --org | The 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
| Name | Description |
|---|---|
--auto-update | Set version to RELEASE (track the latest stable release from the Code Genome Project). |
--auto-update-snapshot | Set version to LATEST (track the latest snapshot from the Code Genome Project). |
--distribution-password | Password for authenticated distribution downloads (stored in plaintext in moderne/wrapper/moderne-wrapper.properties, or ~/.moderne/cli/dist/moderne-wrapper.properties with --global). |
--distribution-token | Bearer token for authenticated distribution downloads (stored in plaintext in moderne/wrapper/moderne-wrapper.properties, or ~/.moderne/cli/dist/moderne-wrapper.properties with --global). |
--distribution-url | Where 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-ttl | How 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-ttl | How 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-username | Username for authenticated distribution downloads (stored in moderne/wrapper/moderne-wrapper.properties, or ~/.moderne/cli/dist/moderne-wrapper.properties with --global). |
--global | Configure the global CLI installation instead of creating a project-local wrapper. |
--jdk-url | URL 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). |
--version | CLI version to pin in the wrapper properties. Defaults to the currently-running CLI version. |