Replies: 1 comment 1 reply
-
|
Hey @NickCrews, did you already look at https://github.com/duckdb/duckdb-skills? |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
When working in a VM sandbox in claude.ai (as of May 6 2026, this could change any day), I have been experiencing papercuts getting a duckdb CLI installed as well as installing extensions. These are because the sandbox restricts network access to a short allowlist of package manager domains such as pypi, github.com, etc.
Regular python package installation
It is possible to get the agent to
pip install duckdband that works just fine for getting a python lib installed for the agent to write python scripts. This is NOT the pain point for me.CLI
I want to let my agent use a cli for simple bash piping without needing to build up an entire python script (which it will happily do, but take 3x the tokens it needs and be more error prone).
The regular duckdb CLI installation of
curl https://install.duckdb.org | shfail because that host is not on the allowlist. So we need to get a cli via apip install.We could expose that in this package: add a
__main__.pymodule at the top level, so after pip installing the user can dopython -m duckdb -c "SELECT 42". Or/and add a[project.scripts]entry to the pyproject.toml so that afterpip installing the user can simply doduckdb -c "SELECT 42".I found https://github.com/duckdb/duckdb-python-cli, which looks like it intends to solve the same problem, and it does actually work in the sandbox, because it downloads the cli binary from github releases, which is on the sandboxes domain allow-list. This was just non obvious for me as a user (only found by searching the duckdb org on github for "cli" to see where the cli was published), and if it were part of the normal python package that would be more discoverable. Or maybe put it in the docs somewhere where humans/agents could discover it more easily?
Extensions
I need to connect to motherduck with claude. But at first usage, duckdb tries to install the extension at runtime, and this fails because the download url is not on the allowlist.
So again, we need to install from pypi using the duckdb-extension-motherduck, duckdb-extension-httpfs, etc PyPI
packages from https://github.com/santosh-d3vpl3x/duckdb_extensions.
This works, it just is super non obvious. The agent keeps giving up at this point.
I wonder if we can make this more discoverable: in this python package, can we detect and wrap this error ("failed to install extension") and then include tips on how to get around this? Should we make it so this package has extras for the extensions, eg we can suggest "Try
pip install duckdb[extension-motherduck]to be able to use this package."? We need to be careful about giving our endorsement for that extension repo. It is controlled by a 3rd party and this is a ripe vector for supply chain attacks. So maybe we would need to absorb it into the duckdb org officially for that to be a good option? Maybe make publishing to pypi part of the https://github.com/duckdb/community-extensions repo?Summary
I'm maybe rambling a bit now and I'm not actually sure exactly what my ask is here. In general, make it easier for agents in sandboxed envs to get a CLI and extensions installed.
Beta Was this translation helpful? Give feedback.
All reactions