LM lmscript.io Ecosystem
20+ Production Domain Hosts

LMCode Ecosystem & Cloud Emulators

Because every LMCode host exposes its contract via --lmcode-schema --json and can be auto-installed via install="github:lmctl-ai/HOST@TAG", LMScript programs can compose cloud provisioning, 3D CAD, vector diagrams, HTML verification, and HTTP mocking with full compile-time type safety.

1. Multi-Cloud Hosts & Local Simulators

Host CLILocal SimulatorGitHub RepositoryCapabilities
lmaws awssim lmctl-ai/lmaws AWS S3, CloudFront (OAC, distributions, invalidations), ACM certificates, Route 53 DNS zones & records, EC2, VPC, ALB, IAM policy compiler/linter, and web_stack lifecycle.
lmgcp gcpsim lmctl-ai/lmgcp Google Cloud Storage, Compute Engine, Cloud DNS, and IAM automation with local simulator parity.
lmazure azuresim lmctl-ai/lmazure Azure Resource Groups, Blob Storage, Virtual Networks, and App Services.
lmoci ocisim lmctl-ai/lmoci Oracle Cloud Infrastructure Object Storage, VCN, and compute instances.

2. Deep Dive: lmctl-ai/lmaws Static Site & CloudFront Stack

lmaws (built on lmcode-java and compiled to a standalone native binary) provides two complementary APIs used to provision and publish lmscript.io:

  1. cloud.web_stack(run_id, domain, private_state_path): Step-by-step idempotent state machine (bucket → certificate → distribution → dns_site → https → cache → invalidate) plus status(), leftovers(), down(), and cloud.web_find(run_id, domain).
  2. cloud.s3_bucket_create_exact / s3_bucket_attach + cloud.s3_put_file: Multi-file static site publisher with SHA-256 checksum verification, explicit content_type and cache_control headers, and per-run ledger summaries (aws.s3_ledger_summary(run_id)).
lmaws_web_stack_and_s3.lms
prog = _lmcode_ cli="lmaws" install="github:lmctl-ai/lmaws@v0.1.34";
  # Use aws.demo() for offline preview, or aws.region("us-east-1") for live/awssim
  let cloud = aws.demo();

  # 1. Generate and lint least-privilege IAM policy for lmscript.io
  let pol = cloud.policy("lmaws_lmscript_io")
                 .static_site_stack("lmaws", "lmaws_test", "lmscript.io", "us-east-1");
  let lint_res = pol.lint();

  # 2. Provision S3 + ACM + CloudFront OAC + Route 53 Alias stack
  let web = cloud.web_stack("a1b2c3d4", "lmscript.io", ".lmweblab-local/state.json");
  web.step("bucket",       "{\"force_destroy\":true}");
  web.step("certificate",  "{}");
  web.step("distribution", "{}");
  web.step("dns_site",     "{}");
  web.step("https",        "{}");
  web.step("cache",        "{\"default_ttl\":300,\"max_ttl\":3600}");
  web.step("invalidate",   "{}");

  lmcode_return_put("policy_lint", json_parse(lint_res.json()));
  lmcode_return_put("web_status",  json_parse(web.status().json()));
end _lmcode_

r = run_lmcode(prog);
require(r.ok, "LMCode failed: " + r.get("message", "host execution failed"));
println(json_stringify(r.result, 2));

3. CAD, Diagrams, Video, Plotting & HTML Hosts

lmctl-ai/lmcad

lmcad (C++17)

Parametric 3D solid modeling (CSG primitives, extrusions, fillets, boolean unions/differences, STL/STEP export).

lmctl-ai/lmdraw

lmdraw

Declarative vector diagrams, architecture charts, and SVG/PNG rendering from typed LMCode scenes.

lmctl-ai/lmhtml

lmhtml

Typed HTML/DOM builder, accessibility auditor, and structural page verifier.

lmctl-ai/lmvideo

lmvideo

Timeline composition, transitions, audio tracks, and frame-accurate video rendering.

lmctl-ai/lmplot

lmplot

Scientific and benchmark chart generation (line, bar, scatter, heatmaps) from typed series.

lmctl-ai/lmblender

lmblender

Typed 3D scene, mesh, material, camera, and render automation host for Blender.

4. Browser Automation (lmwebtest), HTTP Mocking & Testing Hosts

lmctl-ai/lmwebtest

lmwebtest & playwright

Headless Chromium Web DSL (context web: Web, context report: Report) plus full Playwright driver (cli="lmwebtest playwright", context pw: Playwright) for UI interactions, screenshots, and API checks.

lmctl-ai/lmok

lmok

Assertion and conformance verification host with full LMCODE_RETURN sink support.

lmctl-ai/lmmock

lmmock & lmcurl

Programmable HTTP/REST mock server using @annotation route handlers, paired with lmcurl for typed API assertions.

Testing lmscript.io End-to-End with lmwebtest + lmhtml

We test every page, interactive tab switcher, theme toggle, live search filter, and DOM structure of lmscript.io using scripts/test-lmwebtest.lms, which combines three LMCode surfaces in a single script:

scripts/test-lmwebtest.lms (excerpt)
# 1. High-level Web DSL (cli="lmwebtest"): navigate pages, assert selectors, save DOM & PNGs
web_dsl = _lmcode_ cli="lmwebtest" install="github:lmctl-ai/lmwebtest@v0.1.23";
  web.set_viewport(1280, 900);
  let page = web.navigate("http://127.0.0.1:8765/");
  if (page.status() != 200 || !page.has("h1")) {
    report.add("bad_home", "/", page.status(), "Homepage check failed");
  }
  page.save_html("test-results/lmwebtest/rendered-home.html");
  page.screenshot("test-results/lmwebtest/home.png");
  report.fail_if_any();
  web.close();
end _lmcode_
require(run_lmcode(web_dsl).ok, "lmwebtest Web DSL failed");

# 2. Interactive Playwright DSL (cli="lmwebtest playwright"): clicks, filters, console errors
pw_dsl = _lmcode_ cli="lmwebtest playwright" install="github:lmctl-ai/lmwebtest@v0.1.23";
  let b = pw.launch("chromium");
  let p = b.new_page();
  p.goto("http://127.0.0.1:8765/lmscript/examples.html");
  p.fill("[data-filter-input]", "resumepoint");
  $return.badge       = p.text_content("#ex-count");
  $return.page_errors = p.page_errors();
  b.close();
end _lmcode_
r2 = run_lmcode(pw_dsl, {command: ["lmwebtest", "playwright", "--lmcode", "$DSLFILE"]});
require(r2.ok, "lmwebtest Playwright DSL failed");
assert(r2.result.badge == "1 of 58 shown" && r2.result.page_errors == "[]");