sqlite-utils is both a Python library and a command-line tool for creating, inspecting, and transforming SQLite databases with minimal boilerplate. It focuses on making common tasks like importing CSV/JSON, exploring tables, and running ad-hoc queries feel ergonomic and scriptable. As a CLI, it lets you build databases from structured data in one line, run queries against local files or in-memory databases, output results as JSON, CSV, or pretty tables, and configure full-text search. As a library, it exposes high-level APIs for inserting records, creating or transforming tables, normalizing schemas, and running migrations that SQLite’s limited ALTER TABLE cannot handle directly. The project also embraces an ecosystem of plugins, so you can add custom SQL functions, extra commands, or UIs (including a terminal UI) via separate packages. Because it’s designed by someone who uses SQLite heavily in real projects, the tool includes many small quality-of-life features.
Features
- CLI and Python library for creating and manipulating SQLite databases
- One-line import of JSON, CSV or TSV into new or existing tables with automatic schema inference
- In-memory sqlite-utils memory command for ad-hoc queries over streamed CSV/JSON data
- Helpers for configuring full-text search, running schema transformations and normalizing tables
- Plugin system to add custom SQL functions, commands and even UIs on top of sqlite-utils
- Apache-2.0 licensed, well-documented and battle-tested in many real-world data workflows