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…
Query and analyze NKI kernel profile data from neuron-explorer parquet files.
$ npx skills add uw-syfi/vibesys --skill neuron-nki-profile-querying -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install uw-syfi/vibesys neuron-nki-profile-querying --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/uw-syfi/vibesys.git skills-src && mkdir -p .claude/skills && cp -r skills-src/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying .claude/skills/neuron-nki-profile-querying && 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 "neuron-nki-profile-querying" agent skill from https://github.com/uw-syfi/vibesys/tree/main/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying into .claude/skills/neuron-nki-profile-querying/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neuron-nki-profile-querying", 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/uw-syfi/vibesys/tree/main/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-queryingType 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 uw-syfi/vibesys --skill neuron-nki-profile-querying -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install uw-syfi/vibesys neuron-nki-profile-querying --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/uw-syfi/vibesys.git skills-src && mkdir -p .agents/skills && cp -r skills-src/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying .agents/skills/neuron-nki-profile-querying && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "neuron-nki-profile-querying" agent skill from https://github.com/uw-syfi/vibesys/tree/main/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying into .agents/skills/neuron-nki-profile-querying/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neuron-nki-profile-querying", 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 uw-syfi/vibesys --skill neuron-nki-profile-querying -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install uw-syfi/vibesys neuron-nki-profile-querying --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/uw-syfi/vibesys.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying .cursor/skills/neuron-nki-profile-querying && 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 "neuron-nki-profile-querying" agent skill from https://github.com/uw-syfi/vibesys/tree/main/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying into .cursor/skills/neuron-nki-profile-querying/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neuron-nki-profile-querying", 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/uw-syfi/vibesys.git --path resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying--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 uw-syfi/vibesys --skill neuron-nki-profile-querying -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install uw-syfi/vibesys neuron-nki-profile-querying --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/uw-syfi/vibesys.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying .gemini/skills/neuron-nki-profile-querying && 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 "neuron-nki-profile-querying" agent skill from https://github.com/uw-syfi/vibesys/tree/main/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying into .gemini/skills/neuron-nki-profile-querying/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neuron-nki-profile-querying", 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 uw-syfi/vibesys neuron-nki-profile-queryingInstalls 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 uw-syfi/vibesys --skill neuron-nki-profile-querying -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/uw-syfi/vibesys.git skills-src && mkdir -p .github/skills && cp -r skills-src/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying .github/skills/neuron-nki-profile-querying && 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 "neuron-nki-profile-querying" agent skill from https://github.com/uw-syfi/vibesys/tree/main/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying into .github/skills/neuron-nki-profile-querying/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neuron-nki-profile-querying", 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 uw-syfi/vibesys --skill neuron-nki-profile-querying -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install uw-syfi/vibesys neuron-nki-profile-querying --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/uw-syfi/vibesys.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying .opencode/skills/neuron-nki-profile-querying && 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 "neuron-nki-profile-querying" agent skill from https://github.com/uw-syfi/vibesys/tree/main/resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying into .opencode/skills/neuron-nki-profile-querying/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "neuron-nki-profile-querying", 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.
neuron-nki-profile-queryingQuery and analyze NKI kernel profile data from neuron-explorer parquet files.
Neuron Nki Profile Querying is an agent skill from uw-syfi/vibesys. Query and analyze NKI kernel profile data from neuron-explorer parquet files. Supports SQL queries via the neuron-explorer API and Python on parquet for advanced analysis. Works locally on trainium with NEFF/NTFF files on disk. Querying: start neuron-explorer, ingest profiles, run SQL against tables (Summary, Instruction, DmaPacket, DmaPacketAggregated, etc.), explore schemas. Use when user says "query profile", "run SQL on profile", "start neuron-explorer", or has NEFF+NTFF files and wants to query them…
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 37 other files, including reference files (for example `references/example-bounds-analysis.md`, `references/getting-started.md` and `references/investigations/dma_efficiency.md`).
It sits in Databases, covering SQL and DataFrames. It works with SQL and Python. The repository describes itself as: Can AI Agents Build Bespoke Systems? The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 999938a. 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.
Shell commands in SKILL.md call:
curlpython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From 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.
Neuron Nki Profile Querying loads about 4.3k tokens when it runs, and up to ~47k if it reads all its reference files. Until then it costs about 225 tokens; SKILL.md has 1,340 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 uw-syfi/vibesys at commit 999938a, republished under its MIT licence (© uw-syfi). 1,340 words, ~4,271 tokens.
.claude/skills/neuron-nki-profile-querying/SKILL.md (or your agent's skills folder). This skill also uses 34 other files; get the full folder from GitHub.Run SQL queries against NKI kernel profile data using neuron-explorer view.
This ingests NEFF+NTFF into parquet and exposes a DuckDB-backed API server
on localhost. No deployment, no remote service — just the CLI and curl.
For more advanced analysis, use python on parquet to compute performance bounds and investigate precise inefficiencies within arbitrary execution intervals.
What you need: A compiled NEFF file and a captured NTFF trace file.
These come from /neuron-nki-profiling or from running a kernel with the right
env vars and neuron-explorer capture.
# Ingest and start API server (no web UI)
neuron-explorer view \
-n ./kernel.neff \
-s ./profile.ntff \
--data-path ~/.local/share/neuron-profile \
--display-name my-kernel \
--disable-ui &
# Wait for server
sleep 10
# Query
curl -s -X POST http://localhost:3002/api/v1/db/my-kernel/_search \
-H 'Content-Type: application/json' \
-d '{"type":"databaseExplorerQuery","tableName":"Summary","query":"SELECT total_time, mfu_estimated_percent, tensor_engine_active_time_percent, dma_active_time_percent FROM Summary"}'That's it. Ingest, serve, query.
neuron-explorer installed (comes with AL2023 DLAMI or aws-neuronx-tools)Check availability:
which neuron-explorer && neuron-explorer --versionIf not found, check /opt/aws/neuron/bin/neuron-explorer.
Note: This step is specific to NKI kernel development. If you are querying a profile that was generated outside of an NKI workflow, skip to Step 1.
Disclaimer: Query results are only as good as the profile. If the NEFF/NTFF were captured without the right env vars, key tables (DmaPacket, DmaPacketAggregated) may be empty and source-level attribution will be missing.
Check whether the profile has the data you need:
# After ingesting (Step 2), check for DMA packet data
curl -s -X POST http://localhost:3002/api/v1/db/${PROFILE_NAME}/_search \
-H 'Content-Type: application/json' \
-d '{"type":"databaseExplorerQuery","tableName":"DmaPacket","query":"SELECT COUNT(*) as cnt FROM DmaPacket"}'If cnt is 0 or the table is missing, the profile was captured without DGE
notifications. If bir_debug_info_source_location is NULL on all Instruction
rows, the NEFF was compiled without debug info.
To re-profile for best results, set these env vars in the kernel script before any neuron imports, then re-run and re-capture:
import os
os.environ["XLA_IR_DEBUG"] = "1"
os.environ["XLA_HLO_DEBUG"] = "1"
os.environ["NEURON_FRAMEWORK_DEBUG"] = "1"
os.environ["NEURON_RT_VISIBLE_CORES"] = ... # Restrict available cores when running experiments in parallel.
os.environ["NEURON_RT_INSPECT_ENABLE"] = "1"
os.environ["NEURON_RT_INSPECT_DEVICE_PROFILE"] = "1"
os.environ["NEURON_RT_INSPECT_SYSTEM_PROFILE"] = "0"
os.environ["NEURON_RT_INSPECT_OUTPUT_DIR"] = ... # This is for the NEFF generation if needed. NTFF will go to the -s capture path in the next command. Then re-capture with DGE notifications enabled:
NEFF_PATH=$(find ./output -name "*.neff" | head -1)
NEURON_RT_ENABLE_DGE_NOTIFICATIONS=1 neuron-explorer capture \
-n "$NEFF_PATH" \
-s profile.ntff \
--profile-nth-exec=2With --profile-nth-exec=2, the output file is profile_exec_2.ntff (not
profile.ntff), written to the directory specified by the -s flag.
| Env Var | What it enables |
|---|---|
XLA_IR_DEBUG / XLA_HLO_DEBUG | HLO-level debug info in NEFF |
NEURON_FRAMEWORK_DEBUG | Framework-level source attribution |
NEURON_RT_ENABLE_DGE_NOTIFICATIONS | DMA packet tables (DmaPacket, DmaPacketAggregated) |
NEURON_RT_INSPECT_DEVICE_PROFILE | Device-level profiling in NEFF output |
If the existing profile has the data you need, skip this step entirely.
Another thing to look out for is running torch functions on device like randomnly generating inputs. This will be fused into the kernel execution and obfuscate it's profile. Move those commands off device if you want to isolate kernel execution.
If you want to run SQL queries against the Neuron Explorer DuckDB engine, use the view command with --disable-ui to start the server.
Set variables:
NEFF_PATH=<resolved neff path>
NTFF_PATH=<resolved ntff path>
PROFILE_NAME=<descriptive name, e.g. "my-matmul">
NE_DATA_PATH=~/.local/share/neuron-profileCheck if the neuron-explorer server is already running:
curl -s http://localhost:3002/api/v1/healthIf the server is already running or if you are running python directly on the parquet, use --ingest-only in the following command instead of --disable-ui.
neuron-explorer view \
-n "$NEFF_PATH" \
-s "$NTFF_PATH" \
--data-path "$NE_DATA_PATH" \
--display-name "$PROFILE_NAME" \
--disable-ui \
> /tmp/neuron-explorer-${PROFILE_NAME}.log 2>&1 &
NE_PID=$!
echo "neuron-explorer started (PID: $NE_PID), waiting for API..."The command may fail on an conflicting port from the existing server but the ingestion
may have still succeeded. If so, check for Processing for ... is complete before the error
message or rerun with --ingest-only.
Wait for API:
for i in $(seq 1 60); do
if curl -s http://localhost:3002/api/v1/health 2>/dev/null | grep -q healthy; then
echo "API server ready"
break
fi
sleep 1
doneBefore writing any queries, check the table docs in references/schema/ for
interpretive guidance on the most commonly used tables. For any table not
covered there, query its schema directly from neuron-explorer using the following commands:
curl -s -X POST http://localhost:3002/api/v1/db/${PROFILE_NAME}/_search \
-H 'Content-Type: application/json' \
-d '{"type":"tableSchema","tableName":"Instruction"}' | python3 -m json.toolList all available tables:
curl -s -X POST http://localhost:3002/api/v1/db/${PROFILE_NAME}/_search \
-H 'Content-Type: application/json' \
-d '{"type": "listDbFiles"}' | python3 -m json.toolUse databaseExplorerQuery for arbitrary SQL (SELECT only).
Summary metrics — which engine is the bottleneck?
curl -s -X POST http://localhost:3002/api/v1/db/${PROFILE_NAME}/_search \
-H 'Content-Type: application/json' \
-d '{"type":"databaseExplorerQuery","tableName":"Summary","query":"SELECT total_time, mfu_estimated_percent, tensor_engine_active_time_percent, vector_engine_active_time_percent, dma_active_time_percent, hbm_read_bytes, hbm_write_bytes FROM Summary"}' | python3 -m json.toolInstruction breakdown — what is each engine doing and waiting on?
curl -s -X POST http://localhost:3002/api/v1/db/${PROFILE_NAME}/_search \
-H 'Content-Type: application/json' \
-d '{"type":"databaseExplorerQuery","tableName":"Instruction","query":"SELECT engine, opcode, COUNT(*) as cnt, SUM(duration_ns) as total_dur_ns, SUM(evt_wait_time_ns) as total_evt_wait_ns FROM Instruction GROUP BY engine, opcode ORDER BY total_dur_ns DESC"}' | python3 -m json.toolNKI source line hotspots — which lines of the kernel are slowest?
curl -s -X POST http://localhost:3002/api/v1/db/${PROFILE_NAME}/_search \
-H 'Content-Type: application/json' \
-d '{"type":"databaseExplorerQuery","tableName":"Instruction","query":"SELECT bir_debug_info_source_location, engine, opcode, COUNT(*) as cnt, SUM(duration_ns) as total_dur_ns FROM Instruction WHERE bir_debug_info_source_location IS NOT NULL GROUP BY bir_debug_info_source_location, engine, opcode ORDER BY total_dur_ns DESC LIMIT 10"}' | python3 -m json.toolFor SQL queries without the API server, use DuckDB's Python bindings directly on the parquet files. After ingestion (Step 1), the data lives at:
<data-path>/profiles/global/<display-name>@latest/<Table>.parquetimport duckdb
NE_DATA_PATH = "~/.local/share/neuron-profile"
PROFILE = "my-kernel"
PARQUET_DIR = f"{NE_DATA_PATH}/profiles/global/{PROFILE}@latest"
con = duckdb.connect()
# Load tables directly from parquet
con.execute(f"CREATE VIEW Instruction AS SELECT * FROM '{PARQUET_DIR}/Instruction.parquet'")
con.execute(f"CREATE VIEW DmaPacket AS SELECT * FROM '{PARQUET_DIR}/DmaPacket.parquet'")
# Example: measure LDWEIGHTS/MATMUL temporal overlap
result = con.execute("""
SELECT
CASE WHEN lw.end_ts <= mm.start_ts THEN 'lw_before'
WHEN lw.start_ts >= mm.end_ts THEN 'lw_after'
ELSE 'overlap' END as rel,
COUNT(*) as cnt
FROM Instruction mm
JOIN Instruction lw ON mm.bir_id = lw.bir_id
WHERE mm.opcode = 'MATMUL' AND lw.opcode = 'LDWEIGHTS'
AND mm.tensor_instruction_type = 'REGULAR'
AND lw.tensor_instruction_type = 'REGULAR'
GROUP BY rel
""").fetchdf()
print(result)For analyses that require Python computation — interval merges, custom metrics, numpy operations, or cross-table joins with arbitrary logic — load the parquet files directly with pandas.
import pandas as pd, numpy as np, os
NE = os.path.expanduser("~/.local/share/neuron-profile/profiles/global")
profile = "my-kernel"
d = f"{NE}/{profile}@latest"
# Load tables
summary = pd.read_parquet(f"{d}/Summary.parquet").iloc[0]
inst = pd.read_parquet(f"{d}/Instruction.parquet")
active = pd.read_parquet(f"{d}/ActiveTime.parquet")
metadata = pd.read_parquet(f"{d}/Metadata.parquet").iloc[0]
dma_pkts = pd.read_parquet(f"{d}/DmaPacket.parquet")
dma_agg = pd.read_parquet(f"{d}/DmaPacketAggregated.parquet")
tensors = pd.read_parquet(f"{d}/TensorInfo.parquet")
flow = pd.read_parquet(f"{d}/Flow.parquet")This is the approach used by the performance bounds computation and all investigations in the Profile Analysis workflow.
Only claim what the data shows. Profile data is precise but narrow — it tells you what happened, not always why.
references/schema/
before building conclusions on a field you haven't validated.ActiveTime
for wall-clock comparisons.DmaPacketAggregated is missing
or bir_debug_info_source_location is mostly NULL, the query results are
incomplete — re-profile before interpreting.kill $NE_PID 2>/dev/nullIf you are asked for analysis of the profile, follow this workflow. All logic — bound definitions, gap interpretation, and investigation selection — lives in performance-bounds.md.
Follow the "The bounds" section of performance-bounds.md to compute all three families (memory, compute, pipeline). These require Python on parquet (Step 3c).
Follow "Reading the gaps" in performance-bounds.md. Compute each
consecutive-pair gap within the memory and compute families, plus the
pipeline gap. Report all gaps and their sizes relative to total_time.
Follow "From bounds to investigations" in performance-bounds.md. Use the bottleneck engine and gap sizes to select which investigation groups to run. Each investigation has a Step 1 (detect and quantify) and Step 2 (localize to NKI source lines). Run all relevant investigations — a kernel typically has multiple active inefficiencies.
Present a single summary:
Order the presented inefficiencies and investigation findings according to it's relevance to the bottlenecks and the measured gaps.
After an optimization step or attempt, investigate the new profile to identify exactly what improved or regressed. Follow the full process and present a side by side report of all of the bounds and engine times as well as the new investigation findings. Highlight changes but do not over-interpret, only relay what the evidence shows. Static code analysis is faulty, you will be tempted to over-intepret the causes and effects, DON'T (unless EXPLICITELY) asked to.
For end-to-end examples of profile-guided optimization, see:
| Investigation | What it covers |
|---|---|
| Optimizing-Matmul | End-to-end bounds analysis of a 4096x4096 bf16 matmul across three versions: V0 (naive tiling, DMA-bound), V1 (free-dimension blocking, reduces reloads, flips bottleneck to TE), V2 (row loads, near-peak TE utilization). Shows bounds tables, gap analysis, and investigation results at each step. |
All profiles sharing the same --data-path are served by one server. Each
profile is queried by its --display-name.
NE_DATA_PATH=~/.local/share/neuron-profile
neuron-explorer view -n $NEFF_A -s $NTFF_A --data-path "$NE_DATA_PATH" --display-name kernel-a --disable-ui &
neuron-explorer view -n $NEFF_B -s $NTFF_B --data-path "$NE_DATA_PATH" --display-name kernel-b --disable-ui &
# Query either through same server
curl localhost:3002/api/v1/db/kernel-a/_search ...
curl localhost:3002/api/v1/db/kernel-b/_search ...For batch ingestion without a server, use --ingest-only instead of
--disable-ui. It writes parquet and exits. Any future server on the same
data-path discovers the ingested profiles.
Parquet lands at <data-path>/profiles/global/<display-name>@latest/.
If port 3002 is already in use, ingestion still succeeds — parquet is written to disk before the server attempts to bind.
lsof -i :3002 | head -5--api-server-port 4002 (or any free port).neuron-explorer not neuron-profile for all capture and view commands.NEURON_RT_ENABLE_DGE_NOTIFICATIONS=1 in the
environment before neuron-explorer capture. Do NOT rely on the CLI flag —
use the env var directly.--data-path explicitly.--display-name becomes the profile identifier in API URLs.--disable-ui skips the web UI (port 3001) but starts the API server (port 3002).--ingest-only writes parquet and exits — no server at all.| Skill | Purpose |
|---|---|
/neuron-nki-profiling | Capture NEFF/NTFF on hardware |
/neuron-nki-writing | Write NKI kernels |
/neuron-nki-debugging | Debug compilation errors |
/neuron-nki-docs | Look up API documentation |
© uw-syfi, MIT. 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 34 other files (references) in resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying of uw-syfi/vibesys.
Open the folder on GitHubat commit 999938a
Neuron Nki Profile Querying 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 |
|---|---|---|---|---|---|---|
| Neuron Nki Profile Querying this skilluw-syfi/vibesys | 108 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Chdb SQLvemetric/vemetric | 395 | 1 repos | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Kolokoloai/kolo | 525 | — | ~1.2k | Automated safety check: Pass | None | |
| SQL Schema Policy Validatorrominirani/antigravity-skills | 592 | — | ~264 | Automated safety check: Pass | None | |
| Analyzing Dataastronomer/agents | 451 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Modelersidequery/sidemantic | 129 | — | ~4.2k | Automated safety check: Pass | Apache-2.0 |
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…
koloai/kolo
Kolo is a text-based Python debugger that captures every executed function, return value, local variable, HTTP request, and SQL query into greppable trace files.
rominirani/antigravity-skills
Validates SQL schema files for compliance with internal safety and naming policies.
astronomer/agents
Queries the data warehouse with SQL and answers business questions about data.
sidequery/sidemantic
Build, validate, and manage semantic models using Sidemantic.
apache/datafusion-python
A skill your agent uses when the user is writing datafusion-python (Apache DataFusion Python bindings) DataFrame or SQL code.
uw-syfi/vibesys
This skill guides using the cli to generate NKI kernel profiles (NEFF + NTFF pairs) to analyze performance on Neuron hardware.
uw-syfi/vibesys
This skill guides debugging NKI compilation errors on Neuron hardware.
uw-syfi/vibesys
Research NKI documentation for API lookups, tutorials, error codes, architecture, and optimization guides.
uw-syfi/vibesys
Guide for writing and modifying NKI kernels. An agent skill from uw-syfi/vibesys.
uw-syfi/vibesys
Triage the open pull requests of the VibeSys repository. An agent skill from uw-syfi/vibesys.
uw-syfi/vibesys
Prepare and open VibeSys pull requests from local repo changes.
Categories
Query and analyze NKI kernel profile data from neuron-explorer parquet files. Neuron Nki Profile Querying is an agent skill from uw-syfi/vibesys. Query and analyze NKI kernel profile data from neuron-explorer parquet files.
Neuron Nki Profile Querying fits situations like: user says query profile; run SQL on profile; start neuron-explorer; has NEFF+NTFF files and wants to query them.
Run `npx skills add uw-syfi/vibesys --skill neuron-nki-profile-querying -a claude-code`. Or copy the skill folder (resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying in uw-syfi/vibesys) into .claude/skills/neuron-nki-profile-querying in your project. Claude Code loads it when a task matches its description.
Run `npx skills add uw-syfi/vibesys --skill neuron-nki-profile-querying -a codex`. Or copy the skill folder (resources/skills/neuron-agentic-development/skills/neuron-nki-profile-querying in uw-syfi/vibesys) into .agents/skills/neuron-nki-profile-querying 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 uw-syfi/vibesys --skill neuron-nki-profile-querying -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/neuron-nki-profile-querying, .gemini/skills/neuron-nki-profile-querying, .github/skills/neuron-nki-profile-querying and .opencode/skills/neuron-nki-profile-querying in your project.
Going by SKILL.md and its folder, Neuron Nki Profile Querying needs the command-line tools its instructions call (curl and python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. 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.
Neuron Nki Profile Querying is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 43k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Neuron Nki Profile Querying: Chdb SQL (vemetric/vemetric, 395 stars), Kolo (koloai/kolo, 525 stars), SQL Schema Policy Validator (rominirani/antigravity-skills, 592 stars) and Analyzing Data (astronomer/agents, 451 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
uw-syfi (a GitHub organization) maintains it in uw-syfi/vibesys, which has 108 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 11, 2026.
Source: uw-syfi/vibesys on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.