Skip to content

Commit 646dead

Browse files
author
Quack Mc Docs
committed
chore: update Community Extensions docs
1 parent 6f27078 commit 646dead

25 files changed

+366
-11
lines changed

_includes/list_of_community_extensions.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
33
| [a5]({% link community_extensions/extensions/a5.md %}) | [<span class=github>GitHub</span>](https://github.com/query-farm/a5) | Hierarchical pentagonial indexing for geospatial data that is equal-area and millimeter accurate. |
44
| [adbc_scanner]({% link community_extensions/extensions/adbc_scanner.md %}) | [<span class=github>GitHub</span>](https://github.com/query-farm/adbc_scanner) | An ADBC client extension for DuckDB that can access ADBC provided data sources. |
5+
| [agent_data]({% link community_extensions/extensions/agent_data.md %}) | [<span class=github>GitHub</span>](https://github.com/axsaucedo/agent_data_duckdb) | A DuckDB extension written in Rust for querying, analysing and inspecting AI coding agents history. Read conversations, plans, todos, history, and usage stats directly from your local agent data directories. |
56
| [airport]({% link community_extensions/extensions/airport.md %}) | [<span class=github>GitHub</span>](https://github.com/query-farm/airport) | The Airport extension brings Arrow Flight support to DuckDB, enabling DuckDB to query, modify, and store data from Arrow Flight servers. |
67
| [aixchess]({% link community_extensions/extensions/aixchess.md %}) | [<span class=github>GitHub</span>](https://github.com/thomas-daniels/aix) | Efficiently query large chess game collections |
78
| [anndata]({% link community_extensions/extensions/anndata.md %}) | [<span class=github>GitHub</span>](https://github.com/honicky/anndata-duckdb-extension) | Read AnnData (.h5ad) files for single-cell genomics data analysis, with support for local and remote (HTTP/HTTPS/S3) files |
@@ -92,6 +93,7 @@
9293
| [otlp]({% link community_extensions/extensions/otlp.md %}) | [<span class=github>GitHub</span>](https://github.com/smithclay/duckdb-otlp) | Read OpenTelemetry metrics, logs and traces from JSON or protobuf with a ClickHouse-inspired schema |
9394
| [parser_tools]({% link community_extensions/extensions/parser_tools.md %}) | [<span class=github>GitHub</span>](https://github.com/hotdata-dev/duckdb_extension_parser_tools) | Exposes functions for parsing referenced tables and usage context from SQL queries using DuckDB's native parser. |
9495
| [pdal]({% link community_extensions/extensions/pdal.md %}) | [<span class=github>GitHub</span>](https://github.com/ahuarte47/duckdb-pdal) | Extension that adds support for manipulating point cloud data using SQL. |
96+
| [polyglot]({% link community_extensions/extensions/polyglot.md %}) | [<span class=github>GitHub</span>](https://github.com/tobilg/duckdb-polyglot) | Transpile SQL from 33 different dialects into DuckDB SQL |
9597
| [prql]({% link community_extensions/extensions/prql.md %}) | [<span class=github>GitHub</span>](https://github.com/ywelsch/duckdb-prql) | Support for PRQL, the Pipelined Relational Query Language |
9698
| [psql]({% link community_extensions/extensions/psql.md %}) | [<span class=github>GitHub</span>](https://github.com/ywelsch/duckdb-psql) | Support for PSQL, a piped SQL dialect for DuckDB |
9799
| [pst]({% link community_extensions/extensions/pst.md %}) | [<span class=github>GitHub</span>](https://github.com/intellekthq/duckdb-pst) | Read Microsoft PST files with rich schemas for common MAPI types (emails, contacts, appointments, tasks) |

community_extensions/extensions/a5.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ extension:
2121
repo:
2222
github: query-farm/a5
2323
ref: b24e35cb1ab875f7cb48d698293d0652f3c135d1
24+
ref_next: c26e0768e654a17b3f656a07c64f9472586d043f
2425

2526
extension_star_count: 11
2627
extension_star_count_pretty: 11
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
---
2+
warning: DO NOT CHANGE THIS MANUALLY, THIS IS GENERATED BY https://github/duckdb/community-extensions repository, check README there
3+
title: agent_data
4+
excerpt: |
5+
DuckDB Community Extensions
6+
A DuckDB extension written in Rust for querying, analysing and inspecting AI coding agents history. Read conversations, plans, todos, history, and usage stats directly from your local agent data directories.
7+
8+
extension:
9+
name: agent_data
10+
description: A DuckDB extension written in Rust for querying, analysing and inspecting AI coding agents history. Read conversations, plans, todos, history, and usage stats directly from your local agent data directories.
11+
version: 0.1.0
12+
language: Rust
13+
build: cargo
14+
license: MIT
15+
excluded_platforms: "wasm_mvp;wasm_eh;wasm_threads;linux_amd64_musl"
16+
requires_toolchains: "rust"
17+
maintainers:
18+
- axsaucedo
19+
20+
repo:
21+
github: axsaucedo/agent_data_duckdb
22+
ref: 1348a6d1a25ada29f78087e1469dfbff3bb095e1
23+
24+
docs:
25+
hello_world: |
26+
-- How many conversations have I had with Claude?
27+
SELECT COUNT(DISTINCT session_id) AS sessions,
28+
COUNT(*) AS total_messages
29+
-- Calling the functions without params defaults to Claude folder.
30+
FROM read_conversations();
31+
32+
-- What did I work on this week?
33+
SELECT date, message_count, tool_call_count
34+
FROM read_stats()
35+
ORDER BY date DESC
36+
LIMIT 7;
37+
38+
-- Which tools does github copilot use most?
39+
SELECT tool_name, COUNT(*) AS uses
40+
FROM read_conversations('~/.copilot')
41+
WHERE tool_name IS NOT NULL
42+
GROUP BY tool_name
43+
ORDER BY uses DESC
44+
LIMIT 10;
45+
46+
-- What are my active todos in my custom claude path?
47+
SELECT content, status
48+
FROM read_todos('~/work_folder/.claude')
49+
WHERE status != 'completed'
50+
ORDER BY item_index;
51+
52+
-- Compare activity across Claude and Copilot
53+
SELECT source, COUNT(DISTINCT session_id) AS sessions, COUNT(*) AS messages
54+
FROM (
55+
SELECT * FROM read_conversations(path='~/.claude')
56+
UNION ALL
57+
SELECT * FROM read_conversations(path='~/.copilot')
58+
)
59+
GROUP BY source;
60+
61+
extended_description: |
62+
63+
**Supported agents:** [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (`~/.claude`) and [GitHub Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli) (`~/.copilot`).
64+
65+
> OpenAI Codex and Gemini CLI Coming Soon™.
66+
67+
Written in 🦀 Rust.
68+
69+
### Default Behavior
70+
71+
When called **without arguments**, each function reads from its provider's default path:
72+
73+
| Function | Default path | Detected as |
74+
|----------|-------------|-------------|
75+
| `read_conversations()` | `~/.claude` | Claude Code |
76+
| `read_plans()` | `~/.claude` | Claude Code |
77+
| `read_todos()` | `~/.claude` | Claude Code |
78+
| `read_history()` | `~/.claude` | Claude Code |
79+
| `read_stats()` | `~/.claude` | Claude Code |
80+
81+
To read Copilot data, pass the path explicitly:
82+
83+
```sql
84+
FROM read_conversations(path='~/.copilot');
85+
```
86+
87+
### Available Functions
88+
89+
All functions accept two optional parameters:
90+
- **`path`** — data directory path (default: `~/.claude`). Auto-detected from folder structure (`projects/` → Claude, `session-state/` → Copilot).
91+
- **`source`** — explicit provider override: `'claude'` or `'copilot'`. Use when auto-detection fails or for non-standard directory layouts.
92+
93+
Every table includes a **`source`** column (`'claude'` or `'copilot'`) as the first column.
94+
95+
> `read_conversations([path (opt)], [source (opt)])`
96+
97+
## Join Keys
98+
99+
Tables can be joined within the same source:
100+
101+
```sql
102+
-- Conversations ↔ History (via session_id)
103+
SELECT c.*, h.display
104+
FROM read_conversations(path='~/.claude') c
105+
JOIN read_history(path='~/.claude') h ON c.session_id = h.session_id;
106+
107+
-- Cross-source: always filter by source
108+
SELECT * FROM (
109+
SELECT * FROM read_conversations(path='~/.claude')
110+
UNION ALL
111+
SELECT * FROM read_conversations(path='~/.copilot')
112+
) WHERE source = 'copilot';
113+
```
114+
115+
| Join | Left Key | Right Key | Notes |
116+
|------|----------|-----------|-------|
117+
| conversations <-> history | `session_id` | `session_id` | Same source only |
118+
| conversations <-> todos | `session_id` | `session_id` | Same source only |
119+
| conversations <-> plans | `slug` | `plan_name` | Claude only |
120+
| conversations <-> history | `project_path` | `project` | Claude only |
121+
122+
For full documentation, see the [GitHub repository](https://github.com/axsaucedo/duckdb-claude-ext).
123+
124+
extension_star_count: 0
125+
extension_star_count_pretty: 0
126+
extension_download_count: null
127+
extension_download_count_pretty: n/a
128+
image: '/images/community_extensions/social_preview/preview_community_extension_agent_data.png'
129+
layout: community_extension_doc
130+
---
131+
132+
### Installing and Loading
133+
```sql
134+
INSTALL {{ page.extension.name }} FROM community;
135+
LOAD {{ page.extension.name }};
136+
```
137+
138+
{% if page.docs.hello_world %}
139+
### Example
140+
```sql
141+
{{ page.docs.hello_world }}```
142+
{% endif %}
143+
144+
{% if page.docs.extended_description %}
145+
### About {{ page.extension.name }}
146+
{{ page.docs.extended_description }}
147+
{% endif %}
148+
149+
### Added Functions
150+
151+
<div class="extension_functions_table"></div>
152+
153+
| function_name | function_type | description | comment | examples |
154+
|--------------------|---------------|-------------------------------------------------------------------------|-----------------------------------------------------------------|--------------------------------------------------------------------------|
155+
| read_conversations | table | Read conversation messages and tool calls from AI coding agent sessions | Supports Claude Code and GitHub Copilot CLI with auto-detection | [SELECT * FROM read_conversations(path='~/.claude') LIMIT 10;] |
156+
| read_plans | table | Read plan and strategy markdown files from agent sessions | Claude: plans/*.md, Copilot: session-state/*/plan.md | [SELECT plan_name, file_size FROM read_plans();] |
157+
| read_todos | table | Read todo and checklist items with status tracking | Claude: todos/*.json, Copilot: checkpoint markdown checklists | [SELECT content, status FROM read_todos() WHERE status != 'completed';] |
158+
| read_history | table | Read command and prompt history | Claude: history.jsonl, Copilot: command-history-state.json | [SELECT display FROM read_history() ORDER BY line_number DESC LIMIT 10;] |
159+
| read_stats | table | Read daily activity statistics (message, session, and tool call counts) | Currently Claude only — returns empty for Copilot | [SELECT date, message_count FROM read_stats() ORDER BY date DESC;] |
160+
161+

community_extensions/extensions/aixchess.md

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,39 @@ excerpt: |
88
extension:
99
name: aixchess
1010
description: Efficiently query large chess game collections
11-
version: 0.1.0
11+
version: 0.1.1
1212
language: C++
1313
build: cmake
1414
license: GPL-3.0
15-
excluded_platforms: "windows_amd64_mingw;wasm_mvp;wasm_eh;wasm_threads"
15+
excluded_platforms: "wasm_mvp;wasm_eh;wasm_threads"
1616
opt_in_platforms: "windows_arm64;"
1717
requires_toolchains: rust
1818
maintainers:
1919
- thomas-daniels
2020

2121
repo:
2222
github: thomas-daniels/aix
23-
ref: d668f7ac4a1e62625adade526ee6d9e3387c123f
23+
ref: f565c29a3dd51c219c4bc9013ad90596ec83df69
2424

2525
docs:
26+
hello_world: |
27+
-- Count en passant moves played in Lichess games from January 2013
28+
29+
WITH lichess_2013_01 AS (
30+
FROM 'hf://datasets/thomasd1/aix-lichess-database/low_compression/aix_lichess_2013-01_low.parquet'
31+
),
32+
en_passant_move_count AS (
33+
SELECT
34+
SUM(
35+
move_details(movedata).filter(lambda m: m.is_en_passant).length()
36+
) AS nb_ep_moves
37+
FROM lichess_2013_01
38+
)
39+
40+
FROM en_passant_move_count;
41+
42+
-- Result: 3496
43+
2644
extended_description: |
2745
Aix enables efficient storage and querying of large chess game collections.
2846
A game's moves are encoded in a binary representation, and this extension

community_extensions/extensions/bitfilters.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ extension:
2121
repo:
2222
github: query-farm/bitfilters
2323
ref: 1acc412f932a9b88f1504bf76fc0cbdd891b97f3
24+
ref_next: 3ee5114aefbda6c97dc90dd10303dd6591fac9d2
2425

2526
extension_star_count: 5
2627
extension_star_count_pretty: 5

community_extensions/extensions/cronjob.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ extension:
7272
repo:
7373
github: quackscience/duckdb-extension-cronjob
7474
ref: 040dbecd552e6b373fb1bb4582935d243693978e
75+
ref_next: e3912d21394d109be2795c71dbb782a6680d74a5
7576

7677
extension_star_count: 46
7778
extension_star_count_pretty: 46

community_extensions/extensions/datasketches.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ extension:
2121
repo:
2222
github: query-farm/datasketches
2323
ref: d7ff45ac116b81f5958d40783470557f27a97911
24+
ref_next: 4f1e73f77f077deed835dff3cf547b809e94d36a
2425

2526
extension_star_count: 40
2627
extension_star_count_pretty: 40

community_extensions/extensions/eurostat.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,8 @@ docs:
147147
Time filters (e.g. `WHERE time_period >= '2000' AND time_period <= '2010'`) are also supported
148148
and will be encoded as range filters in the EUROSTAT API.
149149
150-
extension_star_count: 27
151-
extension_star_count_pretty: 27
150+
extension_star_count: 29
151+
extension_star_count_pretty: 29
152152
extension_download_count: 253
153153
extension_download_count_pretty: 253
154154
image: '/images/community_extensions/social_preview/preview_community_extension_eurostat.png'

community_extensions/extensions/evalexpr_rhai.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ extension:
2121
repo:
2222
github: query-farm/evalexpr_rhai
2323
ref: f4493ade6aa592402b1b80a3eec002d94254b5e9
24+
ref_next: 82fe86bed79fe65a88ea3c41581eea5be60e08e3
2425

2526
extension_star_count: 24
2627
extension_star_count_pretty: 24

community_extensions/extensions/fuzzycomplete.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ extension:
2121
repo:
2222
github: query-farm/fuzzycomplete
2323
ref: 74630cc8548a8ee6b32129abdc8bd70e1cf2bf87
24+
ref_next: 95e72a7b4a40bd3b269c14d1c54b2fb3b1ca9542
2425

2526
extension_star_count: 25
2627
extension_star_count_pretty: 25

0 commit comments

Comments
 (0)