Iterative learning control (ILC) is a well-established approach to precision tracking for systems that perform a repeated task. Gradient-based update laws are amongst the most widely applied in practice due to their attractive robustness properties. However, they are limited by requiring a model of the system dynamics to be identified. This paper shows how gradient ILC can be extended for use with a general class of nonlinear systems, and additionally how the update can be generated using an extra experiment conducted between trials. This ‘model-free’ algorithm extends previous work for linear systems, and is illustrated by a nonlinear rehabilitation application requiring accurate control of human upper-limb movement.