IceCream is a Python debugging library that replaces print() statements with a more powerful inspection tool.
The tool solves the friction of print-based debugging by providing an `ic()` function that automatically captures and displays both variable names and their values, program execution flow, and context information like filename and line number. When called with arguments, it inspects those arguments and prints them alongside their evaluated values. When called without arguments, it prints the calling location and function name to trace execution. Data structures are automatically formatted and pretty-printed, and output includes syntax highlighting. The function returns its arguments, making it easy to insert into existing code without refactoring.
IceCream suits developers who rely on print debugging during development and want to reduce typing overhead while gaining richer output. The tool is particularly useful for quick interactive debugging sessions where you need to understand variable state and execution order without setting up a full debugger. It works well in codebases where you want to leave debugging calls in place temporarily and then disable them with `ic.disable()` without removing the code. The library can be installed globally via `install()` to make `ic()` available as a builtin across all files, or imported with a fallback pattern for environments where it may not be installed.
The project maintains active development with continuous integration testing across supported Python versions. The tool receives regular maintenance and bug fixes to ensure compatibility with current Python releases. Development is focused on keeping the library lightweight and reliable for its specific debugging use case, with configuration options like custom prefixes and output functions allowing adaptation to different debugging workflows.