lookml_ingest

lookml_ingest is a skill for Claude Code, Codex from Kaelio/ktx. It costs 63 tokens per session (2,749 once invoked), scanned A, original, Apache-2.0.

A mapping guide for turning LookML, the modeling language used by Looker, into sources for the ktx semantic layer, which gives data consistent names and meanings.

In plain words
What is it for?
It helps convert LookML views and explores, including derived tables, joins, filters, measures, dimensions, and column types.
Why use it?
It removes the need to work out manually how LookML views, measures, joins, filters, and data types should be represented in ktx.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit It helps convert LookML views and explores, including derived tables, joins, filters, measures, dimensions, and column types.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/kaelio/ktx/lookml_ingest
About the project

Kaelio/ktx is a context layer that helps AI agents query analytical databases using company knowledge, approved metrics, table metadata, and relationships between columns. Data teams use it to make warehouse queries more accurate and consistent with their organization's definitions. Its catalogue add-ons teach agents how to use ktx and its data-querying interfaces.

Kaelio/ktx · 1,581 stars · on GitHub · docs.kaelio.com

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add Kaelio/ktx --skill lookml_ingest
Clone the repo
git clone --depth 1 https://github.com/Kaelio/ktx

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for lookml_ingest

README.md
[![agentmods](https://agentmods.dev/badge/skills/kaelio/ktx/lookml_ingest/github.svg)](https://agentmods.dev/skills/kaelio/ktx/lookml_ingest)
Your own site
<a href="https://agentmods.dev/skills/kaelio/ktx/lookml_ingest"><img src="https://agentmods.dev/badge/skills/kaelio/ktx/lookml_ingest/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for lookml_ingest

Your own site · 80×15
<a href="https://agentmods.dev/skills/kaelio/ktx/lookml_ingest"><img src="https://agentmods.dev/badge/skills/kaelio/ktx/lookml_ingest.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 63 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,749 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00063 $0.02749
Opus 5 $0.00032 $0.01375
Sonnet 5 $0.00013 $0.00550
Haiku 4.5 $0.00006 $0.00275

Measured 10d ago against content hash 6e63c8945046, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

lookml_ingest scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

packages/cli/src/skills/lookml_ingest/SKILL.md · 220 lines

How it starts

The opening of the file, as written. The whole thing — 220 lines — stays where its author put it; the contents beside it link to each section on GitHub.

LookML to ktx Semantic Layer

LookML views map to SL sources, measure: to measures, explore: { join: } to the join graph. This skill lays out the mapping and the three capture shapes.

Mapping table

LookML ktx form Notes
view: X { sql_table_name: …; measure:/dimension:/join: } Overlay named X with measures, computed-only columns, column_overrides, joins, segments Manifest-backed; inherit grain/columns
view: X { derived_table: { sql: … } } Standalone with top-level sql:, explicit grain: + columns: No manifest entry exists
view: X { sql_always_where: <p> } Standalone with sql: SELECT * FROM <base> WHERE <p> Enforcement, not opt-in
explore: { join: Y { sql_on: …; relationship: … } } joins: entry { to: Y, on: "<local> = Y.<col>", relationship: … } On the overlay or standalone
conditionally_filter / always_filter segments: [{ name, expr }] Callers reference by name
Manifest entry _schema/*.yaml Never edit - auto-imported

Type map: date/datetime/timestamptime; yesnoboolean; numbernumber; stringstring. Ignore drill_fields: (UI only).

Decision rules

LookML writes target the run connection directly. Unlike Looker runtime ingestion, the LookML adapter is configured on the warehouse ktx connection, so do not look for targetWarehouseConnectionId and do not route through a mapping array.

Before any SL write, inspect the WorkUnit notes.

If notes contain:

[LOOKML SL WRITES DISALLOWED]
reason: lookml_connection_mismatch
...
[/LOOKML SL WRITES DISALLOWED]

this is a hard gate. The model's declared Looker connection: does not match the warehouse connection's configured expectedLookerConnectionName. Continue wiki extraction and context candidates. Do not call sl_write_source or sl_edit_source for that WorkUnit. The runner also removes those write tools for this WorkUnit; treat the missing tools as expected. Preserve the mismatch reason in any emit_unmapped_fallback you create.

Read the full file on GitHub · 220 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 10d ago First seen · 220 lines · 63 tokens per session scan A 6e63c8945046

Subscribe to this mod's changes

lookml_ingest is a skill published in the GitHub repository Kaelio/ktx (1,581 stars, last pushed 6d ago), licensed Apache-2.0. It adds 63 tokens to every session and 2,749 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

migrating-ai-sdk-to-common-ai

Migrates Airflow projects from airflow-ai-sdk to apache-airflow-providers-common-ai 0.4.0+. Use when replacing airflow-ai-sdk with the official Airflow AI provider - migrating LLM decorators (@task.llm, @task.agent, @task.llmbranch, @task.embed), switching from model strings/objects to connection-based LLM…

astronomer/agents · 151 tokens

airflow

Queries, manages, and troubleshoots Apache Airflow using the af CLI. Use when working with anything related to Airflow - a DAG, a DAG run, a task log, an import or parse error, a broken DAG, or any Airflow operation. Covers listing and triggering DAGs, retrying runs, reading task logs, diagnosing failures, debugging…

astronomer/agents · 186 tokens

cosmos-dbt-core

Turns a dbt Core project into an Airflow DAG/TaskGroup using Astronomer Cosmos. Use turning a dbt Core project into an Airflow DAG or TaskGroup with Astronomer Cosmos. Before implementing, verify dbt engine, warehouse, Airflow version, execution environment, DAG vs TaskGroup, and manifest availability.

astronomer/agents · 73 tokens

creating-openlineage-extractors

Create custom OpenLineage extractors for Airflow operators. Use when the user needs lineage from unsupported or third-party operators, wants column-level lineage, or needs complex extraction logic beyond what inlets/outlets provide.

astronomer/agents · 51 tokens

delegating-to-otto

Drives Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work. Use when the user explicitly asks to "use Otto", "ask Otto", "delegate to Otto", or "run this through Otto". Also offer Otto for Airflow 2 → 3 migrations and upgrade planning even when not named — Otto's…

astronomer/agents · 208 tokens

annotating-task-lineage

Annotate Airflow tasks with data lineage using inlets and outlets. Use when the user wants to add lineage metadata to tasks, specify input/output datasets, or enable lineage tracking for operators without built-in OpenLineage extraction.

astronomer/agents · 51 tokens