Round 521-530: ML frameworks, MLOps, databases, message queues, graph/timeseries/search DBs (200 commands)

ober

458e9d41c92023dbba9a8ba0db4ec4421cc04e04

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 63c20ce..b981b55 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,256 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 530 — Consul KV ext, FoundationDB, CockroachDB, YugabyteDB
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `consul-kv-delete` | :orange_circle: Scaffolded | Consul KV: delete key |
+| `consul-kv-export` | :orange_circle: Scaffolded | Consul KV: export |
+| `consul-kv-import` | :orange_circle: Scaffolded | Consul KV: import |
+| `consul-kv-tree` | :orange_circle: Scaffolded | Consul KV: tree view |
+| `consul-kv-lock` | :orange_circle: Scaffolded | Consul KV: lock |
+| `foundationdb-status` | :orange_circle: Scaffolded | FoundationDB: status |
+| `foundationdb-backup` | :orange_circle: Scaffolded | FoundationDB: backup |
+| `foundationdb-restore` | :orange_circle: Scaffolded | FoundationDB: restore |
+| `foundationdb-configure` | :orange_circle: Scaffolded | FoundationDB: configure |
+| `foundationdb-exclude` | :orange_circle: Scaffolded | FoundationDB: exclude server |
+| `cockroachdb-sql` | :orange_circle: Scaffolded | CockroachDB: SQL shell |
+| `cockroachdb-init` | :orange_circle: Scaffolded | CockroachDB: initialize |
+| `cockroachdb-start` | :orange_circle: Scaffolded | CockroachDB: start node |
+| `cockroachdb-cert` | :orange_circle: Scaffolded | CockroachDB: certificates |
+| `cockroachdb-dump` | :orange_circle: Scaffolded | CockroachDB: dump data |
+| `yugabytedb-sql` | :orange_circle: Scaffolded | YugabyteDB: SQL shell |
+| `yugabytedb-admin` | :orange_circle: Scaffolded | YugabyteDB: admin |
+| `yugabytedb-backup` | :orange_circle: Scaffolded | YugabyteDB: backup |
+| `yugabytedb-restore` | :orange_circle: Scaffolded | YugabyteDB: restore |
+| `yugabytedb-master` | :orange_circle: Scaffolded | YugabyteDB: master |
+
+### Round 529 — Meilisearch, Typesense, Zincsearch, etcd ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `meilisearch-index` | :orange_circle: Scaffolded | Meilisearch: index management |
+| `meilisearch-search` | :orange_circle: Scaffolded | Meilisearch: search |
+| `meilisearch-task` | :orange_circle: Scaffolded | Meilisearch: tasks |
+| `meilisearch-key` | :orange_circle: Scaffolded | Meilisearch: API keys |
+| `meilisearch-dump` | :orange_circle: Scaffolded | Meilisearch: dump |
+| `typesense-collection` | :orange_circle: Scaffolded | Typesense: collection |
+| `typesense-document` | :orange_circle: Scaffolded | Typesense: document |
+| `typesense-search` | :orange_circle: Scaffolded | Typesense: search |
+| `typesense-key` | :orange_circle: Scaffolded | Typesense: API keys |
+| `typesense-alias` | :orange_circle: Scaffolded | Typesense: alias |
+| `zincsearch-index` | :orange_circle: Scaffolded | Zincsearch: index |
+| `zincsearch-search` | :orange_circle: Scaffolded | Zincsearch: search |
+| `zincsearch-template` | :orange_circle: Scaffolded | Zincsearch: template |
+| `zincsearch-user` | :orange_circle: Scaffolded | Zincsearch: user |
+| `zincsearch-bulk` | :orange_circle: Scaffolded | Zincsearch: bulk ingest |
+| `etcd-watch` | :orange_circle: Scaffolded | etcd: watch keys |
+| `etcd-lease` | :orange_circle: Scaffolded | etcd: lease management |
+| `etcd-member` | :orange_circle: Scaffolded | etcd: member management |
+| `etcd-snapshot` | :orange_circle: Scaffolded | etcd: snapshot |
+| `etcd-defrag` | :orange_circle: Scaffolded | etcd: defragment |
+
+### Round 528 — VictoriaMetrics ext, ClickHouse ext, Elasticsearch ext, OpenSearch
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `victoriametrics-import` | :orange_circle: Scaffolded | VictoriaMetrics: import data |
+| `victoriametrics-export` | :orange_circle: Scaffolded | VictoriaMetrics: export data |
+| `victoriametrics-snapshot` | :orange_circle: Scaffolded | VictoriaMetrics: snapshot |
+| `victoriametrics-rules` | :orange_circle: Scaffolded | VictoriaMetrics: recording rules |
+| `victoriametrics-targets` | :orange_circle: Scaffolded | VictoriaMetrics: targets |
+| `clickhouse-import` | :orange_circle: Scaffolded | ClickHouse: import data |
+| `clickhouse-export` | :orange_circle: Scaffolded | ClickHouse: export data |
+| `clickhouse-optimize` | :orange_circle: Scaffolded | ClickHouse: optimize table |
+| `clickhouse-mutation` | :orange_circle: Scaffolded | ClickHouse: mutation |
+| `clickhouse-system` | :orange_circle: Scaffolded | ClickHouse: system queries |
+| `elasticsearch-bulk` | :orange_circle: Scaffolded | Elasticsearch: bulk API |
+| `elasticsearch-snapshot` | :orange_circle: Scaffolded | Elasticsearch: snapshot |
+| `elasticsearch-alias` | :orange_circle: Scaffolded | Elasticsearch: alias |
+| `elasticsearch-template` | :orange_circle: Scaffolded | Elasticsearch: template |
+| `elasticsearch-reindex` | :orange_circle: Scaffolded | Elasticsearch: reindex |
+| `opensearch-query` | :orange_circle: Scaffolded | OpenSearch: query |
+| `opensearch-index` | :orange_circle: Scaffolded | OpenSearch: index |
+| `opensearch-snapshot` | :orange_circle: Scaffolded | OpenSearch: snapshot |
+| `opensearch-alias` | :orange_circle: Scaffolded | OpenSearch: alias |
+| `opensearch-template` | :orange_circle: Scaffolded | OpenSearch: template |
+
+### Round 527 — TigerGraph, InfluxDB ext, TimescaleDB, QuestDB
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `tigergraph-query` | :orange_circle: Scaffolded | TigerGraph: GSQL query |
+| `tigergraph-load` | :orange_circle: Scaffolded | TigerGraph: load data |
+| `tigergraph-schema` | :orange_circle: Scaffolded | TigerGraph: schema |
+| `tigergraph-backup` | :orange_circle: Scaffolded | TigerGraph: backup |
+| `tigergraph-rest` | :orange_circle: Scaffolded | TigerGraph: REST API |
+| `influxdb-bucket` | :orange_circle: Scaffolded | InfluxDB: bucket management |
+| `influxdb-task` | :orange_circle: Scaffolded | InfluxDB: tasks |
+| `influxdb-backup` | :orange_circle: Scaffolded | InfluxDB: backup |
+| `influxdb-org` | :orange_circle: Scaffolded | InfluxDB: organization |
+| `influxdb-token` | :orange_circle: Scaffolded | InfluxDB: token management |
+| `timescaledb-hypertable` | :orange_circle: Scaffolded | TimescaleDB: hypertable |
+| `timescaledb-chunk` | :orange_circle: Scaffolded | TimescaleDB: chunk management |
+| `timescaledb-policy` | :orange_circle: Scaffolded | TimescaleDB: retention policy |
+| `timescaledb-compress` | :orange_circle: Scaffolded | TimescaleDB: compression |
+| `timescaledb-cagg` | :orange_circle: Scaffolded | TimescaleDB: continuous aggregate |
+| `questdb-query` | :orange_circle: Scaffolded | QuestDB: SQL query |
+| `questdb-import` | :orange_circle: Scaffolded | QuestDB: import data |
+| `questdb-export` | :orange_circle: Scaffolded | QuestDB: export data |
+| `questdb-status` | :orange_circle: Scaffolded | QuestDB: server status |
+| `questdb-config` | :orange_circle: Scaffolded | QuestDB: configuration |
+
+### Round 526 — Neo4j ext, Dgraph, ArangoDB, JanusGraph
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `neo4j-import` | :orange_circle: Scaffolded | Neo4j: import data |
+| `neo4j-backup` | :orange_circle: Scaffolded | Neo4j: backup database |
+| `neo4j-admin` | :orange_circle: Scaffolded | Neo4j: admin console |
+| `neo4j-browser` | :orange_circle: Scaffolded | Neo4j: browser |
+| `neo4j-cypher` | :orange_circle: Scaffolded | Neo4j: Cypher shell |
+| `dgraph-query` | :orange_circle: Scaffolded | Dgraph: query |
+| `dgraph-mutation` | :orange_circle: Scaffolded | Dgraph: mutation |
+| `dgraph-schema` | :orange_circle: Scaffolded | Dgraph: schema |
+| `dgraph-backup` | :orange_circle: Scaffolded | Dgraph: backup |
+| `dgraph-export` | :orange_circle: Scaffolded | Dgraph: export |
+| `arangodb-query` | :orange_circle: Scaffolded | ArangoDB: AQL query |
+| `arangodb-import` | :orange_circle: Scaffolded | ArangoDB: import data |
+| `arangodb-backup` | :orange_circle: Scaffolded | ArangoDB: backup |
+| `arangodb-restore` | :orange_circle: Scaffolded | ArangoDB: restore |
+| `arangodb-dump` | :orange_circle: Scaffolded | ArangoDB: dump |
+| `janusgraph-query` | :orange_circle: Scaffolded | JanusGraph: Gremlin query |
+| `janusgraph-schema` | :orange_circle: Scaffolded | JanusGraph: schema |
+| `janusgraph-index` | :orange_circle: Scaffolded | JanusGraph: index |
+| `janusgraph-config` | :orange_circle: Scaffolded | JanusGraph: config |
+| `janusgraph-server` | :orange_circle: Scaffolded | JanusGraph: server |
+
+### Round 525 — Kafka ext, NATS ext, Pulsar, ZeroMQ
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `kafka-topic` | :orange_circle: Scaffolded | Kafka: topic management |
+| `kafka-consumer` | :orange_circle: Scaffolded | Kafka: consumer |
+| `kafka-producer` | :orange_circle: Scaffolded | Kafka: producer |
+| `kafka-group` | :orange_circle: Scaffolded | Kafka: consumer group |
+| `kafka-offset` | :orange_circle: Scaffolded | Kafka: offset management |
+| `nats-account` | :orange_circle: Scaffolded | NATS: account management |
+| `nats-context` | :orange_circle: Scaffolded | NATS: context |
+| `nats-leafnode` | :orange_circle: Scaffolded | NATS: leaf node |
+| `nats-kv` | :orange_circle: Scaffolded | NATS: key-value store |
+| `nats-object` | :orange_circle: Scaffolded | NATS: object store |
+| `pulsar-topic` | :orange_circle: Scaffolded | Pulsar: topic management |
+| `pulsar-subscription` | :orange_circle: Scaffolded | Pulsar: subscription |
+| `pulsar-namespace` | :orange_circle: Scaffolded | Pulsar: namespace |
+| `pulsar-tenant` | :orange_circle: Scaffolded | Pulsar: tenant |
+| `pulsar-function` | :orange_circle: Scaffolded | Pulsar: function |
+| `zeromq-pub` | :orange_circle: Scaffolded | ZeroMQ: publisher |
+| `zeromq-sub` | :orange_circle: Scaffolded | ZeroMQ: subscriber |
+| `zeromq-push` | :orange_circle: Scaffolded | ZeroMQ: push socket |
+| `zeromq-pull` | :orange_circle: Scaffolded | ZeroMQ: pull socket |
+| `zeromq-router` | :orange_circle: Scaffolded | ZeroMQ: router socket |
+
+### Round 524 — MongoDB ext, Redis CLI, Memcached ext, RabbitMQ ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `mongodb-query` | :orange_circle: Scaffolded | MongoDB: query |
+| `mongodb-index` | :orange_circle: Scaffolded | MongoDB: index management |
+| `mongodb-backup` | :orange_circle: Scaffolded | MongoDB: backup |
+| `mongodb-restore` | :orange_circle: Scaffolded | MongoDB: restore |
+| `mongodb-explain` | :orange_circle: Scaffolded | MongoDB: explain query |
+| `redis-cli-get` | :orange_circle: Scaffolded | Redis CLI: get key |
+| `redis-cli-set` | :orange_circle: Scaffolded | Redis CLI: set key |
+| `redis-cli-info` | :orange_circle: Scaffolded | Redis CLI: server info |
+| `redis-cli-monitor` | :orange_circle: Scaffolded | Redis CLI: monitor |
+| `redis-cli-cluster` | :orange_circle: Scaffolded | Redis CLI: cluster |
+| `memcached-config` | :orange_circle: Scaffolded | Memcached: configuration |
+| `memcached-slab` | :orange_circle: Scaffolded | Memcached: slab stats |
+| `memcached-item` | :orange_circle: Scaffolded | Memcached: item stats |
+| `memcached-conn` | :orange_circle: Scaffolded | Memcached: connections |
+| `memcached-thread` | :orange_circle: Scaffolded | Memcached: thread stats |
+| `rabbitmq-queue` | :orange_circle: Scaffolded | RabbitMQ: queue management |
+| `rabbitmq-exchange` | :orange_circle: Scaffolded | RabbitMQ: exchange |
+| `rabbitmq-binding` | :orange_circle: Scaffolded | RabbitMQ: binding |
+| `rabbitmq-user` | :orange_circle: Scaffolded | RabbitMQ: user management |
+| `rabbitmq-vhost` | :orange_circle: Scaffolded | RabbitMQ: vhost |
+
+### Round 523 — Kubeflow, BentoML, PostgreSQL ext, MySQL ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `kubeflow-pipeline` | :orange_circle: Scaffolded | Kubeflow: pipeline |
+| `kubeflow-experiment` | :orange_circle: Scaffolded | Kubeflow: experiment |
+| `kubeflow-notebook` | :orange_circle: Scaffolded | Kubeflow: notebook |
+| `kubeflow-serving` | :orange_circle: Scaffolded | Kubeflow: serving |
+| `kubeflow-katib` | :orange_circle: Scaffolded | Kubeflow: Katib tuning |
+| `bentoml-build` | :orange_circle: Scaffolded | BentoML: build bento |
+| `bentoml-serve` | :orange_circle: Scaffolded | BentoML: serve model |
+| `bentoml-deploy` | :orange_circle: Scaffolded | BentoML: deploy |
+| `bentoml-model` | :orange_circle: Scaffolded | BentoML: model management |
+| `bentoml-containerize` | :orange_circle: Scaffolded | BentoML: containerize |
+| `postgres-query` | :orange_circle: Scaffolded | PostgreSQL: run query |
+| `postgres-backup` | :orange_circle: Scaffolded | PostgreSQL: backup |
+| `postgres-restore` | :orange_circle: Scaffolded | PostgreSQL: restore |
+| `postgres-vacuum` | :orange_circle: Scaffolded | PostgreSQL: vacuum |
+| `postgres-reindex` | :orange_circle: Scaffolded | PostgreSQL: reindex |
+| `mysql-query` | :orange_circle: Scaffolded | MySQL: run query |
+| `mysql-backup` | :orange_circle: Scaffolded | MySQL: backup |
+| `mysql-restore` | :orange_circle: Scaffolded | MySQL: restore |
+| `mysql-optimize` | :orange_circle: Scaffolded | MySQL: optimize tables |
+| `mysql-repair` | :orange_circle: Scaffolded | MySQL: repair tables |
+
+### Round 522 — ONNX, MLflow ext, W&B ext, DVC ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `onnx-convert` | :orange_circle: Scaffolded | ONNX: convert model |
+| `onnx-validate` | :orange_circle: Scaffolded | ONNX: validate model |
+| `onnx-optimize` | :orange_circle: Scaffolded | ONNX: optimize model |
+| `onnx-infer` | :orange_circle: Scaffolded | ONNX: inference |
+| `onnx-check` | :orange_circle: Scaffolded | ONNX: check model |
+| `mlflow-experiment` | :orange_circle: Scaffolded | MLflow: experiment |
+| `mlflow-model` | :orange_circle: Scaffolded | MLflow: model registry |
+| `mlflow-tracking` | :orange_circle: Scaffolded | MLflow: tracking |
+| `mlflow-register` | :orange_circle: Scaffolded | MLflow: register model |
+| `mlflow-compare` | :orange_circle: Scaffolded | MLflow: compare runs |
+| `wandb-project` | :orange_circle: Scaffolded | W&B: project |
+| `wandb-run` | :orange_circle: Scaffolded | W&B: run |
+| `wandb-table` | :orange_circle: Scaffolded | W&B: table |
+| `wandb-report` | :orange_circle: Scaffolded | W&B: report |
+| `wandb-config` | :orange_circle: Scaffolded | W&B: config |
+| `dvc-remote` | :orange_circle: Scaffolded | DVC: remote management |
+| `dvc-diff` | :orange_circle: Scaffolded | DVC: diff |
+| `dvc-metrics` | :orange_circle: Scaffolded | DVC: metrics |
+| `dvc-plots` | :orange_circle: Scaffolded | DVC: plots |
+| `dvc-params` | :orange_circle: Scaffolded | DVC: parameters |
+
+### Round 521 — PyTorch, TensorFlow, JAX, Keras
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `pytorch-train` | :orange_circle: Scaffolded | PyTorch: train model |
+| `pytorch-eval` | :orange_circle: Scaffolded | PyTorch: evaluate model |
+| `pytorch-export` | :orange_circle: Scaffolded | PyTorch: export model |
+| `pytorch-profile` | :orange_circle: Scaffolded | PyTorch: profiler |
+| `pytorch-distributed` | :orange_circle: Scaffolded | PyTorch: distributed training |
+| `tensorflow-train` | :orange_circle: Scaffolded | TensorFlow: train model |
+| `tensorflow-serve` | :orange_circle: Scaffolded | TensorFlow: serve model |
+| `tensorflow-lite` | :orange_circle: Scaffolded | TensorFlow: Lite conversion |
+| `tensorflow-board` | :orange_circle: Scaffolded | TensorFlow: TensorBoard |
+| `tensorflow-saved` | :orange_circle: Scaffolded | TensorFlow: SavedModel |
+| `jax-jit` | :orange_circle: Scaffolded | JAX: JIT compile |
+| `jax-grad` | :orange_circle: Scaffolded | JAX: gradient |
+| `jax-vmap` | :orange_circle: Scaffolded | JAX: vectorize |
+| `jax-pmap` | :orange_circle: Scaffolded | JAX: parallel map |
+| `jax-device` | :orange_circle: Scaffolded | JAX: device management |
+| `keras-model` | :orange_circle: Scaffolded | Keras: model summary |
+| `keras-layer` | :orange_circle: Scaffolded | Keras: layer config |
+| `keras-compile` | :orange_circle: Scaffolded | Keras: compile model |
+| `keras-fit` | :orange_circle: Scaffolded | Keras: fit model |
+| `keras-predict` | :orange_circle: Scaffolded | Keras: predict |
+
 ### Round 520 — Typst, Texinfo, Groff, LilyPond
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index da48df2..9c03b7a 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -33528,3 +33528,409 @@
 (def (cmd-lilypond-preview app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "LilyPond: preview")))
+
+;; Round 522: ONNX, MLflow ext, W&B ext, DVC ext (20 commands)
+(def (cmd-onnx-convert app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ONNX: convert model")))
+
+(def (cmd-onnx-validate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ONNX: validate model")))
+
+(def (cmd-onnx-optimize app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ONNX: optimize model")))
+
+(def (cmd-onnx-infer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ONNX: inference")))
+
+(def (cmd-onnx-check app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ONNX: check model")))
+
+(def (cmd-mlflow-experiment app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MLflow: experiment")))
+
+(def (cmd-mlflow-model app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MLflow: model registry")))
+
+(def (cmd-mlflow-tracking app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MLflow: tracking")))
+
+(def (cmd-mlflow-register app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MLflow: register model")))
+
+(def (cmd-mlflow-compare app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MLflow: compare runs")))
+
+(def (cmd-wandb-project app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "W&B: project")))
+
+(def (cmd-wandb-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "W&B: run")))
+
+(def (cmd-wandb-table app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "W&B: table")))
+
+(def (cmd-wandb-report app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "W&B: report")))
+
+(def (cmd-wandb-config app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "W&B: config")))
+
+(def (cmd-dvc-remote app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "DVC: remote management")))
+
+(def (cmd-dvc-diff app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "DVC: diff")))
+
+(def (cmd-dvc-metrics app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "DVC: metrics")))
+
+(def (cmd-dvc-plots app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "DVC: plots")))
+
+(def (cmd-dvc-params app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "DVC: parameters")))
+
+;; Round 524: MongoDB ext, Redis CLI, Memcached ext, RabbitMQ ext (20 commands)
+(def (cmd-mongodb-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MongoDB: query")))
+
+(def (cmd-mongodb-index app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MongoDB: index management")))
+
+(def (cmd-mongodb-backup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MongoDB: backup")))
+
+(def (cmd-mongodb-restore app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MongoDB: restore")))
+
+(def (cmd-mongodb-explain app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MongoDB: explain query")))
+
+(def (cmd-redis-cli-get app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Redis CLI: get key")))
+
+(def (cmd-redis-cli-set app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Redis CLI: set key")))
+
+(def (cmd-redis-cli-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Redis CLI: server info")))
+
+(def (cmd-redis-cli-monitor app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Redis CLI: monitor")))
+
+(def (cmd-redis-cli-cluster app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Redis CLI: cluster")))
+
+(def (cmd-memcached-config app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Memcached: configuration")))
+
+(def (cmd-memcached-slab app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Memcached: slab stats")))
+
+(def (cmd-memcached-item app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Memcached: item stats")))
+
+(def (cmd-memcached-conn app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Memcached: connections")))
+
+(def (cmd-memcached-thread app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Memcached: thread stats")))
+
+(def (cmd-rabbitmq-queue app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "RabbitMQ: queue management")))
+
+(def (cmd-rabbitmq-exchange app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "RabbitMQ: exchange")))
+
+(def (cmd-rabbitmq-binding app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "RabbitMQ: binding")))
+
+(def (cmd-rabbitmq-user app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "RabbitMQ: user management")))
+
+(def (cmd-rabbitmq-vhost app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "RabbitMQ: vhost")))
+
+;; Round 525 batch 2: Pulsar, ZeroMQ (10 commands)
+(def (cmd-pulsar-topic app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pulsar: topic management")))
+
+(def (cmd-pulsar-subscription app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pulsar: subscription")))
+
+(def (cmd-pulsar-namespace app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pulsar: namespace")))
+
+(def (cmd-pulsar-tenant app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pulsar: tenant")))
+
+(def (cmd-pulsar-function app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pulsar: function")))
+
+(def (cmd-zeromq-pub app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ZeroMQ: publisher")))
+
+(def (cmd-zeromq-sub app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ZeroMQ: subscriber")))
+
+(def (cmd-zeromq-push app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ZeroMQ: push socket")))
+
+(def (cmd-zeromq-pull app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ZeroMQ: pull socket")))
+
+(def (cmd-zeromq-router app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ZeroMQ: router socket")))
+
+;; Round 527: TigerGraph, InfluxDB ext, TimescaleDB, QuestDB (20 commands)
+(def (cmd-tigergraph-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TigerGraph: GSQL query")))
+
+(def (cmd-tigergraph-load app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TigerGraph: load data")))
+
+(def (cmd-tigergraph-schema app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TigerGraph: schema")))
+
+(def (cmd-tigergraph-backup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TigerGraph: backup")))
+
+(def (cmd-tigergraph-rest app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TigerGraph: REST API")))
+
+(def (cmd-influxdb-bucket app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "InfluxDB: bucket management")))
+
+(def (cmd-influxdb-task app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "InfluxDB: tasks")))
+
+(def (cmd-influxdb-backup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "InfluxDB: backup")))
+
+(def (cmd-influxdb-org app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "InfluxDB: organization")))
+
+(def (cmd-influxdb-token app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "InfluxDB: token management")))
+
+(def (cmd-timescaledb-hypertable app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TimescaleDB: hypertable")))
+
+(def (cmd-timescaledb-chunk app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TimescaleDB: chunk management")))
+
+(def (cmd-timescaledb-policy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TimescaleDB: retention policy")))
+
+(def (cmd-timescaledb-compress app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TimescaleDB: compression")))
+
+(def (cmd-timescaledb-cagg app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TimescaleDB: continuous aggregate")))
+
+(def (cmd-questdb-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "QuestDB: SQL query")))
+
+(def (cmd-questdb-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "QuestDB: import data")))
+
+(def (cmd-questdb-export app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "QuestDB: export data")))
+
+(def (cmd-questdb-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "QuestDB: server status")))
+
+(def (cmd-questdb-config app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "QuestDB: configuration")))
+
+;; Round 529: Meilisearch, Typesense, Zincsearch, etcd ext (20 commands)
+(def (cmd-meilisearch-index app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Meilisearch: index management")))
+
+(def (cmd-meilisearch-search app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Meilisearch: search")))
+
+(def (cmd-meilisearch-task app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Meilisearch: tasks")))
+
+(def (cmd-meilisearch-key app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Meilisearch: API keys")))
+
+(def (cmd-meilisearch-dump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Meilisearch: dump")))
+
+(def (cmd-typesense-collection app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Typesense: collection")))
+
+(def (cmd-typesense-document app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Typesense: document")))
+
+(def (cmd-typesense-search app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Typesense: search")))
+
+(def (cmd-typesense-key app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Typesense: API keys")))
+
+(def (cmd-typesense-alias app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Typesense: alias")))
+
+(def (cmd-zincsearch-index app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Zincsearch: index")))
+
+(def (cmd-zincsearch-search app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Zincsearch: search")))
+
+(def (cmd-zincsearch-template app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Zincsearch: template")))
+
+(def (cmd-zincsearch-user app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Zincsearch: user")))
+
+(def (cmd-zincsearch-bulk app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Zincsearch: bulk ingest")))
+
+(def (cmd-etcd-watch app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "etcd: watch keys")))
+
+(def (cmd-etcd-lease app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "etcd: lease management")))
+
+(def (cmd-etcd-member app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "etcd: member management")))
+
+(def (cmd-etcd-snapshot app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "etcd: snapshot")))
+
+(def (cmd-etcd-defrag app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "etcd: defragment")))
+
+;; Round 530 batch 2: CockroachDB, YugabyteDB (10 commands)
+(def (cmd-cockroachdb-sql app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CockroachDB: SQL shell")))
+
+(def (cmd-cockroachdb-init app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CockroachDB: initialize")))
+
+(def (cmd-cockroachdb-start app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CockroachDB: start node")))
+
+(def (cmd-cockroachdb-cert app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CockroachDB: certificates")))
+
+(def (cmd-cockroachdb-dump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CockroachDB: dump data")))
+
+(def (cmd-yugabytedb-sql app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YugabyteDB: SQL shell")))
+
+(def (cmd-yugabytedb-admin app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YugabyteDB: admin")))
+
+(def (cmd-yugabytedb-backup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YugabyteDB: backup")))
+
+(def (cmd-yugabytedb-restore app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YugabyteDB: restore")))
+
+(def (cmd-yugabytedb-master app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "YugabyteDB: master")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 596879c..f13895f 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -32752,3 +32752,409 @@
 (def (cmd-texinfo-xml app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Texinfo: to XML")))
+
+;; Round 521: PyTorch, TensorFlow, JAX, Keras (20 commands)
+(def (cmd-pytorch-train app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PyTorch: train model")))
+
+(def (cmd-pytorch-eval app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PyTorch: evaluate model")))
+
+(def (cmd-pytorch-export app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PyTorch: export model")))
+
+(def (cmd-pytorch-profile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PyTorch: profiler")))
+
+(def (cmd-pytorch-distributed app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PyTorch: distributed training")))
+
+(def (cmd-tensorflow-train app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TensorFlow: train model")))
+
+(def (cmd-tensorflow-serve app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TensorFlow: serve model")))
+
+(def (cmd-tensorflow-lite app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TensorFlow: Lite conversion")))
+
+(def (cmd-tensorflow-board app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TensorFlow: TensorBoard")))
+
+(def (cmd-tensorflow-saved app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TensorFlow: SavedModel")))
+
+(def (cmd-jax-jit app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JAX: JIT compile")))
+
+(def (cmd-jax-grad app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JAX: gradient")))
+
+(def (cmd-jax-vmap app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JAX: vectorize")))
+
+(def (cmd-jax-pmap app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JAX: parallel map")))
+
+(def (cmd-jax-device app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JAX: device management")))
+
+(def (cmd-keras-model app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Keras: model summary")))
+
+(def (cmd-keras-layer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Keras: layer config")))
+
+(def (cmd-keras-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Keras: compile model")))
+
+(def (cmd-keras-fit app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Keras: fit model")))
+
+(def (cmd-keras-predict app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Keras: predict")))
+
+;; Round 523: Kubeflow, BentoML, PostgreSQL ext, MySQL ext (20 commands)
+(def (cmd-kubeflow-pipeline app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kubeflow: pipeline")))
+
+(def (cmd-kubeflow-experiment app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kubeflow: experiment")))
+
+(def (cmd-kubeflow-notebook app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kubeflow: notebook")))
+
+(def (cmd-kubeflow-serving app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kubeflow: serving")))
+
+(def (cmd-kubeflow-katib app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kubeflow: Katib tuning")))
+
+(def (cmd-bentoml-build app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "BentoML: build bento")))
+
+(def (cmd-bentoml-serve app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "BentoML: serve model")))
+
+(def (cmd-bentoml-deploy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "BentoML: deploy")))
+
+(def (cmd-bentoml-model app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "BentoML: model management")))
+
+(def (cmd-bentoml-containerize app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "BentoML: containerize")))
+
+(def (cmd-postgres-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PostgreSQL: run query")))
+
+(def (cmd-postgres-backup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PostgreSQL: backup")))
+
+(def (cmd-postgres-restore app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PostgreSQL: restore")))
+
+(def (cmd-postgres-vacuum app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PostgreSQL: vacuum")))
+
+(def (cmd-postgres-reindex app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "PostgreSQL: reindex")))
+
+(def (cmd-mysql-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MySQL: run query")))
+
+(def (cmd-mysql-backup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MySQL: backup")))
+
+(def (cmd-mysql-restore app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MySQL: restore")))
+
+(def (cmd-mysql-optimize app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MySQL: optimize tables")))
+
+(def (cmd-mysql-repair app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MySQL: repair tables")))
+
+;; Round 525 batch 1: Kafka ext, NATS ext (10 commands)
+(def (cmd-kafka-topic app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kafka: topic management")))
+
+(def (cmd-kafka-consumer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kafka: consumer")))
+
+(def (cmd-kafka-producer app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kafka: producer")))
+
+(def (cmd-kafka-group app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kafka: consumer group")))
+
+(def (cmd-kafka-offset app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kafka: offset management")))
+
+(def (cmd-nats-account app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "NATS: account management")))
+
+(def (cmd-nats-context app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "NATS: context")))
+
+(def (cmd-nats-leafnode app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "NATS: leaf node")))
+
+(def (cmd-nats-kv app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "NATS: key-value store")))
+
+(def (cmd-nats-object app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "NATS: object store")))
+
+;; Round 526: Neo4j ext, Dgraph, ArangoDB, JanusGraph (20 commands)
+(def (cmd-neo4j-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Neo4j: import data")))
+
+(def (cmd-neo4j-backup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Neo4j: backup database")))
+
+(def (cmd-neo4j-admin app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Neo4j: admin console")))
+
+(def (cmd-neo4j-browser app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Neo4j: browser")))
+
+(def (cmd-neo4j-cypher app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Neo4j: Cypher shell")))
+
+(def (cmd-dgraph-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dgraph: query")))
+
+(def (cmd-dgraph-mutation app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dgraph: mutation")))
+
+(def (cmd-dgraph-schema app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dgraph: schema")))
+
+(def (cmd-dgraph-backup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dgraph: backup")))
+
+(def (cmd-dgraph-export app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dgraph: export")))
+
+(def (cmd-arangodb-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ArangoDB: AQL query")))
+
+(def (cmd-arangodb-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ArangoDB: import data")))
+
+(def (cmd-arangodb-backup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ArangoDB: backup")))
+
+(def (cmd-arangodb-restore app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ArangoDB: restore")))
+
+(def (cmd-arangodb-dump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ArangoDB: dump")))
+
+(def (cmd-janusgraph-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JanusGraph: Gremlin query")))
+
+(def (cmd-janusgraph-schema app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JanusGraph: schema")))
+
+(def (cmd-janusgraph-index app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JanusGraph: index")))
+
+(def (cmd-janusgraph-config app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JanusGraph: config")))
+
+(def (cmd-janusgraph-server app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "JanusGraph: server")))
+
+;; Round 528: VictoriaMetrics ext, ClickHouse ext, Elasticsearch ext, OpenSearch (20 commands)
+(def (cmd-victoriametrics-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "VictoriaMetrics: import data")))
+
+(def (cmd-victoriametrics-export app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "VictoriaMetrics: export data")))
+
+(def (cmd-victoriametrics-snapshot app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "VictoriaMetrics: snapshot")))
+
+(def (cmd-victoriametrics-rules app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "VictoriaMetrics: recording rules")))
+
+(def (cmd-victoriametrics-targets app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "VictoriaMetrics: targets")))
+
+(def (cmd-clickhouse-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ClickHouse: import data")))
+
+(def (cmd-clickhouse-export app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ClickHouse: export data")))
+
+(def (cmd-clickhouse-optimize app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ClickHouse: optimize table")))
+
+(def (cmd-clickhouse-mutation app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ClickHouse: mutation")))
+
+(def (cmd-clickhouse-system app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ClickHouse: system queries")))