Simon Willison announced the release of sqlite-utils 4.0rc3, a version he initially hoped to finalise over the weekend. Working through a backlog of issues and pull requests with Claude Fable 5 and GPT-5.5, the changelog grew significantly larger than planned. The most important addition is support for introspecting and creating compound foreign keys. This capability required a subtle breaking change to the table.foreign_keys property, forcing the update to land in the stable 4.0 release instead of a future minor patch.
The tool now also follows SQLite’s convention for case insensitive column names. This adjustment affected multiple areas of the codebase simultaneously, ensuring consistency with the underlying database engine. The update reflects a practical approach to maintaining compatibility while expanding functionality for developers working with local data stores.
* Compound foreign keys are now fully supported for introspection and creation.
* The table.foreign_keys API underwent a necessary breaking change to accommodate new features.
* Column name matching now aligns with SQLite’s case insensitive conventions.

