kdeps-tools-sql_describe_table
v2.0.0Return the schema (column names and types) for a table in a SQLite database. Use before writing queries to know the exact column names.
set tools / shelf tools
LLM context: ~108 tokens when loaded (prompt or tool definition)
Where it runs
Part of the tools set, used in workflow and agent mode. What the model is told about each built-in tool: its description, usage notes and parameters. kdeps runs the tool itself.
- the agent loop builds the request
- the tool definitions are sent to the modeltools/sql_describe_table
- the model calls a tool
- kdeps runs it
- the result goes back to the model
Loaded by: kdeps (agent loop), /update, /settings, kdeps run, kdeps install, kdeps list, kdeps uninstall, kdeps update
In the code: kdeps (agent loop)agent.RegisterBuiltinToolsagent.definedAs
Install
A kdeps asset: installed with the first-run profile that includes its set, or the first time a command needs it, and updated without a new release.
Pin a version with kdeps install tools/sql_describe_table@<version>.
Contents
Return the schema (column names and types) for a table in a SQLite database. Use before writing queries to know the exact column names.
- outputFormat
- Table: <name>, then the table's CREATE TABLE statement
| Parameter | Type | Description |
|---|---|---|
| db_path | string | Path to the SQLite database file. Defaults to KDEPS_SQL_DB_PATH environment variable. |
| table * | string | Name of the table to describe |
Python script (declared in YAML, no Go code)
import json, os, pathlib, sqlite3, sys
a = json.loads(sys.argv[1])
path, table = a.get("db_path") or os.environ.get("DB"), a["table"]
if not path:
sys.exit("sql tool: db_path is required (or set KDEPS_SQL_DB_PATH)")
try:
with sqlite3.connect(pathlib.Path(path).absolute().as_uri() + "?mode=ro", uri=True) as db:
row = db.execute("SELECT sql FROM sqlite_master WHERE type='table' AND name=?",
(table,)).fetchone()
except sqlite3.Error as e:
sys.exit("sql_describe_table: %s" % e)
if not row:
sys.exit("sql_describe_table: table %r not found" % table)
print("Table: %s\n%s" % (table, row[0].strip()))
Paths kept in the workspace: db_path
Offered when set: KDEPS_SQL_DB_PATH |
version: 2.0.0
description: Return the schema (column names and types) for a table in a SQLite database. Use before writing queries to know the exact column names.
outputFormat: "Table: <name>, then the table's CREATE TABLE statement"
parameters:
db_path:
type: string
description: Path to the SQLite database file. Defaults to KDEPS_SQL_DB_PATH environment variable.
table:
type: string
description: Name of the table to describe
required: true
python:
paths: [db_path] # checked against the workspace boundary
env:
DB: [KDEPS_SQL_DB_PATH, ""] # used when db_path is omitted
script: |
import json, os, pathlib, sqlite3, sys
a = json.loads(sys.argv[1])
path, table = a.get("db_path") or os.environ.get("DB"), a["table"]
if not path:
sys.exit("sql tool: db_path is required (or set KDEPS_SQL_DB_PATH)")
try:
with sqlite3.connect(pathlib.Path(path).absolute().as_uri() + "?mode=ro", uri=True) as db:
row = db.execute("SELECT sql FROM sqlite_master WHERE type='table' AND name=?",
(table,)).fetchone()
except sqlite3.Error as e:
sys.exit("sql_describe_table: %s" % e)
if not row:
sys.exit("sql_describe_table: table %r not found" % table)
print("Table: %s\n%s" % (table, row[0].strip()))
Versions
| Version | Published | Status |
|---|---|---|
| 2.0.0 | 10/24/2026 | active |
| 1.0.0 | 10/11/2026 | active |
Details
- Author
- kdeps
- License
- Apache-2.0
- Latest Version
- 2.0.0
- Published
- 10/11/2026