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.
npx skills add djouallah/duckrun --skill duckrun-projectsgit clone --depth 1 https://github.com/djouallah/duckrunWrote 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.
[](https://agentmods.dev/skills/djouallah/duckrun/duckrun-projects)<a href="https://agentmods.dev/skills/djouallah/duckrun/duckrun-projects"><img src="https://agentmods.dev/badge/skills/djouallah/duckrun/duckrun-projects.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00214 | $0.08664 |
| Opus 5 | $0.00107 | $0.04332 |
| Sonnet 5 | $0.00043 | $0.01733 |
| Haiku 4.5 | $0.00021 | $0.00866 |
Grade A, and why
duckrun-projects scanned grade A with 1 finding 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 2d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
OneLake HTTP transport itself (`curl` off a Fabric notebook, so the runner's system CA How it starts
The opening of the file, as written. The whole thing — 602 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Building dbt projects with duckrun
duckrun is a dbt adapter where DuckDB executes your model SQL, delta-rs writes the
result as a Delta table, and dbt orchestrates the DAG. It wraps dbt-duckdb, so
everything dbt-duckdb gives you still works — view, seed, sources, tests,
snapshots, Python models — and table / incremental write real Delta tables. The
whole pipeline is pure Python: it runs identically on a laptop, in GitHub Actions, or
in a Fabric Python notebook.
Mental model for every model you write: the SQL runs in an in-memory DuckDB; the result
streams to delta-rs which commits it to <root_path>/<schema>/<model>; dbt then sees
that table through a delta_scan view, which is how {{ this }}, ref() and
is_incremental() resolve — including across separate dbt processes. The Delta tables
are the ONLY state; there is no database file to manage.
Install and profile
pip install duckrun # brings dbt-duckdb, duckdb, deltalake at the right pins
Do NOT separately pin duckdb or deltalake in your requirements — duckrun pins exact
versions for documented upstream-bug reasons, and overriding them is the most common
way to break a project.
# ~/.dbt/profiles.yml
my_project:
target: dev
outputs:
dev:
type: duckrun
schema: dbo
root_path: './warehouse' # local path, or s3:// gs:// abfss://
# storage_options: {} # credentials, passed straight to deltalake
Things that differ from other adapters:
threads:works, with a caveat. It's honored like any dbt adapter (default 1), but concurrent models share ONE DuckDBmemory_limit— above 1 thread duckrun pins it once for the run at the tighter share and divides the delta-rs merge pool. So raise it for many small, network-bound models; leave it at 1 for a single big merge. A microbatch model's batches always run in order regardless (they all write one table).- No database file. DuckDB is in-memory by default; don't add a
path:expecting persistence — persistence is the Delta tables. - Models land at
<root_path>/<schema>/<model>; a per-modelconfig(location=...)overrides that.
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.
- 2d ago Changed · +5 lines f0443d275007
- 7d ago First seen · 597 lines · 214 tokens per session scan A 824d92b43702
duckrun-projects is a skill published in the GitHub repository djouallah/duckrun (48 stars, last pushed 4d ago), licensed MIT. It adds 214 tokens to every session and 8,664 once invoked, about $0.0011 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
pinecone
Managed vector DB for production RAG and search.
embeddings
Vector embeddings with HNSW indexing, sql.js persistence, and hyperbolic support. 75x faster with agentic-flow integration. Use when: semantic search, pattern matching, similarity queries, knowledge retrieval. Skip when: exact text matching, simple lookups, no semantic understanding needed.
data-engineer
Build scalable data pipelines, modern data warehouses, and real-time streaming architectures. Implements Apache Spark, dbt, Airflow, and cloud-native data platforms.
similarity-search-patterns
Implement efficient similarity search with vector databases. Use when building semantic search, implementing nearest neighbor queries, or optimizing retrieval performance.
ingesting-into-data-lake
Import data into the AWS data lake from S3 files, local uploads, JDBC databases (Oracle, SQL Server, PostgreSQL, MySQL, RDS, Aurora), Amazon Redshift, Snowflake, BigQuery, DynamoDB, or existing Glue catalog tables (migration). Default target is S3 Tables; standard Iceberg on a general purpose bucket is supported where…
nornicdb-qdrant-migration
Migrate from Qdrant to NornicDB end-to-end through NornicDB's Qdrant-compatible gRPC surface. Covers connection setup, collection→database mapping, point→node mapping, the vector-config and named-vector replication, point upsert in batches, count verification, and what (deliberately) does not transfer (snapshots, HNSW…