Skip to main content

Tasks Reference

Oidis Builder has 120+ built-in tasks, grouped into categories. Tasks are invoked by name using oidis task <name> or the task:option syntax.

For the task system architecture, see Overview.


Composition Tasks​

Core orchestration tasks that drive build workflows.

Task nameClassDescription
installInstallPrepare project dependencies and environment
compileCompileOrchestrate multi-language compilation
copyCopyCopy files to target
copy-local-scriptsCopyLocalScriptsCopy build scripts to target
copy-scriptsCopyScriptsCopy resource scripts
copy-staticfilesCopyStaticFilesCopy static resource files
code-signCodeSignSign binaries (Windows Authenticode, macOS notarization)
dependencies-sortDependenciesSortTopologically sort dependency list
dependencies-downloadDependenciesDownloadDownload/clone project dependencies
install-local-scriptDependenciesInstallRun dependency install scripts
upxUpxCompress executables with UPX
compressTargetCompressCreate ZIP archive of build target

compile — Compilation Orchestrator​

Options: dev, eap, prod

Detects which languages are present and runs the appropriate compilation chain. Skips languages not found in the project. See Build Process for the detailed pipeline.

oidis task compile:dev
oidis task compile:prod

install — Dependency Setup​

Options: dev, eap (default: prod)

oidis install            # full dependency install + cleanup
oidis task install:dev # dev-mode install (faster, partial cleanup)

Build Processor Tasks​

Internal tasks that orchestrate the full build-machine pipeline.

Task nameClassDescription
buildBuildExecutorFull build orchestrator — resolves platform chain
build-machineBuildStateMachinePer-product build state machine
build-settingsBuildSettingsConfigure build type (dev/prod/eap)
product-settingsProductSettingsApply per-release/platform overrides
module-executorModuleExecutorExecute a module task

build / build-machine — Build Pipeline​

Options: dev, eap, prod, rebuild, rebuild-dev, rebuild-eap

The main build entry point. Resolves the full task chain per release and platform, then executes it.

oidis build prod
oidis build dev --with-test
oidis rebuild-eap

Cleanup Tasks​

Task nameClassDescription
project-cleanupProjectCleanupRemove generated files
git-cleanupGitCleanupRevert git-tracked files to clean state
config-cleanupConfigCleanupRemove generated config artifacts
typescript-cleanupTypeScriptCleanupRemove compiled TypeScript output
sass-cleanupSassCleanupRemove compiled SASS output
scr-cleanupSCRCleanupValidate and deduplicate SW-Content-Register entries
structure-cleanupStructureCleanupRemove project structure artifacts
dev-blocks-cleanupDevBlocksCleanupRemove dev-only code from compiled output
copyrights-cleanupCopyrightsCleanupEnforce copyright headers (pre-commit hook)

project-cleanup — Remove Generated Files​

Options: all, build, cache, source, test, init, prod

oidis clean               # equivalent to project-cleanup:all
oidis task project-cleanup:build # delete build/ only
oidis task project-cleanup:cache # delete build_cache/ only
oidis task project-cleanup:source # delete compiled JS in source/
oidis task project-cleanup:test # delete test artifacts

dev-blocks-cleanup — Strip Dev Code​

Removes code between // @dev-block-start and // @dev-block-end markers from compiled output. Run automatically during prod and eap builds.

See Dev Markers for how to use dev blocks in your code.

Validates and fixes copyright year ranges in all source files. Used as a pre-commit git hook. Copyright years must match the actual create/modify dates of each file.

oidis task copyrights-cleanup

TypeScript Tasks​

Task nameClassDescription
typescriptTypeScriptCompileCompile TypeScript source
typescript-interfaces—Generate interface registration code
typescript-mappingsTypeScriptMappingsGenerate namespace mapping files
typescript-reference—Generate TypeScript reference files
typescript-lint—Lint TypeScript with ESLint
cache-managerCacheManagerTypeScript incremental build cache management

typescript — TypeScript Compilation​

Options: source, unit, selenium

oidis task typescript:source     # compile main source
oidis task typescript:unit # compile unit tests
oidis task typescript:selenium # compile Selenium tests

Supports both UMD (outModule bundling) and ES module mode (determined by toolchainSettings.version: "module").

cache-manager — Incremental Build Cache​

Options: generate-ts, generate-prod-ts, generate-sass, prepare-ts, finalize-ts, finalize-prod-ts, finalize-sass, finalize-<toolchain>

Manages SHA1-based file cache for incremental compilation. Automatically invalidated on configuration change.


SASS Tasks​

Task nameClassDescription
sass-compile—Compile SASS/SCSS to CSS
sass-referenceSassReferenceGenerate SASS reference/import map
sass-compressSassCompressMinify compiled CSS
sass-lint—Lint SASS with Stylelint
cssmin—CSS minification (prod/eap builds)

sass-compile — SASS Compilation​

Options: source, dependencies

oidis task sass-compile:source         # compile project SASS
oidis task sass-compile:dependencies # compile dependencies' SASS

Testing Tasks​

Task nameClassDescription
testTestAllTesting orchestrator
run-unit-testRunUnitTestRun TypeScript unit tests
run-coverage-testRunCoverageTestRun code coverage analysis
build-checkBuildCheckValidate build output
test-lint-staged-onlyTestLintStaggedOnlyLint only staged git files
selenium-server-startSeleniumServerStartStart Selenium WebDriver server
selenium-server-stopSeleniumServerStopStop Selenium WebDriver server
virtualbox-serverVirtualBoxServerManage VirtualBox VM for testing

test — Testing Orchestrator​

Options: all, lint, code, tslint, sasslint, jslint, xcpplint, javalint, pythonlint, typescriptunit, xcppunit, pythonunit, xcppcoverage, coverage, selenium

oidis test all              # run everything
oidis test lint # all linters
oidis test unit # TypeScript unit tests
oidis test coverage # coverage analysis
oidis test selenium # Selenium integration tests

# CLI shorthand
oidis task test:tslint # TypeScript lint only
oidis task test:sasslint # SASS lint only
oidis task test:xcppunit # C++ unit tests only

run-unit-test — Unit Test Runner​

oidis test unit                           # run all unit tests
oidis test unit path/to/MyTest.spec.ts # run single test file

Use --ignore-tests=file1,file2 to exclude specific test files.


JavaScript Tasks​

Task nameClassDescription
jslintJSLintLint JavaScript with ESLint
uglifyJSCompressMinify JavaScript with UglifyJS
gyp-compileGypCompileBuild native Node.js modules with node-gyp

uglify — JavaScript Minification​

Options: prod, loader

oidis task uglify:prod     # minify production output
oidis task uglify:loader # minify loader script

Deploy Tasks​

Task nameClassDescription
deployDeployDeploy packaged build to a server
config-deployConfigDeployDeploy configuration files
target-deployTargetDeployDeploy compiled target
update-deployUpdateDeployManage update deployments
release-platformReleasePlatformRegister a release platform after build

deploy — Deployment​

Options: dev, eap, prod

CLI flags: --action, --id, --upload-to, --filter

See Deploy for detailed deployment documentation.

oidis deploy:dev
oidis deploy:prod --action=list

Run Tasks​

Task nameClassDescription
runRunBuild and run the development release
forward-taskTaskForwardForward task to Hub/Service
remote-attachRemoteAttachAttach to remote debugger

run — Development Run​

oidis run                          # run default config
oidis run --run-config=demo # run named config
oidis run:demo # shortcut

Supports local execution, Hub/Service forwarding, and cloud sync.


Documentation Tasks​

Task nameClassDescription
docsDocsDocumentation orchestrator
typedoc-generateTypedocGenerateGenerate TypeDoc API docs (TypeScript)
doxygen-generateDoxygenGenerateGenerate Doxygen docs (C++)
markdown-generateMarkdownGenerateGenerate Markdown docs
scr-generateSCRGenerateGenerate SCR documentation
oidis docs       # generate all documentation

Output: build/target/docs/

scr-generate — Software Content Register​

scr-generate generates build/target/SW-Content-Register.txt — a plain-text inventory of all software components included in a release, together with their versions, authors, licenses, formats, and file-system locations. The file serves as a license compliance record for audits and deliveries.

File format​

Release Name: {package-name} v{version}

{component-name} v{version}
Description: {description}
Author: {author}
License: {license-identifier}. See {license-file}
Format: {format}
Location: {path1},
{path2},
{path3}

{next-component}...

Rules:

  • Header line Release Name: identifies the owning project and its version.
  • Each component block is separated by a blank line.
  • A component marked [OPTIONAL] gets that tag on its own line before the name line.
  • Location: continuation lines are indented with 10 spaces; each line except the last ends with a comma.
  • Line endings follow the target OS (\r\n on Windows, \n on POSIX).

Common Format values: source code, executable binary, static library, native module, web font.

Configuration — licensesRegister.jsonp​

Component metadata is configured in licensesRegister.jsonp, referenced from package.conf.jsonp:

// bin/project/configs/licensesRegister.jsonp
{
"my-package": {
format: "source code",
location: [
"resource/esmodules-[build-time]/Io/My/Package",
"resource/css/[package-name]-[version].min.css"
]
},
"some-npm-dep": {
optional: true,
location: ["[application-name][.exe]/resource/libs/SomeDep"]
}
}

Location paths may use placeholder tokens: [application-name], [package-name], [version], [build-time], [target/], [.exe], [.dll], [.lib], [.cmd].

Per-component defaults when the dependency is resolved via dependencies/**/package.conf.json:

  • description — from the dependency's package.conf.json
  • author — "Oidis" (for Oidis packages) or "N/A"
  • license — "BSD-3-Clause. See LICENSE.txt"
  • format — "source code"

scr-cleanup​

After scr-generate, scr-cleanup runs as part of the docs pipeline. It parses the generated file, removes duplicate entries, merges records from nested dependency SCR files, and re-serialises the result in canonical format.

Manual SCR for non-Builder projects​

Projects that do not use Oidis Builder (e.g. standalone tooling packages) should create and commit SW-Content-Register.txt manually in the project root. Place it in the root rather than build/target/ so it is always present in the repository without requiring a build step.

Steps:

  1. Copy the format above.
  2. Fill in the main project block (name, version, description, BSD-3-Clause. See LICENSE.txt).
  3. Add one block per runtime dependency (npm packages, bundled runtimes, native modules).
  4. Mark truly optional components (e.g. OS-specific native modules) with [OPTIONAL].
  5. Commit the file — it is static and must be updated manually when dependencies change.

Java Tasks​

Task nameClassDescription
maven-buildMavenBuildBuild Java project with Maven
maven-envMavenEnvSet up Maven environment
java-lintJavaLintLint Java with Checkstyle
java-packagingJavaPackagingPackage compiled Java (JAR)
init-targetInitTargetInitialize Java build target
config-compileConfigCompileCompile Java configurations
manifest-classpathManifestClasspathManage JAR manifest classpath
plugin-configsPluginConfigsConfigure IDE plugins
plugin-clean-compilePluginCleanCompileClean-compile IDE plugins

Python Tasks​

Task nameClassDescription
python-compilePythonCompileCompile Python to bytecode
python-lintPythonLintLint Python with Pylint
python-testPythonTestRun Python unit tests
python-installPythonInstallSet up Python virtual environment
python-packagingPythonPackagingPackage Python (wheel/egg)

C++ / XCpp Tasks​

Task nameClassDescription
xcpp-compileXCppCompileCompile C++ source
xcpp-testXCppTestRun C++ unit tests
xcpp-cache-registerXCppCacheRegisterManage C++ build cache
xcpp-lint—Lint C++ with CppCheck
xcpp-interfaces—Generate XCpp interface files
xcpp-reference—Generate XCpp reference files

xcpp-compile — C++ Compilation​

Options: source, unit, dependencies

oidis task xcpp-compile:source        # compile C++ source
oidis task xcpp-compile:unit # compile C++ unit tests
oidis task xcpp-compile:dependencies # compile dependency C++ code

xcpp-test — C++ Testing​

Options: unit, coverage


Server Tasks​

Task nameClassDescription
builder-serviceBuilderServiceManage Builder service (start/stop)
builder-agentBuilderAgentConnect Builder to Oidis Hub as agent
connector-serviceConnectorServiceManage connector service
dashboardDashboardStart Builder dashboard server
mock-serverMockServerStart mock HTTP server for testing
selenium-server-startSeleniumServerStartStart Selenium WebDriver
selenium-server-stopSeleniumServerStopStop Selenium WebDriver

builder-service — Builder Service​

Options: start, stop

oidis service              # start service (oidis service = oidis builder-service:start)
oidis service stop # stop service

The service runs in the background and accepts forwarded tasks from oidis --service.

mock-server — Mock HTTP Server​

Starts a configurable mock HTTP server for development and testing. Configured via target.mockServer in package.conf.jsonp:

"target": {
"mockServer": {
"port": 8080,
"config": "resource/configs/mock-server.json"
}
}

Utility Tasks​

Task nameClassDescription
string-replaceVariableReplaceSubstitute variables in files
version-updateVersionUpdateUpdate version in config files
ntfy-notifyNtfyNotifySend push notification via ntfy
selfupdateSelfupdateSelf-update the Builder installation
cloud-sync-managerCloudSyncManagerSync with cloud storage
install-idea-toolsInstallIdeaToolsInstall IntelliJ IDEA tools
key-ringKeyRingManage cryptographic keys
crypto-environmentCryptoEnvironmentSet up encryption/decryption environment
wui-app-killWuiAppKillTerminate running WUI application process
snippetSnippetEmpty stub for custom development work

string-replace — Variable Substitution​

Options: var-replace, xcpp, variables-plugin, dependencies

Substitutes @var placeholder expressions in source files with values from build configuration.

version-update — Version Management​

oidis task version-update --new-version=2026.1.0

Updates version field in package.conf.jsonp and any other configured version files.

ntfy-notify — Push Notification via ntfy​

Sends a push notification to a mobile device using the ntfy service. Useful for alerting a developer when a long build finishes, requesting human approval before a destructive action, or notifying from an AI agent (e.g. Claude Code) that manual input is needed.

Configuration: ntfyConfig in package.conf.jsonp (or private.conf.jsonp for personal topics). Defaults are provided by the builder's commons.jsonp. See ntfyConfig in the Configuration Reference.

# Send a notification with a custom message
oidis ntfy-notify --description="Production deploy ready — please approve."

# Inline option form (short message as task option)
oidis ntfy-notify:build-done

The task never fails the build — if the HTTP request fails (network issue, wrong topic, etc.), a warning is logged and execution continues normally.

Claude Code Integration

This task is designed to work with Claude Code running in an agentic / autonomous mode. When Claude needs human approval before continuing (e.g. deploying to production, running a destructive migration, or confirming a non-trivial change), it can call ntfy-notify via the Bash tool to push a notification to your phone so you can review and respond without watching the terminal:

oidis ntfy-notify --description="I need you to approve the production deploy before I continue."

Install the ntfy app (Android / iOS), subscribe to your topic, and you will receive real-time alerts from any build or AI agent session running on your machine.

selfupdate — Builder Self-Update​

oidis update               # shorthand
oidis task selfupdate # direct task
oidis task selfupdate:check # check for update, apply if available

Runtime Tasks​

Task nameClassDescription
selfinstallSelfextractorCreate self-extracting installer
wui-modules-releaseWuiModulesReleasePackage WUI runtime modules into release
wui-modules-downloadWuiModulesDownloadDownload WUI runtime modules
phonegap-buildPhonegapBuildBuild mobile app with PhoneGap

wui-modules-download​

Downloads the WUI runtime modules (Chromium Embedded, Connector, Launcher) from Oidis Hub into <appdata>/wui_modules/. Required for app type builds with chromium-re toolchain.

oidis task wui-modules-download       # download if not present
oidis task wui-modules-download:force # force re-download

Client Tasks​

Task nameClassDescription
forward-taskTaskForwardForward task to Hub/Service client
client-reportClientReportReport client build status
builder-clientBuilderClientManage client connection to service

General Tasks​

Task nameClassDescription
solution-loaderSolutionLoaderLoad target project configuration (always first task)
system-infoSystemInfoDisplay system and builder information

solution-loader — Target Config Loader​

Always the first task executed. Loads package.conf.jsonp from the target project, resolves imports, applies the active solution, and merges private.conf.jsonp. If dependencies/ is empty, triggers dependency download automatically.

This task runs automatically — you do not need to invoke it manually.


TypeScript AST Inspection Tasks (Internal)​

Used internally by TypeScriptCompile to inspect the compiled program (the ForceCompile.ts generated block is built from a plain text match, not from these classes):

Task nameClassDescription
—TsEntityAnalyze TypeScript entities (classes, interfaces)
—TsImportAnalyze TypeScript import statements
—TsNodeBase AST node analysis
—TsParamAnalyze method parameters
—TsMethodAnalyze method declarations

See also: Build Process | CLI Reference | Testing