Alphakdeps.io is experimental and evolving — the registry and packages may change or reset.
Toolkdeps asset

kdeps-tools-sql_query

v2.0.0

Execute a SQL query against a SQLite database and return the results as formatted text. Use SELECT statements to retrieve data. Non-SELECT statements are rejected for safety.

set tools / shelf tools

LLM context: ~118 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.

  1. the agent loop builds the request
  2. the tool definitions are sent to the modeltools/sql_query
  3. the model calls a tool
  4. kdeps runs it
  5. 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.

kdeps install tools/sql_query

Pin a version with kdeps install tools/sql_query@<version>.

Contents

Execute a SQL query against a SQLite database and return the results as formatted text. Use SELECT statements to retrieve data. Non-SELECT statements are rejected for safety.

outputFormat
tab-separated rows, the column names first; NULL is empty
ParameterTypeDescription
db_pathstringPath to the SQLite database file. Defaults to KDEPS_SQL_DB_PATH environment variable.
query *stringThe SQL SELECT statement to execute

Python script (declared in YAML, no Go code)

import html, json, os, pathlib, sqlite3, sys

a = json.loads(sys.argv[1])
path = a.get("db_path") or os.environ.get("DB")
# Models often send the query HTML-escaped (&gt; for >).
query = html.unescape(a["query"])
if not query.lstrip().upper().startswith(("SELECT", "WITH")):
    sys.exit("sql_query: only SELECT/WITH queries are allowed")
if not path:
    sys.exit("sql tool: db_path is required (or set KDEPS_SQL_DB_PATH)")
try:
    # mode=ro also stops a WITH ... DELETE from writing.
    with sqlite3.connect(pathlib.Path(path).absolute().as_uri() + "?mode=ro", uri=True) as db:
        cur = db.execute(query)
        cols = [d[0] for d in cur.description or []]
        rows = cur.fetchall()
except sqlite3.Error as e:
    sys.exit("sql_query: %s" % e)
out = ["\t".join(cols)]
out += ["\t".join("" if v is None else str(v) for v in r) for r in rows]
print("\n".join(out).strip())

Paths kept in the workspace: db_path

Offered when set: KDEPS_SQL_DB_PATH |

Versions

VersionPublishedStatus
2.0.010/24/2026active
1.0.010/11/2026active

Details

Author
kdeps
License
Apache-2.0
Latest Version
2.0.0
Published
10/11/2026

Tags

kdepstool