dbboard logo dbboard

Turso も D1 も Aurora DSQL も、
そのたびに道具を持ち替えている。

10 のエンジンを 1 つの窓で。上の 3 つに加えて PostgreSQL、CockroachDB、 Neon、Supabase、MySQL/MariaDB、文書データベースの Cloud Firestore と MongoDB。
どれを開いても、同じエディタ、同じ表、同じ書き出し。

dbboard running a JOIN across two tables. The sidebar lists the connection and its three tables; the editor holds the query; below it 119 rows are shown in a grid, with empty cells rendered as an italic NULL, and buttons to copy the result as TSV or CSV or save it to a file.
クエリを書いて Ctrl+Enter で実行し、結果を TSV・CSV・JSON で取り出せます。 空のセルは何も表示しないのではなく NULL と出るので、値が無いことが 空文字と混ざりません。JSON で書き出せばその区別がファイルにも残ります —— CSV はどちらも空欄としか書けません。
最新のリリースを読み込んでいます…

Windows 10 以降 / macOS 13 以降 · MIT ·

どんな画面か

The structure view of a table: seven columns listed with their type, whether they accept NULL, which one is the primary key, and their default, plus a free-text note against each. Below the columns, a relationships section shows the foreign key from this table to another.
各テーブルのカラム、型、NULL の可否、キー、外部キー。 加えてカラムごと・テーブルごとに書ける覚え書きの欄。 スキーマが自分では語らないことを、ここに置けます。
The same query and result grid in dark theme, with the interface language set to English.
ライト、ダーク、あるいは OS の設定どおり。 画面は 11 言語に翻訳されています。

これはモックではなく、架空のデータに対して実際に動かした画面です。 同じ 3 つのテーブルを手元で触りたい場合、データは scripts/demo-profile にあります。

同じはずの、2 つのデータベース

検証環境でマイグレーションを流す。通る。本番でも流す。通ったように見える。 そこでは何も壊れません —— ずれは、ずれた瞬間には失敗しないからです。 数週間後、片方でだけ何かが落ちて、午後をまるごと使って原因を追い、 インデックスが 1 本だけ作られていなかったと分かる。 スキーマは、誰もが同じだと思っていて、誰も確かめないものです。 確かめる手段が無かったので。

同じ種類の接続をもう 1 つ選ぶと、2 つのスキーマが食い違っている所だけが並びます。 片方にしかないテーブル、型・NULL の可否・既定値が違うカラム、一致しない主キー、 別の場所を指している外部キー、そして無い・別のカラムで張られている・片方だけ一意、 というインデックス。違う所しか出しませんので、300 テーブルあって違いが 1 つなら、 出てくるのは 1 行です。

型は、それぞれのエンジンが書くとおりに比べます。 VARCHAR(255) と varchar は、同じ意味かもしれなくても 違うものとして出します。見直す手間は一瞬ですが、見落とした違いは移行ごと失敗させます。 種類の違う接続どうしは、推測せずに断ります。

取っておきたいクエリと、100 行で終わらない表

エディタは前から実行したものを覚えていますが、その一覧はあえて使い捨てです。 名前を付ければ残ります —— 接続ごとに、ひと押しで戻せます。 置き場は接続情報の隣の saved-queries.toml で、窓自身の保存領域ではありません。 そちらは「サイトデータを消去」で空になり、設定のバックアップにも入りません。

テーブルを開くと、最後まで頁を送れます。頁は数えるのではなく鍵で辿る方式で、 前の頁の最後の行の直後から続きます。読んでいる間に行が増えても、 同じ行が 2 度出たり、頁の境目で消えたりしません。 どの頁も、最初の 1 頁より遅くなりません。

落としたものを確かめる

どのリリースにも、全成果物ぶんの SHA256SUMS.txt が付いています。 動かす前に、落としたものと突き合わせてください。

# Linux / macOS
sha256sum -c SHA256SUMS.txt

# Windows PowerShell
(Get-FileHash .\dbboard-desktop_0.17.0_x64-setup.exe -Algorithm SHA256).Hash

AI エージェントから使う

dbboard には dbboard-mcp も入っています。画面を持たない MCP サーバで、すでに設定済みの接続を 標準入出力ごしに AI エージェントへ道具として渡します。読み取りは常に有効、 書き込みは接続ごとに明示して初めて開きます。権限の変更・TRUNCATE・ DROP は、どちらであっても通しません。アプリと同じ connections.toml と OS のキーチェーンを使うので、 資格情報の置き場が増えることはなく、秘密が通信に乗ることもありません。

このサーバを渡されたエージェントは、それが何かを尋ねられます。 about という道具が、何のための製品か、どの版が答えているか、 どのエンジンを話せるか、各版で何が変わったかを返します。 接続にもデータベースにも、あなたのファイルにも触れません。 答えはバイナリに埋め込まれているので、隣に何が置いてあるかではなく、 いま答えている当人を説明します。

上のアプリとは別に落とします。最新のリリースから dbboard-mcp-windows-x86_64.exe、 dbboard-mcp-windows-aarch64.exe(ARM の Windows)、 dbboard-mcp-macos-universal のどれかを取り、動かさない場所に置いて、 1 行で登録します。

# Windows (PowerShell)
claude mcp add dbboard --scope user -- "$env:LOCALAPPDATA/dbboard/dbboard-mcp.exe"

# macOS
claude mcp add dbboard --scope user -- "$HOME/.local/bin/dbboard-mcp"

登録したらエージェントを再起動してください —— クライアントごとに、その セッション用のサーバを 1 つずつ抱えます。導入手順、22 個の道具、書き込みの方針、 困ったときの対処は dbboard-mcp の README にあります。日本語の解説もあります: Claude Code に自分の DB を触らせる。

sshboard と一緒に使う

sshboard のアイコン。角丸の四角に、ターミナルのプロンプト(大なり記号とアンダースコア)

sshboard —— あなたとエージェントが、1 本の SSH セッションに

dbboard と同じ考え方を、データベースではなくサーバへ当てたものです。 エージェントには run_command の穴を渡しません —— 見ていない所で作業させるのではなく、あなたが見ているセッションを共有し、 打ったものはそのままあなたのコンソールに出ます。

2 つ合わせて使うための道具です。手で出しているシステムは、まだいくらでもあります —— SSH で入ってファイルを置き、クライアントを開いてマイグレーションを流す。 エージェントに渡せるパイプラインがそもそも無く、作ること自体がひとつのプロジェクトです。 2 つあれば、その両半分が埋まります。sshboard がファイルを置き、dbboard が データベースに対して流すものを流す。手順はエージェントがやり、 あなたはその全部に立ち会っています —— 両方の側で。

どちらも、エージェントを無人で走らせるための道具ではありません —— sshboard は自分のページでそう明言していますし、dbboard の書き込みの方針も 同じ意味です。ここで自動化されるのは作業であって、見ていることではありません。

動かす前に

このバイナリには署名がありません。忘れたのではなく、決めたことです —— 署名証明書は毎年払い続ける買い物で、この製品はそれをしません。 Windows では SmartScreen が「発行元不明」と警告し、 macOS では Gatekeeper が「開発元を確認できないアプリ」の確認を求めます。 どちらの警告も、毎回出るのが正常です。 上のチェックサムを確かめてから、通してください。