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. Phase 1 ships only commands that work today; Phase 2 and Phase 3 commands appear below as design documentation, not stubs.
  3. Phase-aligned scope. Reserved-namespace commands are documented so the roadmap is legible to engineers evaluating Eliya for multi-year deployments. They are not present in the Phase 1 binary.

Phase 1 commands (shipped today)

The current Phase 1 bin/asymm binary supports three flag-style commands. All three are short, do one thing, and exit. No subcommand tree, no Phase 1 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.

Phase 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.

Phase 1 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)

Phase 2 roadmap (reserved namespace; not yet implemented)

The Phase 2 release (target next major release, est. 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; the Phase 1 binary does not dispatch to any asymm eliya … subcommand. Phase 2 ships a new bin/asymm binary that does.

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 Phase 2 wrappers reduce keystrokes; they don't enable anything new.

Phase 2 (reserved namespace) 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. Phase 2 bundles the headless variants by default; these installers are opt-in to keep default install lean.

Phase 3 roadmap (reserved namespace; Asymm Forensics)

The Phase 3 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 Phase 1 or Phase 2 binaries.

Phase 3 (reserved namespace) 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 Phase 4 profiles ship.

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

Platform note

The Phase 1 asymm binary ships at <#noparse>${JAVA_HOME}/bin/asymm on Linux x86_64 and aarch64 (Phase 1 targets). The .deb and .rpm packages also symlink it to /usr/bin/asymm for PATH convenience. Phase 2 macOS support targets /usr/local/bin/asymm. Phase 3 Windows support targets %PROGRAMFILES%\Asymm\eliya\bin\asymm.exe. All platforms share the same command structure documented above as Phase 2 and Phase 3 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 Phase 2 tooling has matured).

  • asymm 1.x covers Phase 1 (current; --info, --version, --help only)
  • asymm 1.1+ adds Phase 2 asymm eliya subcommand tree as Phase 2 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