catalogue: io.pilot.duckdb v1.5.4 (DuckDB — in-process analytical SQL)#341
Open
Alexgodoroja wants to merge 1 commit into
Open
catalogue: io.pilot.duckdb v1.5.4 (DuckDB — in-process analytical SQL)#341Alexgodoroja wants to merge 1 commit into
Alexgodoroja wants to merge 1 commit into
Conversation
Add DuckDB 1.5.4 (in-process analytical SQL, native CLI for agents) to the app-store catalogue: 4-platform signed adapter bundles on prod R2, per-app metadata.json store page, publisher ed25519:goaIo9+…, and a re-signed catalogue.json (valid against the catalogtrust anchor). App-template submission: pilot-protocol/app-template#53. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Catalogue entry: io.pilot.duckdb v1.5.4 (DuckDB)
Adds DuckDB 1.5.4 to the app-store catalogue — modeled on
io.pilot.postgres. App-template submission merged in pilot-protocol/app-template#53. The catalogue index is re-signed (valid against the embeddedcatalogtrustanchor); 4-platform signed adapter bundles are on prod R2; the DuckDB binaries are delivered per-OS/arch from the artifact registry and sha-pinned on install.Short description
Verified
pilotctl appstore install io.pilot.duckdb(sha256 OK) then every method called with real data (box/CSV/JSON/Markdown, in-place CSV & Parquet querying, schema/tables, exec-with-stdin, fullcli_help).ed25519:goaIo9+…matches the signed bundle manifest.Long description (store page)
DuckDB — in-process analytical SQL, native CLI for agents
This app installs the official DuckDB 1.5.4 command-line shell on the host and fronts it as typed
methods. The bundle is the upstream DuckDB CLI binary (sha-pinned per OS/arch, fetched from the Pilot
artifact registry at install) plus a tiny wrapper that serves a clean, complete
--help.DuckDB is an in-process OLAP database — "SQLite for analytics." There is no server, no daemon, no
port, no auth, and nothing to provision: an agent opens an in-memory database (
:memory:) or a single.duckdbfile like any other file. That posture is exactly right for an autonomous agent working in itsown sandbox with no cloud account.
Why an agent wants this
initdb, no server lifecycle, no credentials, no "is the daemon up?" state.Run SQL against
:memory:or a file and you're done.no load step:
SELECT region, sum(amount) FROM '/data/*.parquet' GROUP BY region. The file is the table.rows run quickly in a single process, in the agent's own context.
shape that parses cleanly or drops straight into a report.
COPYto/from Parquet/CSV, anda rich function library.
so the common cases need no network and no extensions.
Methods
duckdb.query— run SQL, get an alignedboxtable (default). In-memory or against a file.duckdb.query_csv/duckdb.query_json/duckdb.query_markdown— same, as CSV / JSON / Markdown.duckdb.file— execute a.sqlscript file (migrations, ETL, multi-statement setup).duckdb.tables— list every table and view (SHOW ALL TABLES).duckdb.schema— print theCREATEDDL for the database (.schema).duckdb.exec— run the CLI with a verbatim argv (+ optional stdin) for any flag, output mode, ordot-command the curated methods don't cover (
.mode,.import,.export,.read,-init, …).duckdb.cli_help— the complete CLI help: every option and every dot-command, as clean text.duckdb.version— the delivered DuckDB version.duckdb.help— the self-describing method list.How to use it
duckdb.query{ "database": ":memory:", "sql": "SELECT count(*) FROM '/data/events.parquet'" }.databaseat a file path (/work/app.duckdb); it's created on first use andpersists. The same file holds many tables/schemas.
duckdb.query_json(array of row objects) orduckdb.query_csv.duckdb.exec{ "args": [":memory:", "-cmd", ".import /data/in.csv t", "-c", "SELECT count(*) FROM t"] }.Configuration
database—:memory:(ephemeral, no provisioning) or an absolute path to a.duckdb/.dbfile(created on first use, persists, holds many tables). Independent of this, the SQL can read/write CSV,
Parquet, and JSON files anywhere on disk.
querybox /query_csv/query_json/query_markdown), or anyother mode via
duckdb.exec(-line,-html,-ascii,-jsonlines, …).httpfsfor S3/HTTPParquet) are loadable via
duckdb.exec(INSTALL httpfs; LOAD httpfs;) where the host allows egress; thelocal-only path needs neither.
duckdb.exec(-readonly).Good to know
{stdout, stderr, exit}so the caller sees everything the CLI produced.sha-pinned on install. Free and open source under the MIT License.
duckdb.helplists every method with its latency class — the self-describing discovery contract.DuckDB CLI help (
duckdb.cli_help)🤖 Generated with Claude Code