Show HN: Sqlit – A lazygit-style TUI for SQL databases

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"

キーバインド

キーアクション
i
INSERT モードへ入る
Esc
NORMAL モードに戻る
e / q / r
Explorer / Query / Results をフォーカス
s
テーブルから TOP 100 を選択
h
クエリ履歴
d
クエリをクリア
n
新規クエリ(全クリア)
v / y / Y / a
セル閲覧 / セルコピー / 行コピー / すべてコピー
Ctrl+Q
終了
?
ヘルプ

コマンドメニュー (
<space>
)

キーアクション
<space>c
データベースに接続
<space>x
切断
<space>z
実行中のクエリをキャンセル
<space>e
Explorer を切り替え
<space>f
最大化/非最大化
<space>t
テーマ変更
<space>h
ヘルプ
<space>q
終了

INSERT モードでは自動でオートコンプリートが発火します。タブキーで受け取るか、テーブル名入力後に

.
を押すと列名も補完されます。

設定

接続情報と設定は

~/.sqlit/
に保存されます。

FAQ

機密情報はどのように保管されていますか?
認証情報は

~/.sqlit/
(700/600 のファイル権限)で平文保存されます。

sqlit は Harlequin、Lazysql などと比べてどう違いますか?

  • 外部ドキュメント不要 – すぐに使い始められます。
  • CLI 設定不要 – UI から接続を選択。
  • 軽量設計でコアタスクに集中し、余分な機能は省いて高速化しています。

インスピレーション

Textual を使用して作成。インスパイア元:

  • lazygit – Git 用のシンプル TUI
  • lazysql – ターミナルベースの SQL クライアントと接続マネージャ

コントリビューション

CONTRIBUTING.md
に開発環境構築、テスト、CI、CockroachDB のクイックスタート手順が記載されています。

アダプタ要件

データベースパッケージインストールコマンド
SQLite(組み込み)
SQL Serverpyodbc
pip install pyodbc
PostgreSQLpsycopg2-binary
pip install psycopg2-binary
MySQLmysql-connector-python
pip install mysql-connector-python
MariaDBmariadb
pip install mariadb
Oracleoracledb
pip install oracledb
DuckDBduckdb
pip install duckdb
CockroachDBpsycopg2-binary
pip install psycopg2-binary
Supabasepsycopg2-binary
pip install psycopg2-binary
Tursolibsql-client
pip install libsql-client

注: SQL Server には ODBC ドライバも必要です。初回接続時に

sqlit
が不足を検出し、インストール手順へ誘導します。

ライセンス

MIT © sqlit

同じ日のほかのニュース

一覧に戻る →

2025/12/17 6:14

Prediction: AI will make formal verification go mainstream

## Japanese Translation: > 記事は、人工知能がソフトウェアが仕様を満たしていることを数学的に証明する「形式検証」を、ニッチな研究活動から日常のエンジニアリング実務へと導くと主張しています。Coq、Isabelle、Lean、F*、Agda などの証明支援ツールはすでに OS カーネル、コンパイラ、暗号スタックなど大規模システムを形式的に検証することを可能にしています。現在では言語モデル型コーディングアシスタントが実装コードとそれに付随する証明スクリプトの両方をドラフトでき、極小の検証済みチェッカーは無効な証明を拒否し、AI エージェントが幻覚(hallucinate)した場合には再試行を強制します。2009 年に公開された seL4 マイクロカーネル(8,700 行の C コードで 20 人年と 20 万行の Isabelle コード)が示すように、従来は労力集約的な検証が行われてきましたが、世界中で数百人程度の専門家しかそのような証明を作成できず、コストはバグ修正費用を上回ることも多いです。著者は AI がこれらのコストを低減するにつれて、より多くのソフトウェアが形式検証され、人間によるレビューではなく AI 生成コードに依存するようになると予測しています。残された最大の障壁は正確な仕様書を書くことです——仕様書作成は証明より容易ですが、それでも専門知識を要します。AI は自然言語での要求を形式的に翻訳する手助けができるかもしれませんが、ニュアンスの損失リスクがあります。広範な採用はバグと脆弱性を削減し、エンジニアリングワークフローを再構築し、仕様書作成に関する新たなスキルを要求しますが、文化的受容こそが主流化への主要障壁となります。

2025/12/17 1:54

alpr.watch

## Japanese Translation: 米国全土の自治体は急速に監視技術を導入しており、既に8万台以上のカメラが設置されています。 新しいプラットフォーム **alpr.watch** は、市議会の議題リストから「flock」「license plate reader」「ALPR」などのキーワードをスキャンし、それぞれの議論をマップ上にピン留めします。住民はこれらのシステムについて議論が行われている場所を確認でき、必要に応じて行動を起こすことができます。ユーザーはメールアドレスで登録すると、自分のエリア内の会議通知を受け取ることが可能です。 12月中旬以前に収集された全データは未検証です。今後提出される情報は正確性を確認するためにモデレートされます。 **ALPR** システムは、24時間365日すべての通行車両からナンバープレートデータを取得し、読み取り、保存します。最大規模のメーカーの一つである **Flock Safety** は、そのユニットを直接近隣住民や警察署に販売しています。カメラは機関・管轄区域間でデータを共有し、数百万の米国人を追跡する監視ウェブを構築します。これらのシステムは、意図された範囲を超えて拡張されることが多く、例えば移民取り締まりに使用されたり、恒久的なインフラストラクチャーとなったりします。 Electronic Frontier Foundation(EFF)、ACLU、Fight for the Future、STOP、Institute for Justice、および地域コミュニティグループなどのプライバシー擁護団体は、すでにこれらの動向を監視しています。 *この改訂された要約はリストからすべての主要ポイントを反映し、未確認推測を含まず、メインメッセージを明確かつ簡潔に保っています。*

2025/12/17 4:20

No Graphics API