[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:ktx":3},"\u003Ch1>\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FKaelio\u002Fktx\u002FHEAD\u002Fassets\u002Fktx-lockup.svg\" alt=\"ktx\" width=\"500\" \u002F>\n\u003C\u002Fh1>\u003Ch1>\n  The context layer for data agents\n\u003C\u002Fh1>\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@kaelio\u002Fktx\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@kaelio\u002Fktx?style=flat-square&amp;color=f97316\" alt=\"npm version\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002FKaelio\u002Fktx\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002FKaelio\u002Fktx\u002Fgraph\u002Fbadge.svg?branch=main\" alt=\"Codecov\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKaelio\u002Fktx\u002Factions\u002Fworkflows\u002Fci.yml?query=branch%3Amain\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FKaelio\u002Fktx\u002Fci.yml?branch=main&amp;label=tests&amp;style=flat-square\" alt=\"Tests\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdocs.kaelio.com\u002Fktx\u002Fdocs\u002F\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-ktx-22c55e?style=flat-square\" alt=\"Documentation\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fktxcommunity\u002Fshared_invite\u002Fzt-3y9b44m1x-LVyNNJD5nwaZHq4XS29LMQ\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fslack-join%20community-4A154B?style=flat-square&amp;logo=slack&amp;logoColor=white\" alt=\"Join the ktx Slack community\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKaelio\u002Fktx\u002Fblob\u002Fmain\u002FLICENSE\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue?style=flat-square\" alt=\"License\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.ycombinator.com\u002Fcompanies\u002Fkaelio\" rel=\"nofollow ugc noopener\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FY%20Combinator-P25-orange?style=flat-square\" alt=\"Y Combinator P25\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdocs.kaelio.com\u002Fktx\u002Fdocs\u002Fgetting-started\u002Fquickstart\" rel=\"nofollow ugc noopener\">\u003Cb>Quickstart\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fdocs.kaelio.com\u002Fktx\u002Fdocs\u002Fcli-reference\u002Fktx\" rel=\"nofollow ugc noopener\">\u003Cb>CLI Reference\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fdocs.kaelio.com\u002Fktx\u002Fdocs\u002Fcommunity\u002Fai-resources\" rel=\"nofollow ugc noopener\">\u003Cb>Agent Setup\u003C\u002Fb>\u003C\u002Fa> ·\n  \u003Ca href=\"https:\u002F\u002Fjoin.slack.com\u002Ft\u002Fktxcommunity\u002Fshared_invite\u002Fzt-3y9b44m1x-LVyNNJD5nwaZHq4XS29LMQ\" rel=\"nofollow ugc noopener\">\u003Cb>Slack\u003C\u002Fb>\u003C\u002Fa>\n\u003C\u002Fp>\u003Cp align=\"center\">\n  \u003Csub>Built and maintained by \u003Ca href=\"https:\u002F\u002Fwww.kaelio.com\" rel=\"nofollow ugc noopener\">\u003Cb>Kaelio\u003C\u002Fb>\u003C\u002Fa>\u003C\u002Fsub>\n\u003C\u002Fp>\u003Chr \u002F>\n\u003Cp>\u003Cstrong>ktx\u003C\u002Fstrong> is a self-improving context layer that teaches agents how to query your\nwarehouse accurately - from approved metric definitions, joinable columns, and\nbusiness knowledge it builds and maintains for you.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>[!NOTE]\nRun \u003Cstrong>ktx\u003C\u002Fstrong> with your own LLM API keys or a local agent sign-in — a\n\u003Cstrong>Claude Pro\u002FMax\u003C\u002Fstrong> subscription through Claude Code, or your local Codex\nauthentication. No extra usage billing from \u003Cstrong>ktx\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002F5V4TuzYVlrA\" rel=\"nofollow ugc noopener\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FKaelio\u002Fktx\u002FHEAD\u002Fassets\u002Flaunch-video-thumb.png\" alt=\"Watch the ktx launch video (1:56)\" width=\"820\" \u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FKaelio\u002Fktx\u002FHEAD\u002Fdocs-site\u002Fpublic\u002Fimages\u002Fingestion-flow.png\" alt=\"Ingestion: ktx ingests databases, BI tools, modeling code, and docs through its context engine (source connectors, context builder, reconciliation, validation) into wiki Markdown and semantic-layer YAML\" width=\"900\" \u002F>\n\u003C\u002Fp>\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FKaelio\u002Fktx\u002FHEAD\u002Fdocs-site\u002Fpublic\u002Fimages\u002Fmcp-runtime-flow.png\" alt=\"Serving: an agent queries ktx through MCP, which searches the wiki and semantic layer, returns approved metrics, and compiles them into read-only SQL run against the warehouse\" width=\"900\" \u002F>\n\u003C\u002Fp>\u003Ch2>Why ktx\u003C\u002Fh2>\n\u003Cp>General-purpose agents struggle on data tasks. They re-explore your warehouse\non every question, invent their own metric logic, and return numbers that\ndon't match approved definitions.\u003C\u002Fp>\n\u003Cp>Traditional semantic layers don't fix this. They demand constant manual\nupkeep and don't absorb the rest of your company's knowledge.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>ktx\u003C\u002Fstrong> does both, automatically:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Learns from company knowledge.\u003C\u002Fstrong> Ingests wiki content, organizes it,\nremoves duplicates, and flags contradictions for human review.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Maps the data stack.\u003C\u002Fstrong> Samples tables, captures metadata and usage\npatterns, detects joinable columns, and annotates sources so agents write\nbetter queries.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Builds a semantic layer.\u003C\u002Fstrong> Combines raw tables and high-level metrics\nthrough a join graph that automatically resolves chasm and fan traps, so\nagents fe\u003C\u002Fli>\n\u003C\u002Ful>\n",1784240407456]