mirror of
https://github.com/simonw/dclient.git
synced 2026-07-24 09:54:32 +02:00
A client CLI utility for Datasette instances
- Python 99.7%
- Just 0.3%
- Fix _api_get to follow redirects (needed for query endpoint on
newer Datasette which redirects /{db}.json?sql= to /{db}/-/query)
- Add demo.md showing all new commands against a live Datasette instance:
create-table, insert, databases, tables, schema, rows (with filtering,
sorting, column selection, CSV export), get, query, update, upsert,
delete, drop
https://claude.ai/code/session_01DoiJf9Gbvbw2asN9yvP6dx
|
||
|---|---|---|
| .github/workflows | ||
| dclient | ||
| docs | ||
| tests | ||
| .gitignore | ||
| .readthedocs.yaml | ||
| demo.md | ||
| Justfile | ||
| LICENSE | ||
| PLAN.md | ||
| pyproject.toml | ||
| README.md | ||
dclient
A client CLI utility for Datasette instances.
Much of the functionality requires Datasette 1.0a2 or higher.
Things you can do with dclient
- Run SQL queries against Datasette and returning the results as JSON
- Run queries against authenticated Datasette instances
- Create aliases and store authentication tokens for convenient access to Datasette
- Insert data into Datasette using the insert API (Datasette 1.0 alpha or higher)
Installation
Install this tool using pip:
pip install dclient
If you want to install it in the same virtual environment as Datasette (to use it as a plugin) you can instead run:
datasette install dclient
Running a query
dclient query https://latest.datasette.io/fixtures "select * from facetable limit 1"
To shorten that, create an alias:
dclient alias add fixtures https://latest.datasette.io/fixtures
Then run it like this instead:
dclient query fixtures "select * from facetable limit 1"
Documentation
Visit dclient.datasette.io for full documentation on using this tool.
Development
To contribute to this tool, first checkout the code. Then create a new virtual environment:
cd dclient
python -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
pytest