Clickhouse Logs Queries
supabase/supabase
Write, review, and migrate Supabase logs queries against the ClickHouse-backed logs table (the logs.all.otel analytics endpoint).
MUST USE when reviewing ClickHouse schemas, queries, or configurations.
$ npx skills add langfuse/langfuse --skill clickhouse-best-practices -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install langfuse/langfuse clickhouse-best-practices --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/langfuse/langfuse.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/clickhouse-best-practices .claude/skills/clickhouse-best-practices && rm -rf skills-srcUse ~/.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/
Install the "clickhouse-best-practices" agent skill from https://github.com/langfuse/langfuse/tree/main/.agents/skills/clickhouse-best-practices into .claude/skills/clickhouse-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "clickhouse-best-practices", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/langfuse/langfuse/tree/main/.agents/skills/clickhouse-best-practicesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add langfuse/langfuse --skill clickhouse-best-practices -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install langfuse/langfuse clickhouse-best-practices --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langfuse/langfuse.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/clickhouse-best-practices .agents/skills/clickhouse-best-practices && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "clickhouse-best-practices" agent skill from https://github.com/langfuse/langfuse/tree/main/.agents/skills/clickhouse-best-practices into .agents/skills/clickhouse-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "clickhouse-best-practices", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add langfuse/langfuse --skill clickhouse-best-practices -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install langfuse/langfuse clickhouse-best-practices --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langfuse/langfuse.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/clickhouse-best-practices .cursor/skills/clickhouse-best-practices && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "clickhouse-best-practices" agent skill from https://github.com/langfuse/langfuse/tree/main/.agents/skills/clickhouse-best-practices into .cursor/skills/clickhouse-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "clickhouse-best-practices", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/langfuse/langfuse.git --path .agents/skills/clickhouse-best-practices--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add langfuse/langfuse --skill clickhouse-best-practices -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install langfuse/langfuse clickhouse-best-practices --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langfuse/langfuse.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/clickhouse-best-practices .gemini/skills/clickhouse-best-practices && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "clickhouse-best-practices" agent skill from https://github.com/langfuse/langfuse/tree/main/.agents/skills/clickhouse-best-practices into .gemini/skills/clickhouse-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "clickhouse-best-practices", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install langfuse/langfuse clickhouse-best-practicesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add langfuse/langfuse --skill clickhouse-best-practices -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/langfuse/langfuse.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/clickhouse-best-practices .github/skills/clickhouse-best-practices && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "clickhouse-best-practices" agent skill from https://github.com/langfuse/langfuse/tree/main/.agents/skills/clickhouse-best-practices into .github/skills/clickhouse-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "clickhouse-best-practices", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add langfuse/langfuse --skill clickhouse-best-practices -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install langfuse/langfuse clickhouse-best-practices --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/langfuse/langfuse.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/clickhouse-best-practices .opencode/skills/clickhouse-best-practices && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "clickhouse-best-practices" agent skill from https://github.com/langfuse/langfuse/tree/main/.agents/skills/clickhouse-best-practices into .opencode/skills/clickhouse-best-practices/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "clickhouse-best-practices", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
clickhouse-best-practicesMUST USE when reviewing ClickHouse schemas, queries, or configurations.
Clickhouse Best Practices is an agent skill from langfuse/langfuse. MUST USE when reviewing ClickHouse schemas, queries, or configurations. Contains 28 rules that MUST be checked before providing recommendations. Always read relevant rule files and cite specific rules in responses.
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 32 other files (for example `README.md`, `rules/_sections.md` and `rules/_template.md`).
It sits in Databases, covering Data warehousing. It works with ClickHouse and Langfuse. The repository describes itself as: 🪢 Open source agent evals & observability: Trace, evaluate, and improve LLM applications with one open platform. The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 389f393. It shows what the files ask for, not the result of running them.
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.
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.
Links to these hosts (documentation or services it may open):
clickhouse.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Clickhouse Best Practices loads about 3.5k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 1,444 words of instructions outside code blocks.
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.
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.
The full file from langfuse/langfuse at commit 389f393, republished under its Apache-2.0 licence (© langfuse). 1,444 words, ~3,537 tokens.
.claude/skills/clickhouse-best-practices/SKILL.md (or your agent's skills folder). This skill also uses 31 other files; get the full folder from GitHub.Comprehensive guidance for ClickHouse covering schema design, query optimization, and data ingestion. Contains 28 rules across 3 main categories (schema, query, insert), prioritized by impact.
Official docs: ClickHouse Best Practices
Before answering ClickHouse questions, follow this priority order:
rules/ directoryrule-name..."Why rules take priority: ClickHouse has specific behaviors (columnar storage, sparse indexes, merge tree mechanics) where general database intuition can be misleading. The rules encode validated, ClickHouse-specific guidance.
packages/shared/src/server/queries/clickhouse-sql/event-query-builder.ts
for queries against the events table. Do not hand-roll events SQL unless
you first confirm the query builder cannot express the query.FINAL on the events table; it is designed so FINAL is not
required and the keyword hurts performance.system.query_log.log_comment as
JSON from packages/shared/src/server/clickhouse/queryTags.ts. Parse it with
JSONExtractString(log_comment, 'surface'),
JSONExtractString(log_comment, 'route'), and
JSONExtractString(log_comment, 'projectId'). Known surface values are
trpc, publicapi, worker, mcp, and unknown; ClickhouseWriter inserts
use projectId = "MULTI_PROJECT".contextWithLangfuseProps(...) from
packages/shared/src/server/headerPropagation.ts, setting ClickHouse
surface, optional route, and optional projectId. The ClickHouse
repository layer then reads baggage via normalizeClickHouseQueryTags(...)
and writes it to log_comment. Prefer setting attribution at entry points
rather than passing tags through every repository call.packages/shared/clickhouse/migrations/canonical/** is the single canonical
template tree rendered for clustered and unclustered installs. Put
{CLICKHOUSE_CLUSTER_CLAUSE} at every cluster-aware DDL position. Use
{CLICKHOUSE_REPLICATION_PREFIX} only for engines that deliberately differ
by mode; some tables intentionally stay non-replicated in both modes.ALTER (ADD/DROP/MODIFY COLUMN, ADD/DROP INDEX) in a new
canonical migration must include
{CLICKHOUSE_CLUSTERED_ONLY: SETTINGS alter_sync = 2}, and every
mutation-creating ALTER (MATERIALIZE …, UPDATE, DELETE) must include
{CLICKHOUSE_CLUSTERED_ONLY: SETTINGS mutations_sync = 2}.
This applies to a file holding a single ALTER too — the race is across
migration files, not within one. alter_sync defaults to 1, so the
statement returns as soon as the initiating replica has bumped the table's
metadata version in Keeper; golang-migrate then opens the next file
immediately, and its first ALTER on that table can land on a replica still
on the previous version. ClickHouse refuses to queue it and aborts the whole
run with code 517 because the replica metadata version is behind the common
metadata version. Note that mutations_sync does not substitute for alter_sync: it
governs when mutations finish, not metadata propagation. The renderer omits
these fragments for unclustered MergeTree migrations. Use
{CLICKHOUSE_UNCLUSTERED_ONLY:...} only for a deliberate mode-specific
difference. Do not retrofit synchronization settings into already-shipped
migrations merely to normalize them; the historical compatibility test
intentionally protects their existing output.CREATE OR REPLACE VIEW (nor CREATE OR REPLACE TABLE /
EXCHANGE TABLES) in ClickHouse migrations. The atomic replace requires
renameat2 filesystem support, which NFS-backed self-hosted deployments
(e.g. ClickHouse data on AWS EFS) lack — the migration fails and the
deployment aborts on startup (GitHub issue #14906). Redefine a plain view as
two statements in the same migration file. First use
DROP VIEW IF EXISTS <name> {CLICKHOUSE_CLUSTER_CLAUSE};, then
CREATE VIEW <name> {CLICKHOUSE_CLUSTER_CLAUSE} AS ….
The migration runner passes x-multi-statement=true and golang-migrate
splits files on ; without parsing SQL, so keep semicolons out of comments
and string literals. Keep every statement idempotent
(IF EXISTS/IF NOT EXISTS) so a dirty, half-applied migration can be
re-run after migrate force. Readers hitting the view inside the
drop→create window fail transiently — acceptable for the analytics_*
export views, so keep plain views off product hot paths.DROP and CREATE is silently and
permanently missing from the target table. Change an MV's SELECT with
ALTER TABLE <mv> {CLICKHOUSE_CLUSTER_CLAUSE} MODIFY QUERY <select>, which swaps
the transformation without interrupting ingestion. When the change adds
columns, ALTER the target table(s) first (ADD COLUMN IF NOT EXISTS …),
then MODIFY QUERY; those target-table ALTERs must carry the
clustered-only alter_sync template fragment so no host applies the new MV
query before its target replica has the new columns. MODIFY QUERY is only
viable for TO-table MVs (all Langfuse MVs use TO).Read these rule files in order:
rules/schema-pk-plan-before-creation.md - ORDER BY is immutablerules/schema-pk-cardinality-order.md - Column ordering in keysrules/schema-pk-prioritize-filters.md - Filter column inclusionrules/schema-types-native-types.md - Proper type selectionrules/schema-types-minimize-bitwidth.md - Numeric type sizingrules/schema-types-lowcardinality.md - LowCardinality usagerules/schema-types-avoid-nullable.md - Nullable vs DEFAULTrules/schema-partition-low-cardinality.md - Partition count limitsrules/schema-partition-lifecycle.md - Partitioning purposeCheck for:
{CLICKHOUSE_CLUSTERED_ONLY: SETTINGS alter_sync = 2} — including files with a single ALTER, since the next migration file is what breaks — and every MATERIALIZE … / UPDATE / DELETE includes the corresponding mutations_sync fragment; mutations_sync is not a substitute for alter_sync; do not normalize already-shipped migration output; both rendered modes pass prepareMigrations.test.tsCREATE OR REPLACE VIEW/TABLE or EXCHANGE TABLES in migrations (breaks NFS/EFS self-hosting); plain views are redefined via DROP VIEW IF EXISTS + CREATE VIEW in the same fileALTER TABLE <mv> MODIFY QUERY after the target-table ALTERsRead these rule files:
rules/query-join-choose-algorithm.md - Algorithm selectionrules/query-join-filter-before.md - Pre-join filteringrules/query-join-use-any.md - ANY vs regular JOINrules/query-index-skipping-indices.md - Secondary index usagerules/schema-pk-filter-on-orderby.md - Filter alignment with ORDER BYCheck for:
Read these rule files:
rules/insert-batch-size.md - Batch sizing requirementsrules/insert-mutation-avoid-update.md - UPDATE alternativesrules/insert-mutation-avoid-delete.md - DELETE alternativesrules/insert-async-small-batches.md - Async insert usagerules/insert-optimize-avoid-final.md - OPTIMIZE TABLE risksCheck for:
Structure your response as follows:
## Rules Checked
- `rule-name-1` - Compliant / Violation found
- `rule-name-2` - Compliant / Violation found
...
## Findings
### Violations
- **`rule-name`**: Description of the issue
- Current: [what the code does]
- Required: [what it should do]
- Fix: [specific correction]
### Compliant
- `rule-name`: Brief note on why it's correct
## Recommendations
[Prioritized list of changes, citing rules]| Priority | Category | Impact | Prefix | Rule Count |
|---|---|---|---|---|
| 1 | Primary Key Selection | CRITICAL | schema-pk- | 4 |
| 2 | Data Type Selection | CRITICAL | schema-types- | 5 |
| 3 | JOIN Optimization | CRITICAL | query-join- | 5 |
| 4 | Insert Batching | CRITICAL | insert-batch- | 1 |
| 5 | Mutation Avoidance | CRITICAL | insert-mutation- | 2 |
| 6 | Partitioning Strategy | HIGH | schema-partition- | 4 |
| 7 | Skipping Indices | HIGH | query-index- | 1 |
| 8 | Materialized Views | HIGH | query-mv- | 2 |
| 9 | Async Inserts | HIGH | insert-async- | 2 |
| 10 | OPTIMIZE Avoidance | HIGH | insert-optimize- | 1 |
| 11 | JSON Usage | MEDIUM | schema-json- | 1 |
schema-pk-plan-before-creation - Plan ORDER BY before table creation (immutable)schema-pk-cardinality-order - Order columns low-to-high cardinalityschema-pk-prioritize-filters - Include frequently filtered columnsschema-pk-filter-on-orderby - Query filters must use ORDER BY prefixschema-types-native-types - Use native types, not String for everythingschema-types-minimize-bitwidth - Use smallest numeric type that fitsschema-types-lowcardinality - LowCardinality for <10K unique stringsschema-types-enum - Enum for finite value sets with validationschema-types-avoid-nullable - Avoid Nullable; use DEFAULT insteadschema-partition-low-cardinality - Keep partition count 100-1,000schema-partition-lifecycle - Use partitioning for data lifecycle, not queriesschema-partition-query-tradeoffs - Understand partition pruning trade-offsschema-partition-start-without - Consider starting without partitioningschema-json-when-to-use - JSON for dynamic schemas; typed columns for knownquery-join-choose-algorithm - Select algorithm based on table sizesquery-join-use-any - ANY JOIN when only one match neededquery-join-filter-before - Filter tables before joiningquery-join-consider-alternatives - Dictionaries/denormalization vs JOINquery-join-null-handling - join_use_nulls=0 for default valuesquery-index-skipping-indices - Skipping indices for non-ORDER BY filtersquery-mv-incremental - Incremental MVs for real-time aggregationsquery-mv-refreshable - Refreshable MVs for complex joinsinsert-batch-size - Batch 10K-100K rows per INSERTinsert-async-small-batches - Async inserts for high-frequency small batchesinsert-format-native - Native format for best performanceinsert-mutation-avoid-update - ReplacingMergeTree instead of ALTER UPDATEinsert-mutation-avoid-delete - Lightweight DELETE or DROP PARTITIONinsert-optimize-avoid-final - Let background merges workThis skill activates when you encounter:
CREATE TABLE statementsALTER TABLE modificationsORDER BY or PRIMARY KEY discussionsEach rule file in rules/ contains:
© langfuse, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 31 other files in .agents/skills/clickhouse-best-practices of langfuse/langfuse.
Open the folder on GitHubat commit 389f393
Clickhouse Best Practices 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Clickhouse Best Practices this skilllangfuse/langfuse | 36k | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| Clickhouse Logs Queriessupabase/supabase | 111k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Keeper Stress AnalysisClickHouse/ClickHouse | 50k | — | ~4.7k | Automated safety check: Pass | Apache-2.0 | |
| Perf ComparisonClickHouse/ClickHouse | 50k | — | ~3.9k | Automated safety check: Notes | Apache-2.0 | |
| Patch Release CheckClickHouse/ClickHouse | 50k | — | ~4k | Automated safety check: Notes | Apache-2.0 | |
| Chdb SQLvemetric/vemetric | 395 | 1 repos | ~1.2k | Automated safety check: Pass | Apache-2.0 |
supabase/supabase
Write, review, and migrate Supabase logs queries against the ClickHouse-backed logs table (the logs.all.otel analytics endpoint).
ClickHouse/ClickHouse
Analyze ClickHouse Keeper stress-test results from play.clickhouse.com / keeperstresstests data warehouse.
ClickHouse/ClickHouse
Evaluate ClickHouse performance test results from existing CI/dashboard data or local perf.py runs.
ClickHouse/ClickHouse
Check whether ClickHouse's supported versions (last 3 majors + latest LTS) have recent stable patch releases, diagnose why the scheduled AutoReleases pipeline failed, and identify which releases…
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…
ClickHouse/ClickHouse
Bisect a ClickHouse regression using pre-built master binaries from CI.
langfuse/langfuse
Use Linear as the org's memory: reconstruct a feature's history before touching it, and leave the reasoning behind finished work in the ticket description so the next agent inherits it.
langfuse/langfuse
A skill your agent uses when editing worker/src/constants/default-model-prices.json, packages/shared/src/server/llm/types.ts, pricing tiers, tokenizer IDs, or matchPattern regexes for OpenAI…
langfuse/langfuse
Build or review Langfuse backend code. An agent skill from langfuse/langfuse.
langfuse/langfuse
Navigate Langfuse repositories, code areas, and agent skills.
langfuse/langfuse
Refactor avoidable React useEffect usage in Langfuse frontend code.
langfuse/langfuse
Append GitHub Dependabot or Snyk/code-scanning alerts to an existing vulnerability CSV after verifying their API metadata.
Works with
Categories
MUST USE when reviewing ClickHouse schemas, queries, or configurations. Clickhouse Best Practices is an agent skill from langfuse/langfuse. MUST USE when reviewing ClickHouse schemas, queries, or configurations.
Clickhouse Best Practices fits situations like: reviewing ClickHouse schemas; tasks that involve Data warehousing.
Run `npx skills add langfuse/langfuse --skill clickhouse-best-practices -a claude-code`. Or copy the skill folder (.agents/skills/clickhouse-best-practices in langfuse/langfuse) into .claude/skills/clickhouse-best-practices in your project. Claude Code loads it when a task matches its description.
Run `npx skills add langfuse/langfuse --skill clickhouse-best-practices -a codex`. Or copy the skill folder (.agents/skills/clickhouse-best-practices in langfuse/langfuse) into .agents/skills/clickhouse-best-practices in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add langfuse/langfuse --skill clickhouse-best-practices -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-best-practices, .gemini/skills/clickhouse-best-practices, .github/skills/clickhouse-best-practices and .opencode/skills/clickhouse-best-practices in your project.
SKILL.md names no scripts, command-line tools or credentials: Clickhouse Best Practices is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: clickhouse.com. This is read from the text; nothing was executed.
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.
Clickhouse Best Practices is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Clickhouse Best Practices: Clickhouse Logs Queries (supabase/supabase, 111k stars), Keeper Stress Analysis (ClickHouse/ClickHouse, 50k stars), Perf Comparison (ClickHouse/ClickHouse, 50k stars) and Patch Release Check (ClickHouse/ClickHouse, 50k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
langfuse (a GitHub organization) maintains it in langfuse/langfuse, which has 35,555 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 9, 2026.
Source: langfuse/langfuse on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.