Agent skill

Clickhouse JS Node Coding

by vemetric in vemetric/vemetric

Write idiomatic application code with the ClickHouse Node.js client (@clickhouse/client).

AGPL-3.0Auto-check passedDatabases

Install Clickhouse JS Node Coding

skills CLI
$ npx skills add vemetric/vemetric --skill clickhouse-js-node-coding -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install vemetric/vemetric clickhouse-js-node-coding --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/vemetric/vemetric.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/clickhouse-js-node-coding .claude/skills/clickhouse-js-node-coding && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
clickhouse-js-node-coding
GitHub stars
394
Used in
1 other repo
Token cost
~2.8k tokens
SKILL.md length
845 words
Files
13
Skills in repo
6
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Write idiomatic application code with the ClickHouse Node.js client (@clickhouse/client).

  • Works in 6 steps: Match the user's intent to a row in the… → Always import from @clickhouse/client… → Prefer JSONEachRow for typical row… → …
  • A user is building against the Node.js client — configuring the client
  • SKILL.md covers How to Use This Skill, Task Index, Conventions used in answers and Out of scope, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Clickhouse JS Node Coding is an agent skill from vemetric/vemetric. Write idiomatic application code with the ClickHouse Node.js client (@clickhouse/client). Use this skill whenever a user is building against the Node.js client — configuring the client, pinging, inserting rows in JSON or raw formats, selecting and parsing results, binding query parameters, managing sessions and temporary tables, working with data types or customizing JSON parsing. Do NOT use for browser/Web client code.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files (for example `reference/async-insert.md`, `reference/client-configuration.md` and `reference/compression.md`).

It sits in Databases, covering Data warehousing. It works with ClickHouse and Node.js. The repository describes itself as: Simple, yet powerful Web- & Product Analytics. The licence is AGPL-3.0.

When your agent uses it

  • A user is building against the Node.js client — configuring the client
  • Inserting rows in JSON
  • Selecting and parsing results
  • Binding query parameters

Example prompts

  • “/clickhouse-js-node-coding”

Requirements

  • Node.js

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Match the user's intent to a row in the Task Index below and read the
  2. Always import from @clickhouse/client (never @clickhouse/client-web)
  3. Prefer JSONEachRow for typical row inserts/selects unless the user
  4. Always use query_params for user-supplied values — never template-
  5. Pick the right method for the job
  6. Note version constraints when relevant. Examples

What it can do on your machine

Read from SKILL.md and the folder at commit 6b7b01a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • clickhouse.com
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Clickhouse JS Node Coding loads about 2.8k tokens when it runs. Until then it costs about 113 tokens; SKILL.md has 845 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~113
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from vemetric/vemetric at commit 6b7b01a, republished under its AGPL-3.0 licence (© vemetric). 845 words, ~2,783 tokens.

Download SKILL.mdSave it as .claude/skills/clickhouse-js-node-coding/SKILL.md (or your agent's skills folder). This skill also uses 12 other files; get the full folder from GitHub.
name
clickhouse-js-node-coding
description
Write idiomatic application code with the ClickHouse Node.js client (`@clickhouse/client`). Use this skill whenever a user is *building* against the Node.js client — configuring the client, pinging, inserting rows in JSON or raw formats, selecting and parsing results, binding query parameters, managing sessions and temporary tables, working with data types or customizing JSON parsing. Do NOT use for browser/Web client code.

ClickHouse Node.js Client — Coding

Reference: https://clickhouse.com/docs/integrations/javascript

⚠️ Node.js runtime only. This skill covers the @clickhouse/client package running in a Node.js runtime exclusively — including Next.js Node runtime API routes, React Server Components, Server Actions, and standard Node.js processes. Do not apply this skill to browser client components, Web Workers, Next.js Edge runtime, Cloudflare Workers, or any usage of @clickhouse/client-web. For browser/edge environments, the correct package is @clickhouse/client-web.


How to Use This Skill

  1. Match the user's intent to a row in the Task Index below and read the corresponding reference file before writing code. After reading it, scan any Answer checklist in that reference and make sure the final answer covers each relevant item; those checklists capture details users usually need but are easy to omit in short answers.
  2. Always import from @clickhouse/client (never @clickhouse/client-web) and create a client with createClient({ url }) or rely on supported defaults when appropriate. Close it with await client.close() preferably when it's no longer needed or during graceful shutdown for global resources.
  3. Prefer JSONEachRow for typical row inserts/selects unless the user has already chosen another format or is streaming raw bytes (CSV / TSV / Parquet — see examples/node/performance/). Note on clickhouse_settings: settings passed to createClient are defaults for every request; they can be overridden per-call by passing clickhouse_settings directly to insert(), query(), or command(). Always mention this when the user configures settings at the client level.
  4. Always use query_params for user-supplied values — never template- literal-interpolate them into SQL. See reference/query-parameters.md. When answering a parameter-binding question, your response must explicitly name template-literal interpolation as a "SQL injection risk" — even when the user only asked about syntax and did not raise security. The literal phrase "SQL injection" needs to appear; this is the most common mistake from PostgreSQL/MySQL users and the security framing is part of the correct answer, not an optional aside.
  5. Pick the right method for the job:
    • client.insert() — write rows.
    • client.query() + resultSet.json() / .text() / .stream() — read rows that return data.
    • client.command() — DDL and other statements that don't return rows (CREATE, DROP, TRUNCATE, ALTER, SET in a session, etc.).
    • client.exec() — when you need the raw response stream of an arbitrary statement (rare in coding scenarios).
    • client.ping() — health check; returns { success, error? }, never throws on connection failure.
  6. Note version constraints when relevant. Examples:
    • pathname config option: client >= 1.0.0.
    • BigInt values in query_params: client >= 1.15.0.
    • TupleParam and JS Map in query_params: client >= 1.9.0.
    • Configurable json.parse / json.stringify: client >= 1.14.0.
    • Time / Time64 data types: ClickHouse server >= 25.6.
    • QBit data type: ClickHouse server >= 25.10 (GA on 26.x).
    • Dynamic / Variant / new JSON types: ClickHouse server >= 24.1 / 24.5 / 24.8 (no longer experimental since 25.3).

Show full SKILL.md (413 more words)Show less

Task Index

Identify the user's task and read the matching reference file.

TaskTriggers / symptomsReference file
Configure / connect the clientBuilding a createClient call, URL parameters, clickhouse_settings, default format, custom HTTP headersreference/client-configuration.md
Compress requests / responsescompression, gzip vs zstd, { codec } option shape, Node version requirements, web limitationsreference/compression.md
Ping the serverHealth checks, readiness probes, "is ClickHouse up?"reference/ping.md
Choose an insert format"Which format should I use to insert?", JSON vs raw, JSONEachRow vs JSON vs JSONObjectEachRowreference/insert-formats.md
Insert into a subset of columns / different databaseinsert({ columns }), excluding columns, ephemeral columns, cross-DB insertsreference/insert-columns.md
Insert values, expressions, dates, decimalsINSERT … VALUES with SQL functions, Date/DateTime from JS, Decimal precision, INSERT … SELECT; inserting a UUID into a UInt128 column is tricky — use when the user is writing code that stores a UUID as UInt128reference/insert-values.md
Async inserts (server-side batching)async_insert=1, fire-and-forget vs wait-for-ackreference/async-insert.md
Select and parse resultsJSONEachRow reads, JSON with metadata, picking a select formatreference/select-formats.md
Parameterize queriesBinding values, special characters / escaping, "SQL injection?", {name: Type} syntaxreference/query-parameters.md
Sessions & temporary tablessession_id, CREATE TEMPORARY TABLE, per-session SET commandsreference/sessions.md
Modern data typesDynamic, Variant, JSON (object), Time, Time64, QBit (vector search)reference/data-types.md
Custom JSON parse/stringifyPlug in JSONBig / safe-stable-stringify / a BigInt-aware serializerreference/custom-json.md

Conventions used in answers

  • Always show import { createClient } from '@clickhouse/client' (Node, never Web).
  • Always await client.close() at the end of self-contained snippets; in long-running services, close on graceful shutdown.
  • For inserts, prefer format: 'JSONEachRow' and values: [...] unless the user's scenario requires otherwise.
  • For selects, prefer await (await client.query({...})).json<RowType>() for small / medium result sets; for bigger results suggest streaming.
  • When showing parameter binding, use ClickHouse's native {name: Type} syntax — never $1, ?, or :name.
  • For DDL inside a cluster or behind a load balancer, set clickhouse_settings: { wait_end_of_query: 1 } on the command() call so the server only acknowledges after the change is applied. See https://clickhouse.com/docs/en/interfaces/http/#response-buffering.

Out of scope

This skill covers day-to-day coding against @clickhouse/client (Node). The following topics are intentionally not covered here:

  • Errors, hangs, type mismatches, proxy pathname surprises, log silence, socket hang-ups, ECONNRESET → use the clickhouse-js-node-troubleshooting skill.
  • Streaming, Parquet, file streams, server-side bulk moves, progress streaming, async-insert throughput tuning — see examples/node/performance/.
  • TLS, RBAC / read-only users, deeper SQL-injection guidance — see examples/node/security/.
  • CREATE TABLE patterns, deployment-shaped connection strings, replication / sharding choices — see examples/node/schema-and-deployments/.
  • Browser, Web Worker, Next.js Edge, Cloudflare Workers — use @clickhouse/client-web and see examples/web/.

Still Stuck?

© vemetric, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 12 other files in .agents/skills/clickhouse-js-node-coding of vemetric/vemetric.

  • SKILL.md
  • reference/async-insert.md
  • reference/client-configuration.md
  • reference/compression.md
  • reference/custom-json.md
  • reference/data-types.md
  • reference/insert-columns.md
  • reference/insert-formats.md
  • reference/insert-values.md
  • reference/ping.md
  • reference/query-parameters.md
  • reference/select-formats.md
  • reference/sessions.md

Open the folder on GitHubat commit 6b7b01a

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in vemetric/vemetric, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Clickhouse JS Node Coding next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Clickhouse JS Node Coding compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Clickhouse JS Node Coding this skillvemetric/vemetric3941 repos~2.8kAutomated safety check: PassAGPL-3.0
ClickHouse RowBinary for Node.jsClickHouse/agent-skills544—~1.3kAutomated safety check: PassApache-2.0
Adding Ingestion WarningsPostHog/posthog-foss721—~3.7kAutomated safety check: PassMIT
Monitoring Ingestion PipelinePostHog/posthog-foss721—~9.1kAutomated safety check: PassMIT
Ar Io Gateway Operatorar-io/ar-io-node127—~8.2kAutomated safety check: NotesAGPL-3.0
Testingar-io/ar-io-node127—~2.6kAutomated safety check: NotesAGPL-3.0

Similar skills

  • ClickHouse RowBinary for Node.js

    ClickHouse/agent-skills

    Generates TypeScript or JavaScript readers and writers for ClickHouse's RowBinary formats over HTTP in Node.js, after checking that RowBinary suits the data.

    544 GitHub stars~1.3k tokensUpdated 8 days ago
    DatabasesAuto-check passed
  • Adding Ingestion Warnings

    PostHog/posthog-foss

    Official

    How to add a new ingestion warning type to the event ingestion pipeline.

    721 GitHub stars~3.7k tokensUpdated today
    DatabasesAuto-check passed
  • Monitoring Ingestion Pipeline

    PostHog/posthog-foss

    Official

    Guide for using the Grafana MCP to monitor and diagnose the Node.js ingestion pipeline workers in production.

    721 GitHub stars~9.1k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Ar Io Gateway Operator

    ar-io/ar-io-node

    Operate any AR.IO node deployment — architecture, daily ops, diagnostics, and recurring pitfalls that apply to every operator.

    127 GitHub stars~8.2k tokensUpdated today
    Backend & APIsAuto-check: notes
  • Testing

    ar-io/ar-io-node

    Decision guide for testing in the ar-io-node repo — which test layer to use, how to run it, and which helpers to reach for.

    127 GitHub stars~2.6k tokensUpdated today
    Testing & QAAuto-check: notes
  • Observal Admin

    Observal/Observal

    Administers Observal users, settings, diagnostics, review queues, security events, audit logs, SAML, SCIM, the local Observal server, its upgrades and rollback, and its own PostgreSQL and ClickHouse…

    4.1k GitHub stars~774 tokensUpdated today
    DatabasesAuto-check passed

More from vemetric/vemetric

  • Chdb Datastore

    vemetric/vemetric

    A skill your agent uses when the user has tabular data (pandas DataFrame, parquet, csv, Arrow, json) and wants to filter, group, aggregate, join, or speed up slow pandas.

    394 GitHub starsUsed in 2 repos~1.4k tokens
    Auto-check passed
  • Chdb SQL

    vemetric/vemetric

    A skill your agent uses when the user wants to run SQL — especially analytical SQL — on local files (parquet/csv/json), URLs, S3 paths, or remote databases (Postgres, MySQL, MongoDB, ClickHouse…

    394 GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • MUST USE when designing ClickHouse architectures, selecting between ingestion or modeling patterns, or translating best practices into workload-specific system designs.

    394 GitHub starsUsed in 2 repos~791 tokens
    Auto-check passed
  • Clickhouse Best Practices

    vemetric/vemetric

    MUST USE when reviewing ClickHouse schemas, queries, or configurations.

    394 GitHub starsUsed in 2 repos~2.6k tokens
    Auto-check passed
  • Troubleshoot and resolve common issues with the ClickHouse Node.js client (@clickhouse/client).

    394 GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed

Categories

Questions about Clickhouse JS Node Coding

What does Clickhouse JS Node Coding do?

Write idiomatic application code with the ClickHouse Node.js client (@clickhouse/client). Clickhouse JS Node Coding is an agent skill from vemetric/vemetric.js client (@clickhouse/client).

When should I use Clickhouse JS Node Coding?

Clickhouse JS Node Coding fits situations like: A user is building against the Node.js client — configuring the client; inserting rows in JSON; selecting and parsing results; binding query parameters.

How do I install Clickhouse JS Node Coding in Claude Code?

Run `npx skills add vemetric/vemetric --skill clickhouse-js-node-coding -a claude-code`. Or copy the skill folder (.agents/skills/clickhouse-js-node-coding in vemetric/vemetric) into .claude/skills/clickhouse-js-node-coding in your project. Claude Code loads it when a task matches its description.

How do I install Clickhouse JS Node Coding in Codex?

Run `npx skills add vemetric/vemetric --skill clickhouse-js-node-coding -a codex`. Or copy the skill folder (.agents/skills/clickhouse-js-node-coding in vemetric/vemetric) into .agents/skills/clickhouse-js-node-coding in your project. Codex loads it when a task matches its description.

Can I use Clickhouse JS Node Coding in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vemetric/vemetric --skill clickhouse-js-node-coding -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/clickhouse-js-node-coding, .gemini/skills/clickhouse-js-node-coding, .github/skills/clickhouse-js-node-coding and .opencode/skills/clickhouse-js-node-coding in your project.

What does Clickhouse JS Node Coding need to run?

SKILL.md names no scripts, command-line tools or credentials: Clickhouse JS Node Coding is instructions for the agent only. Our summary lists: Node.js.

Does Clickhouse JS Node Coding access the network?

SKILL.md names 2 domains. As links in the text: clickhouse.com and github.com. This is read from the text; nothing was executed.

Is Clickhouse JS Node Coding safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Clickhouse JS Node Coding use?

Clickhouse JS Node Coding is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Clickhouse JS Node Coding use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Clickhouse JS Node Coding?

Skills that share tags, products or a category with Clickhouse JS Node Coding: ClickHouse RowBinary for Node.js (ClickHouse/agent-skills, 544 stars), Adding Ingestion Warnings (PostHog/posthog-foss, 721 stars), Monitoring Ingestion Pipeline (PostHog/posthog-foss, 721 stars) and Ar Io Gateway Operator (ar-io/ar-io-node, 127 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Clickhouse JS Node Coding?

vemetric (a GitHub organization) maintains it in vemetric/vemetric, which has 394 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 7, 2026.

Source: vemetric/vemetric on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.