Token导航 LogoToken导航TokenDH.com
待分类权限需确认github未标认证来源可访问许可证需确认审计未展示

dbx-database-clientdbx 数据库客户端

Agent Skill

用于辅助数据库表结构、查询语句、迁移脚本和数据维护任务。它适合让 Agent 分析 schema、编写 SQL、排查查询问题、整理索引或生成迁移建议。使用时需要明确数据库类型、连接环境和目标表,区分只读分析与写入变更;涉及删除、更新、迁移和批量导入时,应优先 dry-run、备份或事务保护,避免误操作。

总安装

490

周安装

20

GitHub Stars

39

下载量

158
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:dbx-database-client(dbx 数据库客户端)
来源仓库:https://github.com/aradotso/trending-skills
仓库路径:skills/dbx-database-client
安装命令:
npx skills add https://github.com/aradotso/trending-skills --skill dbx-database-client
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/aradotso/trending-skills --skill dbx-database-client

简介

dbx-database-client 辅助数据库 schema 分析与 SQL 编写,支持查询优化与迁移脚本生成。

  • 适用于多种数据库类型,提供字段类型映射、索引建议与性能排查工具链。
  • 使用时需明确目标数据库与连接串,区分只读查询与写操作权限边界。
  • 涉及删除或批量更新时应启用事务保护与 dry-run 模式,防止误操作丢失数据。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

name
dbx-database-client
description
Open-source lightweight cross-platform database management tool built with Tauri, Vue 3, and Rust supporting MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, ClickHouse, and SQL Server.
triggers

DBX Database Client

Skill by ara.so — Daily 2026 Skills collection.

DBX is an open-source, lightweight (~15 MB), cross-platform database management GUI built with Tauri 2 (Rust backend) + Vue 3 frontend. It supports MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, ClickHouse, SQL Server, MariaDB, TiDB, and more — with no bundled Chromium.

Installation

Download Pre-built Binary

Download the latest installer from Releases.

macOS (unsigned app workaround):

xattr -cr /Applications/dbx.app

Or: System Settings → Privacy & Security → Open Anyway.

Build from Source

Prerequisites:

  • Node.js >= 18
  • pnpm
  • Rust >= 1.77
git clone https://github.com/t8y2/dbx.git
cd dbx
pnpm install
pnpm tauri dev        # Development mode
pnpm tauri build      # Production build → src-tauri/target/release/bundle/

Tech Stack

LayerTechnology
FrameworkTauri 2
FrontendVue 3 + TypeScript
UIshadcn-vue + Tailwind CSS
EditorCodeMirror 6
BackendRust + sqlx / tiberius / redis-rs / mongodb

Project Structure

dbx/
├── src/                    # Vue 3 frontend
│   ├── components/         # UI components
│   │   ├── ConnectionForm.vue
│   │   ├── QueryEditor.vue
│   │   ├── DataGrid.vue
│   │   └── SchemaBrowser.vue
│   ├── stores/             # Pinia stores
│   ├── composables/        # Vue composables
│   └── locales/            # i18n (en, zh-CN)
├── src-tauri/              # Rust backend
│   ├── src/
│   │   ├── commands/       # Tauri commands (IPC)
│   │   ├── db/             # Database drivers
│   │   │   ├── mysql.rs
│   │   │   ├── postgres.rs
│   │   │   ├── sqlite.rs
│   │   │   ├── redis.rs
│   │   │   ├── mongodb.rs
│   │   │   ├── duckdb.rs
│   │   │   └── clickhouse.rs
│   │   └── main.rs
│   ├── Cargo.toml
│   └── tauri.conf.json
└── package.json

Adding a Database Connection

DBX stores connections locally. In the UI, click + New Connection and fill in:

FieldDescription
TypeMySQL / PostgreSQL / SQLite / Redis / MongoDB / DuckDB / ClickHouse / SQL Server
HostDatabase host (e.g., localhost)
PortDefault port auto-fills by type
DatabaseDatabase/schema name
UsernameDB user
PasswordDB password (stored encrypted locally)
SSH TunnelOptional: host, port, user, key/password

Connection String Examples

# MySQL / MariaDB / TiDB
mysql://user:password@localhost:3306/mydb

# PostgreSQL / openGauss / GaussDB
postgresql://user:password@localhost:5432/mydb

# SQLite (file path or drag & drop .db file)
/path/to/database.db

# Redis
redis://localhost:6379
redis://:password@localhost:6379/0

# MongoDB
mongodb://user:password@localhost:27017/mydb
mongodb+srv://user:password@cluster.mongodb.net/mydb

# ClickHouse
clickhouse://user:password@localhost:8123/default

# DuckDB
/path/to/database.duckdb

Query Editor

Keyboard Shortcuts

ShortcutAction
Cmd/Ctrl + EnterExecute query
Cmd/Ctrl + scrollZoom editor font size
Cmd/Ctrl + /Toggle comment
Cmd/Ctrl + ZUndo

Features

  • CodeMirror 6 with SQL syntax highlighting
  • Multi-statement execution
  • Safety dialogs for destructive operations (DROP, DELETE, TRUNCATE, ALTER)
  • Query history with search, restore, one-click copy

AI SQL Assistant Configuration

DBX supports Claude and OpenAI for natural language → SQL, explain, optimize, and fix errors.

Configure via Settings → AI Assistant:

// Environment variables used by the app (set in your shell or .env)
OPENAI_API_KEY=sk-...        // OpenAI key
ANTHROPIC_API_KEY=sk-ant-... // Claude/Anthropic key

Capabilities:

  • Generate: "Show me all users who signed up last month"
  • Explain: Highlights query → "Explain this SQL"
  • Optimize: "Why is this query slow?"
  • Fix: Paste error → "Fix this query"

Data Grid Features

  • Virtual scrolling for large datasets
  • Inline cell editing
  • Column resize by drag
  • Row numbers and zebra stripes
  • Sort by column header click
  • Search/filter rows
  • Pagination controls

Export options: CSV, JSON, Markdown (toolbar button or right-click)

Schema Browser

Left sidebar tree structure:

Connection
└── Database/Schema
    ├── Tables
    │   └── table_name
    │       ├── Columns (name, type, nullable)
    │       ├── Indexes
    │       ├── Foreign Keys
    │       └── Triggers
    ├── Views
    └── Procedures

Double-click a table → opens data grid with SELECT * FROM table LIMIT 1000.

Redis Browser

  • Key pattern search (e.g., user:*, session:*)
  • Value viewer for all Redis types:

- String: raw value display - Hash: field/value table - List: indexed list - Set: member list - ZSet: score/member table

  • TTL display and key deletion

MongoDB Browser

  • Database → Collection tree
  • Document list with pagination
  • CRUD: Create, Read, Update, Delete documents
  • JSON document editor

SSH Tunnel

Configure SSH tunnel in the connection form:

SSH Host: bastion.example.com
SSH Port: 22
SSH User: ec2-user
Auth:     Key (paste private key) OR Password

The tunnel proxies the DB connection through the SSH host — useful for databases not exposed to the internet.

Drag & Drop Files

Drag .db, .sqlite, or .duckdb files directly onto the DBX window to open them instantly without configuring a connection.

Frontend Development Patterns

Invoking Rust Commands from Vue

// src/composables/useDatabase.ts
import { invoke } from '@tauri-apps/api/core'

interface QueryResult {
  columns: string[]
  rows: Record<string, unknown>[]
  rowsAffected: number
  executionTime: number
}

export function useDatabase() {
  const executeQuery = async (connectionId: string, sql: string): Promise<QueryResult> => {
    return await invoke('execute_query', {
      connectionId,
      sql,
    })
  }

  const testConnection = async (config: ConnectionConfig): Promise<boolean> => {
    return await invoke('test_connection', { config })
  }

  return { executeQuery, testConnection }
}

Adding a New Rust Command

// src-tauri/src/commands/query.rs
use tauri::State;
use crate::db::ConnectionPool;

#[tauri::command]
pub async fn execute_query(
    connection_id: String,
    sql: String,
    pool: State<'_, ConnectionPool>,
) -> Result<QueryResult, String> {
    let conn = pool.get(&connection_id)
        .ok_or("Connection not found")?;
    
    conn.query(&sql).await.map_err(|e| e.to_string())
}
// src-tauri/src/main.rs
fn main() {
    tauri::Builder::default()
        .invoke_handler(tauri::generate_handler![
            execute_query,
            test_connection,
            // ... other commands
        ])
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

Vue Component Example: Custom Query Panel

<!-- src/components/QueryPanel.vue -->
<script setup lang="ts">
import { ref } from 'vue'
import { invoke } from '@tauri-apps/api/core'
import { useConnectionStore } from '@/stores/connection'

const store = useConnectionStore()
const sql = ref('')
const results = ref(null)
const error = ref('')
const loading = ref(false)

async function runQuery() {
  if (!sql.value.trim()) return
  loading.value = true
  error.value = ''
  try {
    results.value = await invoke('execute_query', {
      connectionId: store.activeConnectionId,
      sql: sql.value,
    })
  } catch (e) {
    error.value = String(e)
  } finally {
    loading.value = false
  }
}
</script>

<template>
  <div class="flex flex-col gap-2 h-full">
    <textarea
      v-model="sql"
      class="font-mono text-sm border rounded p-2 h-40 resize-none"
      placeholder="SELECT * FROM users LIMIT 10"
      @keydown.meta.enter="runQuery"
      @keydown.ctrl.enter="runQuery"
    />
    <button
      :disabled="loading"
      class="px-4 py-2 bg-primary text-white rounded"
      @click="runQuery"
    >
      {{ loading ? 'Running...' : 'Run (Cmd+Enter)' }}
    </button>
    <div v-if="error" class="text-red-500 text-sm">{{ error }}</div>
    <DataGrid v-if="results" :data="results" />
  </div>
</template>

Adding i18n Strings

// src/locales/en.json
{
  "connection": {
    "new": "New Connection",
    "test": "Test Connection",
    "save": "Save"
  },
  "query": {
    "run": "Run Query",
    "history": "History"
  }
}

// src/locales/zh-CN.json
{
  "connection": {
    "new": "新建连接",
    "test": "测试连接",
    "save": "保存"
  }
}
<script setup lang="ts">
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
</script>

<template>
  <button>{{ t('connection.new') }}</button>
</template>

Cargo.toml Key Dependencies

[dependencies]
tauri = { version = "2", features = ["native-tls-vendored"] }
sqlx = { version = "0.7", features = ["mysql", "postgres", "sqlite", "runtime-tokio-native-tls"] }
tiberius = "0.12"          # SQL Server
redis = "0.25"             # Redis
mongodb = "2.8"            # MongoDB
duckdb = "0.10"            # DuckDB
serde = { version = "1", features = ["derive"] }
tokio = { version = "1", features = ["full"] }

Troubleshooting

Build Fails on macOS (Rust linker error)

xcode-select --install
# Then retry:
pnpm tauri build

"Connection refused" on localhost

  • Check the database service is running: brew services list or systemctl status mysql
  • Verify port isn't blocked: lsof -i :5432
  • For Docker: ensure port is mapped -p 5432:5432

SQLite "database is locked"

Close any other applications (like DB Browser for SQLite) with the file open before connecting in DBX.

macOS App Won't Open (Gatekeeper)

xattr -cr /Applications/dbx.app

Redis AUTH Error

Ensure the connection string includes the password:

redis://:yourpassword@localhost:6379

MongoDB Atlas Connection

Use the full SRV connection string from Atlas → Connect → Drivers:

mongodb+srv://username:password@cluster0.xxxxx.mongodb.net/mydb?retryWrites=true&w=majority

pnpm install Fails

node --version   # Must be >= 18
pnpm --version   # Install: npm i -g pnpm
rustup update    # Keep Rust current

Query History Not Showing

History is stored in Tauri's app data directory:

  • macOS: ~/Library/Application Support/dbx/
  • Linux: ~/.local/share/dbx/
  • Windows: %APPDATA%\dbx\

Contributing

# Fork & clone
git clone https://github.com/YOUR_USERNAME/dbx.git
cd dbx
pnpm install

# Create feature branch
git checkout -b feat/my-new-database-driver

# Run in dev mode with hot reload
pnpm tauri dev

# Run frontend only (no Rust)
pnpm dev

# Type check
pnpm vue-tsc --noEmit

# Submit PR to t8y2/dbx main branch

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.62%
按下载量换算55

Claude

30.3%
按下载量换算48

Cursor

19.68%
按下载量换算31

Gemini CLI

9.36%
按下载量换算15

安全审计

暂无安全审计结果可展示。

权限和风险

权限需确认

当前来源未能明确判断权限范围,默认进入异常复核队列。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills