Universal agent skills for DbCli - cross-database CLI tool supporting 30+ databases.
These skills conform to the Agent Skills Specification - a universal format compatible with 10+ coding agents (e.g. Claude Code, Claude Web/App, GitHub Copilot, OpenAI Codex, Cursor, Gemini Code Assist, Gemini-Cli, and VS Code extensions like Cline, Roo Code, Kilo Code).
| Skill | Description | Safety Level |
|---|---|---|
| dbcli-query | Execute SELECT queries | Safe (read-only) |
| dbcli-exec | Execute INSERT/UPDATE/DELETE | Requires backup for UPDATE/DELETE |
| dbcli-db-ddl | Execute CREATE/ALTER/DROP tables | Critical - mandatory backup |
| dbcli-tables | List tables and view structure | Safe (read-only) |
| dbcli-export | Export table data as SQL | Safe (backup operation) |
| dbcli-compare | Compare results of two SQL queries | Safe (read-only) |
| dbcli-view | Manage database views | Moderate - backup recommended |
| dbcli-index | Manage database indexes | Moderate - backup recommended |
| dbcli-procedure | Manage stored procedures/functions/triggers | Critical - mandatory backup |
| dbcli-interactive | Interactive SQL mode (REPL) | Safety prompts enabled |
All examples in skills use the plain command name dbcli (no directory prefix).
Ensure dbcli is on PATH (e.g., run install-dbcli.ps1 -AddToPath) instead of hardcoding paths like .\.claude\skills\dbcli\dbcli.exe.
DbCli supports parameterized SQL for relational databases using JSON parameters and @Param placeholders:
dbcli query "SELECT @Id AS Id" -p '{"Id":1}'
dbcli exec "INSERT INTO Users (Id, Name) VALUES (@Id, @Name)" -p '{"Id":1,"Name":"Alice"}'Notes:
IN (...)supports JSON arrays (DbCli expands@Ids).- SQLite providers may require
DisableClearParameters: truein config (maps to SqlSugarIsClearParameters=false). - SQL Server supports
GObatch separators forddland non-parameterizedexec.GOis not supported with-p/-P. - DbCli returns a single result set. SqlSugar supports multi-result sets/output parameters, but DbCli does not surface them yet.
Use the deployment script as the single automated entrypoint (it can also install dbcli):
# PowerShell (Windows/Linux/macOS with pwsh)
pwsh ./deploy-skills.ps1 -InstallScripts -Target all -WorkDir . -Force# Python (Linux/macOS/WSL)
python3 ./deploy-skills.py --install-scripts --target all --forceNote: PowerShell requires -WorkDir (target workspace). -InstallScripts installs dbcli + scripts + skills into ~/tools/dbcli and adds PATH (required). It also copies deploy scripts into tools/dbcli/ under the target (Codex global deploy does not copy scripts or exe).
If DbCli is already installed:
# Claude Code
mkdir -p ./.claude/skills/dbcli/skills
cp -r skills/* ./.claude/skills/dbcli/skills/
# Generic AI agent
cp -r skills /path/to/agent/skills/dbcliClaude (web/app) expects a ZIP containing one skill folder, with Skill.md at the skill root. Use the deploy scripts to package ZIPs (they stage a temp copy and set the ZIP entry name to Skill.md without changing your source tree):
pwsh ./deploy-skills.ps1 -PackageClaudeSkill dbcli-query -PackageOutDir .
pwsh ./deploy-skills.ps1 -PackageClaudeAll -PackageOutDir .python3 ./deploy-skills.py --package-claude-skill dbcli-query --package-out-dir .
python3 ./deploy-skills.py --package-claude-all --package-out-dir .Skills can be referenced directly from this repository or cloned locally:
git clone https://github.com/yourusername/dbcli.git
cd dbcli/skills- dbcli-query - Execute SELECT queries
- dbcli-tables - List tables and view structure
- dbcli-compare - Compare results of two SQL queries
- dbcli-exec - INSERT/UPDATE/DELETE operations
- dbcli-export - Export table data (for backup)
DbCli commands and options are defined per-command. Use dbcli --help / dbcli <command> --help as the source of truth. Options shown in examples (like -c/-t/-f/-F) are not truly “global” — they exist only on the commands that define them.
-F/--fileis available only onquery/exec/ddl(read SQL from a file)backupadditionally supports-o/--targetrestoreadditionally supports-s/--fromand-k/--keep-dataexport-schemaaccepts a positional<type>(e.g.all/view/index) and supports-n/--name,-o/--output, and--output-dir
For the full, current parameter list, run:
dbcli --helpdbcli query --helpdbcli exec --helpdbcli ddl --helpdbcli backup --helpdbcli restore --helpdbcli export-schema --help
- dbcli-interactive - Interactive SQL with built-in safety prompts
All skills support 30+ databases including:
SQLite, Microsoft SQL Server, MySQL, MySQL Connector, MariaDB, TiDB, PostgreSQL, Oracle, DaMeng, KingbaseES, Oscar, HighGo, GaussDB, GBase, IBM DB2, SAP HANA, Microsoft Access
OceanBase, TDengine, ClickHouse, Amazon Aurora, Azure Database, Google Cloud SQL
QuestDB, DuckDB
MongoDB
See CONNECTION_STRINGS.md for detailed connection examples.
pwsh ./deploy-skills.ps1 -InstallScripts -Target all -WorkDir . -Forcepython3 ./deploy-skills.py --install-scripts --target all --forceQuick Deploy (workspace only for Claude/Copilot):
Note: Claude Code / Copilot only support workspace deployment (global locations are ignored).
# Windows / Linux / macOS (pwsh)
pwsh ./deploy-skills.ps1 -Target claude -WorkDir . # Claude Code only
pwsh ./deploy-skills.ps1 -Target all -WorkDir . # All environments
# Python (Linux/macOS/WSL)
python3 ./deploy-skills.py --target claude
python3 ./deploy-skills.py --target allSupported AI Assistants:
- Claude Code
- Claude (Web/App)
- GitHub Copilot
- OpenAI Codex
- OpenAI-compatible API (Direct)
- Cursor
- Gemini Code Assist
- Gemini-Cli
- Cline
- Roo Code
- Kilo Code
See the Integration Guide and DbCli README for details.
# SQLite (using environment variables)
export DBCLI_CONNECTION="Data Source=app.db"
export DBCLI_DBTYPE="sqlite"
dbcli query "SELECT * FROM Users"
# Microsoft SQL Server
export DBCLI_CONNECTION="Server=localhost;Database=mydb;Trusted_Connection=True"
dbcli -t sqlserver query "SELECT TOP 10 * FROM Users"# ALWAYS create backup first
export DBCLI_CONNECTION="Data Source=app.db"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
dbcli export Users > Users_backup_${TIMESTAMP}.sql
# Then modify
dbcli exec "UPDATE Users SET verified = 1 WHERE email_confirmed = 1"# Set connection
export DBCLI_CONNECTION="Data Source=app.db"
# List all tables
dbcli -f table tables
# View table structure
dbcli -f table columns Users# Start interactive session
export DBCLI_CONNECTION="Data Source=app.db"
dbcli interactive
# Then use dot commands:
dbcli> .tables
dbcli> .columns Users
dbcli> SELECT * FROM Users LIMIT 5;
dbcli> .exitMANDATORY backup creation before:
- UPDATE operations
- DELETE operations
- DROP TABLE
- ALTER TABLE
tablename_copy_YYYYMMDD_HHMMSS # Table copy (fastest recovery)
tablename_backup_YYYYMMDD_HHMMSS.sql # SQL export (portable)
database_backup_YYYYMMDD_HHMMSS.db # Full database (SQLite)
export DBCLI_CONNECTION="Data Source=mydb.db"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
# Method 1: Table copy (fastest)
dbcli query "CREATE TABLE Users_copy_${TIMESTAMP} AS SELECT * FROM Users"
# Method 2: SQL export (portable)
dbcli export Users > Users_backup_${TIMESTAMP}.sql
# Method 3: Full database backup (SQLite)
cp mydb.db mydb_backup_${TIMESTAMP}.db# Linux/macOS
export DBCLI_CONNECTION="Data Source=app.db"
export DBCLI_DBTYPE="sqlite"
dbcli query "SELECT * FROM Users"
# Windows PowerShell
$env:DBCLI_CONNECTION = "Data Source=app.db"
$env:DBCLI_DBTYPE = "sqlite"
dbcli query "SELECT * FROM Users"[Environment]::SetEnvironmentVariable("DBCLI_DBTYPE", "sqlite", "User")
dbcli query "SELECT * FROM Users"
### Method 3: Configuration File
Create `appsettings.json`:
```json
{
"ConnectionString": "Data Source=app.db",
"DbType": "sqlite"
}
Usage:
# If appsettings.json is in the current working directory, DbCli auto-loads it
dbcli query "SELECT * FROM Users"DbCli options are defined per-command (use dbcli <command> --help as the source of truth). The following are the most commonly used options across many commands:
| Option | Short | Description | Default |
|---|---|---|---|
--db-type |
-t |
Database type | sqlite |
--format |
-f |
Output format (json/table/csv) | json |
--config |
- | Config file path | - |
--file |
-F |
Read SQL from file (query/exec/ddl only) | - |
Connection Method: Use appsettings.json in the current working directory (DbCli auto-loads it) or environment variables DBCLI_CONNECTION and DBCLI_DBTYPE.
DbCli uses ConsoleAppFramework (command-first routing).
# Set connection via environment variable
export DBCLI_CONNECTION="Data Source=app.db"
# Execute query
dbcli query "SELECT * FROM Users" -f tableimport subprocess
import json
import os
# Set environment
os.environ['DBCLI_CONNECTION'] = 'Data Source=app.db'
# Query database
result = subprocess.run([
'dbcli', 'query', 'SELECT * FROM Users'
], capture_output=True, text=True)
users = json.loads(result.stdout)
for user in users:
print(f"{user['Name']} - {user['Email']}")const { execSync } = require('child_process');
// Set environment
process.env.DBCLI_CONNECTION = 'Data Source=app.db';
const result = execSync('dbcli query "SELECT * FROM Users"');
const users = JSON.parse(result.toString());
users.forEach(user => {
console.log(`${user.Name} - ${user.Email}`);
});$env:DBCLI_CONNECTION = "Data Source=app.db"
$result = dbcli query "SELECT * FROM Users" | ConvertFrom-Json
$result | ForEach-Object { Write-Host "$($_.Name) - $($_.Email)" }These skills are compatible with Claude Code, GitHub Copilot, OpenAI Codex, Cursor, Gemini-Cli, Cline/Roo/Kilo, and any Agent Skills-compliant AI coding assistant.
skills/
├── README.md # This file
├── CONNECTION_STRINGS.md # Database connection reference
│
├── dbcli-query/
│ └── SKILL.md # Query skill
│
├── dbcli-exec/
│ └── SKILL.md # Execute (INSERT/UPDATE/DELETE) skill
│
├── dbcli-db-ddl/
│ └── SKILL.md # DDL (CREATE/ALTER/DROP tables) skill
│
├── dbcli-tables/
│ └── SKILL.md # List tables skill
│
├── dbcli-export/
│ └── SKILL.md # Export data skill
│
├── dbcli-view/
│ └── SKILL.md # View management skill
│
├── dbcli-index/
│ └── SKILL.md # Index management skill
│
├── dbcli-procedure/
│ └── SKILL.md # Procedure/function/trigger management skill
│
└── dbcli-interactive/
└── SKILL.md # Interactive mode skill
Skills follow the Agent Skills Specification:
- name: lowercase-with-hyphens (max 64 chars)
- description: 1-1024 chars, includes use cases
- SKILL.md: YAML frontmatter + Markdown body
- Progressive disclosure: Metadata → Instructions → Resources
- Agent Skills Specification
- Connection Strings - 30+ database examples
- OpenAI Codex Skills
- Claude Skills
MIT - See LICENSE for details