
2025/12/16 0:47
Show HN: Sqlit – A lazygit-style TUI for SQL databases
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
## Summary sqlit は、軽量なターミナル UI であり、ユーザーが複数のデータベースエンジンに対して高速かつ重い GUI ツールを必要とせずに SQL クエリを実行できるようにします。SQL Server、PostgreSQL、MySQL、SQLite、MariaDB、Oracle、DuckDB、CockroachDB、Supabase、および Turso を含む幅広いデータベースと即座に動作し、個別のアダプタを必要としません。 主な機能は次のとおりです。 - SSH トンネル、複数認証方法、テーマ選択、コンテキスト感知ヘルプ、およびデータベースブラウジングを備えた接続管理 UI。 - Vim スタイルのモーダル編集、接続ごとのクエリ履歴、SQL オートコンプリート、スクリプトや AI エージェント用の CLI モード。 - 設定時に欠落している Python パッケージ(例:`pip install pyodbc`、`pip install psycopg2-binary`)と ODBC ドライバを自動インストール。 資格情報は `~/.sqlit/` 内のプレーンテキストとして保存され、ディレクトリに 700、ファイルに 600 の制限付き権限が設定されています。CLI はクエリ実行、CSV または JSON への結果出力、および接続管理(`list`、`delete`)用のコマンドを提供します。 Textual フレームワークで構築され、MIT ライセンスの下で公開されている sqlit は、lazygit や lazysql のようなミニマリストツールからインスピレーションを得ています。高速かつ安全でクロスデータベースのターミナルクライアントを求める開発者やデータベース管理者に最適で、重い GUI を排除しながら CI/CD パイプラインやリモートワークフローにシームレスに統合できます。
本文
sqlit
SQL データベースの lazygit – ターミナルから数秒でクエリを実行できる軽量 TUI。
特徴
- マルチデータベース対応 – Postgres、MySQL、SQL Server、SQLite、Supabase、Turso、MariaDB、Oracle、DuckDB、CockroachDB など多数。
- 接続管理 UI – 接続を保存し、CLI 引数なしでデータベースを切り替えられます。
- CLI 設定不要 –
を起動し、接続を選択するだけです。sqlit - SSH トンネル組み込み – パスワードまたは鍵認証で安全にリモートアクセスできます。
- Vim スタイル編集 – ターミナル愛好者向けのモーダル編集。
- クエリ履歴 – 接続ごとに自動保存。検索・並べ替え可能。
- コンテキスト依存ヘルプ – キーバインドを覚える必要なし。
- データベースブラウズ – テーブル、ビュー、ストアドプロシージャなど閲覧可。
- SQL オートコンプリート – テーブル・カラム・プロシージャ名自動補完。
- 複数認証方式 – Windows、SQL Server、Entra ID への対応。
- CLI モード – スクリプトや AI エージェント用。
- テーマ – Tokyo Night、Nord など多彩に選択可。
- ODBC ドライバ自動検出&インストール(SQL Server)。
背景
GUI を起動せずに高速でデータベースを閲覧しクエリを実行したいと考えました。既存の TUI クライアントは直感的でなかったり、 lazygit が提供する使いやすさが不足していたためです。
sqlit は軽量で美しい TUI で、最小限の摩擦で接続・クエリを行えるよう設計しました。
インストール
データベースプロバイダー用 Python パッケージが不足している場合は、初回接続時に
sqlit がインストールします。事前に要件をインストールしたい場合は、以下の Adapter Requirements を参照してください。
使い方
キーバインドは画面下部に表示されます。
実際のデータベースがなくても試す
モックデータで実行:
# CLI sqlit query -c "MyConnection" -q "SELECT * FROM Users" # CSV または JSON 形式で出力 sqlit query -c "MyConnection" -q "SELECT * FROM Users" --format csv sqlit query -c "MyConnection" -f "script.sql" --format json # 異なるデータベース用の接続を作成 sqlit connection create --name "MySqlServer" --db-type mssql --server localhost --auth-type sql sqlit connection create --name "MyPostgres" --db-type postgresql --server localhost --username user --password pass sqlit connection create --name "MyMySQL" --db-type mysql --server localhost --username user --password pass sqlit connection create --name "MyCockroach" --db-type cockroachdb--server localhost --port 26257 --database defaultdb --username root sqlit connection create --name "MyLocalDB" --db-type sqlite --file-path /path/to/database.db sqlit connection create --name "MyTurso" --db-type turso --server libsql://your-db.turso.io --password your-auth-token # SSH トンネル経由で接続 sqlit connection create \ --name "RemoteDB" \ --db-type postgresql \ --server db-host \ --username dbuser \ --password dbpass \ --ssh-enabled \ --ssh-host ssh.example.com \ --ssh-username sshuser \ --ssh-auth-type password \ --ssh-password sshpass # 接続管理 sqlit connection list sqlit connection delete "MyConnection"
キーバインド
| キー | アクション |
|---|---|
| INSERT モードへ入る |
| NORMAL モードに戻る |
| Explorer / Query / Results をフォーカス |
| テーブルから TOP 100 を選択 |
| クエリ履歴 |
| クエリをクリア |
| 新規クエリ(全クリア) |
| セル閲覧 / セルコピー / 行コピー / すべてコピー |
| 終了 |
| ヘルプ |
コマンドメニュー (<space>
)
<space>| キー | アクション |
|---|---|
| データベースに接続 |
| 切断 |
| 実行中のクエリをキャンセル |
| Explorer を切り替え |
| 最大化/非最大化 |
| テーマ変更 |
| ヘルプ |
| 終了 |
INSERT モードでは自動でオートコンプリートが発火します。タブキーで受け取るか、テーブル名入力後に
. を押すと列名も補完されます。
設定
接続情報と設定は
~/.sqlit/ に保存されます。
FAQ
機密情報はどのように保管されていますか?
認証情報は
~/.sqlit/(700/600 のファイル権限)で平文保存されます。
sqlit は Harlequin、Lazysql などと比べてどう違いますか?
- 外部ドキュメント不要 – すぐに使い始められます。
- CLI 設定不要 – UI から接続を選択。
- 軽量設計でコアタスクに集中し、余分な機能は省いて高速化しています。
インスピレーション
Textual を使用して作成。インスパイア元:
- lazygit – Git 用のシンプル TUI
- lazysql – ターミナルベースの SQL クライアントと接続マネージャ
コントリビューション
CONTRIBUTING.md に開発環境構築、テスト、CI、CockroachDB のクイックスタート手順が記載されています。
アダプタ要件
| データベース | パッケージ | インストールコマンド |
|---|---|---|
| SQLite(組み込み) | – | – |
| SQL Server | pyodbc | |
| PostgreSQL | psycopg2-binary | |
| MySQL | mysql-connector-python | |
| MariaDB | mariadb | |
| Oracle | oracledb | |
| DuckDB | duckdb | |
| CockroachDB | psycopg2-binary | |
| Supabase | psycopg2-binary | |
| Turso | libsql-client | |
注: SQL Server には ODBC ドライバも必要です。初回接続時に
sqlit が不足を検出し、インストール手順へ誘導します。
ライセンス
MIT © sqlit