このプロジェクトについて

sqlitは、SQLデータベースを操作するためのユーザーフレンドリーなターミナルUI(TUI)で、Pythonで書かれ、Textual上に構築されています。自身を「SQLデータベースのlazygit」と位置づけており、`sqlit`を実行し、UIから接続を選択するだけで、CLI設定や外部ドキュメントなしにクエリを開始できます。 対応データベースには、SQL Server、PostgreSQL、MySQL、MariaDB、SQLite、FirebirdSQL、Oracle、DuckDB、CockroachDB、ClickHouse、Snowflake、Databricks、Supabase、Cloudflare D1、Turso、Athena、BigQuery、Spanner、Redshift、IBM Db2、SAP HANA、Teradata、Exasol、Trino、Presto、Apache Flight SQL、Apache Impala、SurrealDB、osqueryが含まれます。これらの多くはドライバがオプションで、必要に応じてインストール可能です。sqlitは不足しているドライバを検出し、適切なインストールコマンドを表示します。 READMEに記載されている主な機能は以下の通りです: - 接続マネージャー:接続の保存、一覧表示、削除、切り替えが可能。URLスキームやプロバイダ固有のCLIフラグで接続。保存せずに一時的な接続も可能。 - Docker検出:実行中のデータベースコンテナを自動検出し、Enterキーで接続。 - クラウドCLI統合:Azure、AWS、GCPのCLIを通じて外部データベースを参照・接続。 - SSHトンネル:パスワードまたはキー認証でリモートデータベースに接続(`ssh`エクストラが必要)。 - 資格情報の処理:接続詳細は`connections.json`に保存され、パスワードは利用可能な場合はOSキーリングに保存。パスワードは`--password-command`を使用してシークレットマネージャーから取得することも可能。 - クエリエディタ:構文ハイライト、接続ごとの検索可能な履歴、Vimスタイルのモーダル編集とモーション、テーブル・列・プロシージャ用のSQLオートコンプリートエンジン。 - 結果:大きな結果セットの読み込み、セルの検査、内容によるフィルタリングとファジー検索。セル、行、または全行のコピー。 - エクスプローラー:テーブル、ビュー、プロシージャ、インデックス、トリガー、シーケンスの参照。 - CLIモード:コマンドラインからCSVまたはJSON出力でクエリを実行、またはSQLスクリプトファイルから実行。 - テーマ:Rose Pine、Tokyo Night、Nord、Gruvbox。 - カスタムキーバインド:設定ディレクトリ(`$XDG_CONFIG_HOME/sqlit/`、`SQLIT_CONFIG_DIR`で上書き可能)の`keymap.json`で設定。 インストール方法としては、pipx(推奨)、uv、pip、Arch Linux AUR、Nixフレークが挙げられています。`--mock=sqlite-demo`フラグを使用すると、実際のデータベースなしでインターフェースを探索できます。 READMEでは、SSMSのような重いGUIクライアントやSQL実行のためだけにフルIDEを起動することを避け、軽量でキーボード中心のツールを目指すという動機が説明されています。lazygitとlazysqlをインスピレーションとして挙げ、sqlitは他のSQL TUIの機能の広さを追求するのではなく、限られたタスクセットをうまく実行することに意図的に焦点を当てていると述べています。このプロジェクトはMITライセンスです。