gruns/icecream

🍦 Never use print() to debug again.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 56 minutes ago
Added to GitGenius on September 6th, 2026
Created on February 13th, 2018
Open Issues & Pull Requests: 64 (+0)
GitHub issues: Enabled
Number of forks: 228
Total Stargazers: 10,109 (+0)
Total Subscribers: 48 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

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.