Design philosophy

  1. Multi-product, not Eliya-specific. The pattern asymm <product> <command> scales as Asymm Systems ships additional products (Eliya, Dial, Forensics). The CLI is the unified entry point.
  2. Wrap real functionality, never simulate it. Every shipped command in the CLI wraps a genuinely useful operation. The CLI ships only commands that work today; the reserved-namespace commands appear below as design documentation, not stubs.
  3. Roadmap is legible. Reserved-namespace commands are documented so the roadmap is legible to engineers evaluating Eliya for multi-year deployments. They are not present in today's binary.

Commands shipped today

The current bin/asymm binary supports three flag-style commands. All three are short, do one thing, and exit. No subcommand tree, no asymm eliya … dispatch.

Command Purpose
asymm (no args; alias asymm --info or -i) Print vendor metadata + JDK version banner + build info + Eliya feature summary. The default behaviour when invoked with no arguments.
asymm --version (or -v) Fork+exec the sibling java -version. Output is the standard Java version banner.
asymm --help (or -h) Print usage. Unknown flags also print usage with exit code 1.

Example output: asymm (default --info)

$ asymm
Eliya - Built by Asymm Systems (Pvt) Ltd
https://asymm.systems/product/eliya

JDK Version:
openjdk version "25.0.3" 2026-04-21
OpenJDK Runtime Environment (build 25.0.3+9-Eliya-25.0.3)
OpenJDK 64-Bit Server VM (build 25.0.3+9-Eliya-25.0.3, mixed mode, sharing)

Build Info:
  Vendor:    Asymm Systems
  Base:      OpenJDK 25 LTS
  Platform:  Linux-x86_64
  Built:     2026-06-10T08:34:17Z

Eliya Features:
  java.security:           bit-identical to upstream OpenJDK
  Production profile:      -XX:EliyaProfile=Production activates observability defaults
  Phase 4 profiles:        PCIDSS/HIPAA/SOX/FedRAMP/GDPR/ISO27001/SOC2 reserved (not active in Phase 1)

See PATCHES.md for the full Eliya footprint over upstream OpenJDK.

Example output: asymm --version

The --version command fork+execs the sibling java -version, so the output is identical to running java -version directly:

$ asymm --version
openjdk version "25.0.3" 2026-04-21
OpenJDK Runtime Environment (build 25.0.3+9-Eliya-25.0.3)
OpenJDK 64-Bit Server VM (build 25.0.3+9-Eliya-25.0.3, mixed mode, sharing)

Reserved namespace: diagnostic subcommands (planned)

A planned release (target H2 2026) adds bundled local diagnostic tools (Eclipse MAT headless, async-profiler) and wraps them under the asymm eliya subcommand tree. The commands below are design documentation for that roadmap; today's binary does not dispatch to any asymm eliya … subcommand. A new bin/asymm binary that does ships with them.

Today, the same operations are available through standard JDK tooling: jcmd for JFR/heap/GC operations, jmap for heap dumps, jstack for thread dumps, JDK Mission Control (or the jfr CLI) for JFR analysis. The planned wrappers reduce keystrokes; they don't enable anything new.

Subcommand (reserved) Wraps Purpose
asymm eliya info Native diagnostic introspection Print resolved JAVA_HOME, ELIYA_DIAGNOSTIC_PATH, three-level path resolution (ELIYA_SERVICE_NAME / ELIYA_REPLICA_NAME), container detection, GC selection, JFR status
asymm eliya doctor Native preflight checker Configuration sanity check: diagnostic paths writable, log directories exist, JFR can write to expected paths, GC log path is writable, container support enabled
asymm eliya verify sha256sum + gpg --verify Verify Eliya installation integrity against published checksums + Asymm signing key (today this is two commands; see verify your download)
asymm eliya versions [--lts] Local + remote release metadata List Eliya versions with LTS status, upstream base, support windows
asymm eliya schedule [--upcoming] [--full] Local lifecycle calendar Show Eliya release schedule with quarterly CPU targets (today this is on the lifecycle page)
asymm eliya profile <pid> [--hw-counters | --wall | --ttsp | --alloc] JFR or async-profiler (auto-selected) CPU profiling with sensible defaults; hardware counters, wall-clock, time-to-safepoint, or allocation profiling
asymm eliya analyze-heap <hprof> [--duplicates | --histogram | --oql] Eclipse MAT headless Leak Suspects HTML report, duplicate object analysis, class histogram with retained size, or custom OQL query
asymm eliya jfr [start|dump|stop|scrub] <pid> jcmd <pid> JFR.* Ad-hoc JFR recording start, dump, stop; scrub sanitises a JFR recording for sharing
asymm eliya install-mat-gui / install-jitwatch / install-jol On-demand fetcher Engineer-workstation installers for the full Eclipse MAT GUI, JITWatch, and Java Object Layout. The planned release bundles the headless variants by default; these installers are opt-in to keep default install lean.

Reserved namespace: Asymm Forensics (planned)

A planned release (target 2027) introduces Asymm Forensics, a cross-correlation diagnostic platform that ingests JFR, heap, thread, GC, and crash artefacts to produce unified incident reports. The asymm forensics subcommand tree below is design documentation for that release; not implemented in today's binary.

Subcommand (reserved) Purpose
asymm forensics analyze <bundle> Cross-artifact correlation analysis
asymm forensics ingest [--jfr | --heap | --threads | --gc-log | --crash] <file> Add an artefact to the analysis bundle (JFR recording, heap dump, jstack output, GC log, or crash log)
asymm forensics report Generate cross-correlation report
asymm forensics report --compliance [pci-dss | hipaa | sox | fedramp | gdpr | iso27001 | soc2] Compliance-aligned audit report. PCI DSS, HIPAA, and SOX are the initial three; FedRAMP, GDPR, ISO 27001, SOC 2 follow as those compliance profiles ship.

The compliance report variants ship aligned with Eliya's compliance profile namespace as those profiles ship. See flag architecture for that namespace.

Platform note

Today, the asymm binary ships at <#noparse>${JAVA_HOME}/bin/asymm on Linux x86_64 and aarch64 (today's targets). The .deb and .rpm packages also symlink it to /usr/bin/asymm for PATH convenience. Planned macOS support targets /usr/local/bin/asymm. Planned Windows support targets %PROGRAMFILES%\Asymm\eliya\bin\asymm.exe. All platforms share the same command structure as the reserved subcommand trees ship.

Versioning and compatibility

The asymm CLI follows independent SemVer; CLI version is decoupled from Eliya version (a user on Eliya 25.0.5 might have asymm 1.3 if the bundled tooling has matured).

  • asymm 1.x covers today's commands (--info, --version, --help only)
  • asymm 1.1+ adds the asymm eliya subcommand tree as the bundled tooling ships
  • asymm 2.x will accompany Asymm Forensics general availability
  • Backward-compatible commands within major versions; breaking changes require a major version bump

Release cadence. The asymm CLI releases alongside Eliya CPUs by default (quarterly), with patch versions (1.0.x → 1.0.y) for CLI-specific bug fixes between Eliya CPUs as needed. The CLI is small enough that breaking changes are rare; the SemVer commitment is conservative.

[ } Eliya Eliya Dial Dial
Privacy
[ }
[ }
// PRODUCTS Eliya Eliya Dial Dial