The Prolog programmer’s needs have always been the focus for guiding the development of the SWI-Prolog system. This article accompanies an invited talk about how the SWI-Prolog environment helps the Prolog programmer solve common problems. It describes the central parts of the graphical development environment as well as the command line tools which we see as vital to the success of the system. We hope this comprehensive overview of particularly useful features will both inspire other Prolog developers, and help SWI-Prolog users to make more productive use of the system.