Database operations in natural language. From the terminal.
Type what you want. The AI CLI translates your intent into safe, reviewed SQL — while TadpoleHub enforces your existing access controls and logs every operation.
Your terminal · Natural language · TadpoleHub controls
The AI CLI routes every query through TadpoleHub — RBAC, masking, and audit logging apply automatically, and risky SQL can request approval via the settle workflow.
One line in.
SQL out.
Describe what you need. The CLI generates the SQL — SELECTs run automatically, writes require confirmation first.
⠹ 10s [MCP] get_user_list(page=1, page_size=10, user_query="Show me the 10 most recently added users", invocation_reason="Retrieve the list of recently added users")✓ [MCP] get_user_list OK: 1428 charsHere are the 10 most recently added users:1. nameSo-Hee Kwonemails****@example.comroleSYSTEM_ADMINlast login2026-05-15 10:58:582. nameMin-Soo Kimemailm****@example.comroleUSERlast loginnone3. nameYe-Eun Shinemaily****@example.comroleDBAlast login2026-04-02 11:53:43… and 7 more (total 10, page_size=10)Risky SQL
waits for approval.
Writes (DDL, bulk deletes, TRUNCATE) and unmasked reads of sensitive data are blocked by default — proceed via user confirmation or by requesting approval (settle).
⚠ This DB requires settle approval.Create a settle request now? (y/n): yApprover list: 1. Min-Ji Kim (minji.kim@co.com) (seq=18) 2. Seo-Jun Park (seojun.park@co.com) (seq=1)Pick approver — number or seq (e.g. 1,3): 2Include unmasking? (y/n): ySettle reason (5+ chars): Inspecting customer data for payment dispute# Settle Request PreviewdbPayments DB (3)approversSeo-Jun Park (seojun.park@co.com)unmaskingYESreasonInspecting customer data for payment disputesqlselect * from customersSubmit this settle request? (y/n): y✔ Settle request created. seq=54 (group_seq=3000873)ℹ After approval, run /settle execute <seq> to execute.Schema
in plain English.
Describe the change — column, index, function, procedure. The CLI proposes the DDL with rationale. Review, then execute or request approval (settle).
Here's a MySQL function. Adjust for your actual schema — or run /schema to inspect it first.CREATE FUNCTION get_customer_orders(customer_id INT)RETURNS TABLEBEGIN RETURN SELECT o.order_id, o.order_date, o.total_amount FROM orders o JOIN customers c ON o.customer_id = c.customer_id WHERE c.customer_id = customer_id;END;ℹ Review the DDL, then execute via /sql or request approval (settle).SQL + intent.
Both logged.
Each query records the user, the natural language request, and the generated SQL.
⠧ 3s [MCP] get_events(log_level=All, event_type=All, page=1, page_size=10, user_query="Show me the 10 most recent events", invocation_reason="Retrieve the 10 most recent events")✓ [MCP] get_events OK: 493 charsHere are the 10 most recent events:1. typeADMIN_LOOKlevelINFOuser/DBMin-Ji Kim (m****@co.com)descriptionMCP create_settle_request: seq=54 db=3 app...2. typeADMIN_LOOKlevelDEBUGuser/DBMin-Ji Kim (m****@co.com)descriptionMin-Ji Kim viewed the full service list.Total: 2 events logged (page_size=10).ℹ Intent + tool args + result — all logged.Built for teams who move fast
Query without writing SQL
Get answers from production databases using plain English, without needing to know the schema or SQL syntax.
Every CLI change reviewed
Use the CLI to request approval (settle) for risky SQL through your existing workflow.
Full audit of AI-driven queries
The CLI logs original natural language requests alongside generated SQL, giving auditors full context.
Your databases, your rules — natural language interface.
Teams use the AI CLI to move faster without bypassing the controls already in place.