by chmonitor
Open-source operational advisor for ClickHouse — real-time monitoring plus AI-driven index/partition/materialized-view recommendations. Self-host or use the cloud.
# Add to your Claude Code skills
git clone https://github.com/chmonitor/chmonitorLast scanned: 7/17/2026
{
"issues": [
{
"file": ".agents/skills/embedded-captions/SKILL.md",
"line": 3,
"type": "hidden-content",
"message": "Opaque base64 blob in an instruction file",
"severity": "low"
},
{
"file": ".agents/skills/media-use/SKILL.md",
"line": 119,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://static.heygen.ai/cli/install.sh | bash\"",
"severity": "medium"
}
],
"status": "PASSED",
"scannedAt": "2026-07-17T06:14:30.817Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}chmonitor is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by chmonitor. Open-source operational advisor for ClickHouse — real-time monitoring plus AI-driven index/partition/materialized-view recommendations. Self-host or use the cloud. It has 249 GitHub stars.
Yes. chmonitor passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/chmonitor/chmonitor" and add it to your Claude Code skills directory (see the Installation section above).
chmonitor is primarily written in TypeScript. It is open-source under chmonitor on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh chmonitor against similar tools.
No comments yet. Be the first to share your thoughts!
chmonitor is an operational advisor for ClickHouse — not just a metrics viewer. It reads system.* and recommends projections, skip indexes, partition keys, PREWHERE rewrites, and materialized views (it recommends, and never auto-applies DDL), on top of the real-time query/cluster/replication monitoring you'd expect. Managed-ClickHouse AI tools stay locked to their own Cloud; chmonitor works the same way on Docker, Kubernetes, bare metal, or ClickHouse Cloud — self-host it free (GPL-3.0) or use the hosted Cloud, same codebase either way.
Upgrading from v0.2? v0.3 rebuilds the app on TanStack Start. ClickHouse connection vars are unchanged; browser vars move from
NEXT_PUBLIC_*toVITE_*(old names still work as a fallback). See Upgrading to v0.3 below or the full Migrate to v0.3 guide.
| Monitoring | AI & extensibility |
|---|---|
| Query Monitoring — running queries, history, resources (memory, parts read, file_open), expensive/slow/failed queries, query profiler | AI Advisor — projection, skip-index, partition-key, PREWHERE and materialized-view recommendations from system.* and EXPLAIN — recommend-only, never auto-applies DDL |
| Cluster Overview — memory/CPU, distributed queue, global & MergeTree settings, metrics, asynchronous metrics | AI Agent — built-in chat for natural-language questions against your ClickHouse cluster |
| Data Explorer — interactive database tree, fast tab switching, column-level detail, projections, dictionaries | MCP Server — Model Context Protocol endpoint for AI tool integration (Claude, Cursor, etc.) |
| Table Analytics — size, row count, compression, part sizes, detached parts, readonly tables, view refreshes | Rust CLI — standalone terminal/TUI monitoring, plus a zero-signup chm diagnose that scores a cluster's health directly from ClickHouse. Install: curl -sSf https://raw.githubusercontent.com/chmonitor/chmonitor/main/scripts/install.sh | bash (docs) |
| Visualization — 30+ metric charts for queries, resources, merges, performance and system health | Security & Access — users, roles, security settings |
| Merge & Replication — merge operations, merge performance, replication queue, replicas | Developer Tools — Zookeeper explorer, query EXPLAIN, query kill, distributed DDL queue, mutations |
| Multi-Host Support — monitor multiple ClickHouse instances from a single dashboard |
Same codebase, same features — the only difference is who runs it. See Editions for the open-core feature gates.
| Self-hosted (OSS) | Cloud (dash.chmonitor.dev) | |
|---|---|---|
| Cost | Free forever, GPL-3.0 | Free tier, then Pro $29/mo, Max $99/mo, Enterprise custom |
| Runs on | Your infra — Docker, Kubernetes, bare metal, Cloudflare Workers | Hosted by us on Cloudflare's global edge |
| ClickHouse hosts | Unlimited | 1 (Free) · 3 (Pro) · 10 (Max) · unlimited (Enterprise) |
| Setup | docker run one-liner below |
Sign up — no install |
| Try without an account | — | Public read-only demo cluster |
One container, pointed at any reachable ClickHouse (OSS, Altinity, or ClickHouse Cloud):
docker run -d --name chmonitor -p 3000:3000 \
-e CLICKHOUSE_HOST=https://clickhouse.example.com:8443 \
-e CLICKHOUSE_USER=default \
-e CLICKHOUSE_PASSWORD=change-me \
ghcr.io/chmonitor/chmonitor:latest
Open http://localhost:3000. Pin a release tag instead of latest for production.
Just want to look first? The live demo is at dash.chmonitor.dev — no setup required. Other targets (Cloudflare Workers, one-click Railway/Render/Fly, Kubernetes) are under Deployment.
To self-host, run it next to your ClickHouse with the same CLICKHOUSE_*
connection vars on any of these targets:
docker run; the fastest path to a live dashboard.Prefer to look before you install? Try the live demo above — no setup required.
This project supports deployment to Cloudflare Workers with static site generation and API routes.
Prerequisites:
.ts scripts)npm install -g wranglerSetup:
git clone https://github.com/chmonitor/chmonitor.git
cd chmonitor
pnpm install
.env.local:CLICKHOUSE_HOST=https://your-clickhouse-host.com
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=yourpassword
CLICKHOUSE_TZ=UTC
Optional API-key protection for /api/v1/* routes:
CHM_API_KEY_SECRET=your-signing-secret
Optional Clerk UI/session support (set at build time; NEXT_PUBLIC_* is the v0.2 fallback):
CHM_AUTH_PROVIDER=clerk
VITE_AUTH_PROVIDER=clerk
VITE_CLERK_PUBLISHABLE_KEY=pk_live_your_key
CLERK_SECRET_KEY=sk_live_your_key
Feature permissions default to enabled and public. Add sparse overrides when a deployment should hide or protect a feature:
# /etc/clickhouse-monitor/config.toml
[features.agent]
access = "authenticated"
[features.metrics]
enabled = false
access = "guest" is accepted as an alias for access = "public".
CHM_CONFIG_FILE=/etc/clickhouse-monitor/config.toml
# or env-only:
CHM_FEATURE_AGENT_ACCESS=authenticated
CHM_DISABLED_FEATURES=settings,metrics
Leave auth provider env unset or set it to none for self-hosted deployments
without auth.
# Set CLOUDFLARE_API_TOKEN in .env.production.local or export it
# OR use OAuth: npx wrangler login
# Unified deploy (config, build, deploy, cache — same as CI)
pnpm run cf:deploy
Manual Deployment Steps:
# Step by step (same as CI)
pnpm run cf:config # Set secrets from .env.production.local
cd apps/dashboard
pnpm run build # Vite build → native Workers bundle (+ tsc --noEmit)
wrangler deploy --minify
Important Notes:
@cloudflare/vite-plugin into a native Workers bundle — no OpenNext, no KV/R2/D1 cache-population step?host=0)docker run -d \
-p 3000:3000 \
-e CLICKHOUSE_HOST=https://your-clickhouse-host.com \
-e CLICKHOUSE_USER=default \
-e CLICKHOUSE_PASSWORD=yourpassword \
ghcr.io/chmonitor/chmonitor:latest
Tagged releases are built by GitHub Actions from tags matching v*. The release page includes:
ghcr.io/chmonitor/chmonitor with the release version tag*-standalone.tar.gz, the Nitro node-server output) for self-hosted Node deployments*-cloudflare.tar.gz) for manual inspection or deploymentFor repeatable Docker deploys, prefer the versioned image tag from the release page instead of latest.
v0.3 rebuilds the dashboard on TanStack Start. Features, routes, and ClickHouse setup carry over unchanged. The only env change is the browser variable prefix, and the old names keep working:
| Concern | v0.2 (Next.js) | v0.3 (TanStack Start) |
|---|---|---|
| Browser var prefix | NEXT_PUBLIC_* |
VITE_* (old names still work) |
| A |